JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 8563780
  • Score
    100M100P100Q228036F
  • License MIT

remark plugin to support GFM (autolink literals, strikethrough, tables, tasklists)

Package Exports

  • remark-gfm

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (remark-gfm) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

remark-gfm

Build Coverage Downloads Size Sponsors Backers Chat

remark plugin to support GitHub Flavored Markdown.

Important!

This plugin is made for the new parser in remark (micromark, see remarkjs/remark#536). While you’re still on remark 12, use the gfm option for remark. Use this plugin for remark 13+.

Install

npm:

npm install remark-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  |
| - | :- | -: | :-: |

## Tasklist

* [ ] to do
* [x] done

And our script, example.js, looks as follows:

var vfile = require('to-vfile')
var report = require('vfile-reporter')
var unified = require('unified')
var parse = require('remark-parse')
var gfm = require('remark-gfm')
var remark2rehype = require('remark-rehype')
var stringify = require('rehype-stringify')

unified()
  .use(parse)
  .use(gfm)
  .use(remark2rehype)
  .use(stringify)
  .process(vfile.readSync('example.md'), function (err, file) {
    console.error(report(err || file))
    console.log(String(file))
  })

Now, running node example yields:

example.md: no issues found
<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>Tasklist</h2>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" disabled> to do</li>
<li class="task-list-item"><input type="checkbox" checked disabled> done</li>
</ul>

API

remark().use(gfm[, options])

Configures remark so that it can parse and serialize GFM (autolink literals, strikethrough, tables, tasklists).

options
options.singleTilde

Whether to support strikethrough with a single tilde (boolean, default: true). Single tildes work on github.com, but are technically prohibited by the GFM spec. Passed as singleTilde to micromark-extension-gfm-strikethrough.

options.tableCellPadding

Create tables with a space between cell delimiters (|) and content (boolean, default: true). Passed to mdast-util-gfm-table.

options.tablePipeAlign

Align the delimiters (|) between table cells so that they all align nicely and form a grid (boolean, default: true). Passed to mdast-util-gfm-table.

options.stringLength

Function passed to markdown-table to detect the length of a table cell (Function, default: s => s.length). Used to align table cells. Passed to mdast-util-gfm-table.

Security

Use of remark-gfm does not involve rehype (hast) or user content so there are no openings for cross-site scripting (XSS) attacks.

Contribute

See contributing.md in remarkjs/.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