micromark-extension-gfm
micromark extension to support GitHub flavored markdown. This extension matches either the GFM spec or github.com (default).
This package provides the low-level modules for integrating with the micromark tokenizer and the micromark HTML compiler.
You probably shouldn’t use this package directly, but instead use mdast-util-gfm with mdast or remark-gfm with remark.
Alternatively, the extensions can be used separately:
micromark/micromark-extension-gfm-autolink-literal— support GFM autolink literalsmicromark/micromark-extension-gfm-strikethrough— support GFM strikethroughmicromark/micromark-extension-gfm-table— support GFM tablesmicromark/micromark-extension-gfm-tagfilter— support GFM tagfiltermicromark/micromark-extension-gfm-task-list-item— support GFM tasklists
Install
npm:
npm install micromark-extension-gfm
Use
Say we have the following file, example.md:
# GFM
## Autolink literals
www.example.com, https://example.com, and contact@example.com.
## Strikethrough
~one~ or ~~two~~ tildes.
## Table
| a | b | c | d |
| - | :- | -: | :-: |
## Tag filter
<plaintext>
## Tasklist
* [ ] to do
* [x] done
And our script, example.js, looks as follows:
var fs = require('fs')
var micromark = require('micromark')
var gfmSyntax = require('micromark-extension-gfm')
var gfmHtml = require('micromark-extension-gfm/html')
var doc = fs.readFileSync('example.md')
var result = micromark(doc, {
allowDangerousHtml: true,
extensions: [gfmSyntax()],
htmlExtensions: [gfmHtml]
})
console.log(result)
Now, running node example yields:
<h1>GFM</h1>
<h2>Autolink literals</h2>
<p><a href="http://www.example.com">www.example.com</a>, <a href="https://example.com">https://example.com</a>, and <a href="mailto:contact@example.com">contact@example.com</a>.</p>
<h2>Strikethrough</h2>
<p><del>one</del> or <del>two</del> tildes.</p>
<h2>Table</h2>
<table>
<thead>
<tr>
<th>a</th>
<th align="left">b</th>
<th align="right">c</th>
<th align="center">d</th>
</tr>
</thead>
</table>
<h2>Tag filter</h2>
<plaintext>
<h2>Tasklist</h2>
<ul>
<li><input disabled="" type="checkbox"> to do</li>
<li><input checked="" disabled="" type="checkbox"> done</li>
</ul>
API
html
syntax(options?)
Note:
syntaxis the default export of this module,htmlis available atmicromark-extension-gfm/html.
Support GFM or markdown on github.com.
The export of syntax is a function that can be called with options and returns extension for the micromark parser (to tokenize GFM; can be passed in extensions). The export of html is an extension for the default HTML compiler (can be passed in htmlExtensions).
options
options.singleTilde
Passed as singleTilde in micromark-extension-gfm-strikethrough.
Related
remarkjs/remark— markdown processor powered by pluginssyntax-tree/mdast-util-gfm— mdast utility to support GFMsyntax-tree/mdast-util-from-markdown— mdast parser usingmicromarkto create mdast from markdownsyntax-tree/mdast-util-to-markdown— mdast serializer to create markdown from mdastmicromark/micromark— the smallest commonmark-compliant markdown parser that existsmicromark/micromark-extension-gfm-autolink-literal— support GFM autolink literalsmicromark/micromark-extension-gfm-strikethrough— support GFM strikethroughmicromark/micromark-extension-gfm-table— support GFM tablesmicromark/micromark-extension-gfm-tagfilter— support GFM tagfiltermicromark/micromark-extension-gfm-task-list-item— support GFM tasklists
Contribute
See contributing.md in micromark/.github for ways to get started. See support.md for ways to get help.
This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.