- Notifications
You must be signed in to change notification settings - Fork8
mayo/metalsmith-markdownit
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
I no longer use this project and do not maintain the code.
A Metalsmith plugin to convert markdown files usingmarkdown-it library.
This plugin is not one to one replacement for metalsmith-markdown. There are slight differences in how the underlying libraries behave, but I find I get better results with markdown-it. Markdown-it, however, does not support all GFM features.
$ npm install metalsmith-markdownit
Install via npm and then add themetalsmith-markdownit
key to yourmetalsmith.json
plugins with anymarkdown-it options you want, like so:
{"plugins": {"metalsmith-markdownit": {"typographer":true,"html":true } }}
Passoptions
to the markdown plugin and pass it to Metalsmith with theuse
method:
varmarkdown=require('metalsmith-markdownit');metalsmith.use(markdown({typographer:true,html:true}));
You can also pass a markdown-it preset to the plugin:
varmarkdown=require('metalsmith-markdownit');metalsmith.use(markdown('default',{typographer:true,html:true}));
If you want to control plugin behaviour, you can set options under theplugin
key of theoptions
object (these options are not passed to Markdown It):
metalsmith.use(markdown('default',{typographer:true,html:true,plugin:{// options.plugin.pattern (string) - glob pattern. Defaults to '**/*@(md|markdown)'pattern:'**/*.html',// options.plugin.fields (string|Array) - field or list of fields to parse with Markdown-It. Defaults to 'contents'fields:['contents','excerpt']// options.plugin.extension (string) - the file extension for parsed files. Defaults to 'html'extension:'htm'}}));
If you need access to markdown-it directly to enable features or use plugins, you can access the parser directly:
varmarkdown=require('metalsmith-markdownit');varmd=markdown('zero',{html:true});md.parser.enable(['emphasis','html_block','html_tag']);metalsmith.use(md);
The parser'senable
,disable
,use
andset
methods are proxied on the metalsmith plugin, so you may access them like so:
varmarkdown=require('metalsmith-markdownit');metalsmith.use(markdown('zero',{html:true}).enable('emphasis','html_block','html_tag'))
You may provide a function to set the parser & renderer's environment on a per-page basis, should you need to:
varmarkdown=require('metalsmith-markdownit');metalsmith.use(markdown('default').env(function(page){returnpage;}))
MIT
About
A Metalsmith plugin to convert markdown files. – This plugin is up for adoption.
Topics
Resources
Stars
Watchers
Forks
Packages0
Languages
- JavaScript98.7%
- Makefile1.3%