unified

Project: micromark/micromark-extension-gfm

Package: micromark-extension-gfm@0.3.3

  1. Dependencies: 6·Dependents: 6
  2. micromark extension to support GFM (GitHub Flavored Markdown)
  1. unified 169
  2. markdown 142
  3. gfm 18
  4. micromark 16
  5. micromark-extension 16
  6. table 12
  7. github 8
  8. strikethrough 4
  9. autolink 4
  10. tagfilter 3
  11. tasklist 2

micromark-extension-gfm

Build Coverage Downloads Size Sponsors Backers Chat

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:

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>
&lt;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: syntax is the default export of this module, html is available at micromark-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.

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.

License

MIT © Titus Wormer