
Product
Introducing Socket Fix for Safe, Automated Dependency Upgrades
Automatically fix and test dependency updates with socket fix—a new CLI tool that turns CVE alerts into safe, automated upgrades.
by @angrykoala
Yet Another Markdown Parser
The aim of this package is to provide an easy-to-use toolbox for markdown-related task including Html & Pdf conversion.
{{}}
)Custom templates
Client-side web support (browserify)
Check the project roadmap and our cute kanban board
To use yamp cli, install it globally using npm:
npm install -g yamp
If you want to use the API instead, install it locally:
npm install --save yamp
then, include yamp in your javascript:
var yamp = require('yamp');
To create a .pdf
file from your markdown file, simply type:
yamp <file.md>
For example:
yamp README.md
Will generate readme.pdf
.
-h
, --help
to display a basic usage information-V
, --version
to display yamp version installed-o
, --output <file>
output filename (without extension) e.g. yamp my_file.md -o final_name
--pdf
to generate a pdf (default)--html
to generate html--remark
to generate a html presentation using remark-t
, --title [value]
to add a custom title to Html pages--style <file>
to set change the css style (supports the provided styles and custom styles)
--no-style
--no-style
to disable CSS styling
--style <file>
--list-styles
will list all the styles provided by yamp
--style
option--minify
to minify Html output--no-tags
to disable custom Yamp tags--no-highlight
to disable code highlight--no-front-matter
to disable front-matter metadata-k
, --koala
to koalify your outputsTo generate pdf and html with default styling and options:
yamp myFile.md --pdf --html
The
--no-highlight
and--no-style
options will greatly reduce your Html and Pdf outputs
Yamp supports extra tags in your markdown files. Currently using xejs templates. All tags are written between double braces {{ ... }}
and are not case-sensitive
include [file.md]
: Includes the given text file (markdown or not), the tags on the included file will also be parsed, allowing nested file structure.date
: Will write the current date (at the moment of rendering).page break
: Will force a page break in pdf output.yamp version
: Will display the yamp version used to render the document.Starting a tag with
{{#
will create a comment tag that will not be rendered into the final file
Yamp provides several styles for your document (supported for html and pdf outputs).
github.css
Default style, will look similar to Github styleacm-sig.css
Academic style based on ACM SIG templatesYou can select any of these styles with the option --style [style.css]
, the same option will enable you to use your own files instead --style [myfolder/mystyle.css]
You can always check the styles with the option
--list-styles
Include yamp in your javascript with:
var yamp = require('yamp');
You'll have access to different renderers to process your files:
yamp.renderers.html
to process a markdown file into an full Html pageyamp.renderers.pdf
to process a markdown into a pdfTo use a renderer:
var myRenderer = new renderers.pdf(options);
renderer.renderFile(myFile, function(err){
if (err) return console.log("Error while rendering: "+err);
else console.log("Rendering was successful");
});
The options accepted by the default renderers are:
{{ ... }}
)If you need a custom renderer, instead of using one of the defaults you can extend directly from Renderer class or any of the default renderers:
class MyCustomRenderer extends yamp.Renderer {
constructor(options) {
super(options, "default.ejs", yamp.parsers.md2Html);
this.output="html"; //desired output extension
}
beforeLoad(filename){
//Modify filename or this.fileLoader before loading it
}
beforeRender(templateOptions) {
// Modify the data passed to the template before rendering, including title, content and options
}
afterRender(content) {
// Modify template result (Html)
}
fileOutput(content,done) {
// Write file (preferably to this.options.outputFilename) in the desired format using a parser
}
}
Custom parser: It is possible to use a custom parser from markdown to Html instead of the built-in yamp.parsers.md2html, the parser must be a function of the type function(originalString,options,callback)
that will translate from originalString
(markdown) to html, calling the callback(err,res)
afterwards.
If, instead of extending from yamp.Renderer
you are extending from one of the default renderers, you should only re-implement the methods you need, and usually you should call super().methodName
to maintain its basic functionality.
To contribute to yamp you should clone the official repository https://github.com/angrykoala/yamp or your own fork with git
.
You can also download it from GitHub clicking here
npm install
in the downloaded/cloned foldernpm test
npm start -- <file> [options]
npm install -g .
on the project foldernpm run docs
It is strongly recommended to install the npm repository version instead of your local copy
If you want to contribute to yamp please:
Thanks for your help!
YAMP is developed under GNU GPL-3 license by @angrykoala
FAQs
Yet Another Markdown Parser
The npm package yamp receives a total of 129 weekly downloads. As such, yamp popularity was classified as not popular.
We found that yamp demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Automatically fix and test dependency updates with socket fix—a new CLI tool that turns CVE alerts into safe, automated upgrades.
Security News
CISA denies CVE funding issues amid backlash over a new CVE foundation formed by board members, raising concerns about transparency and program governance.
Product
We’re excited to announce a powerful new capability in Socket: historical data and enhanced analytics.