@binarymuse/cmark

0.0.6 • Public • Published

node-cmark

node-cmark is a Node.js wrapper around GitHub's fork of cmark, the reference implementation of CommonMark in C by John MacFarlane. You can find GitHub's fork at https://github.com/github/cmark.

Installation

npm install @binarymuse/cmark

Usage

html = renderHtmlSync(markdown[, options])

  • markdown - a string containing Markdown to render to HTML
  • options - a hash of options (see Options, below)

renderHtml(markdown[, options], callback)

  • markdown - a string containing Markdown to render to HTML
  • options - a hash of options (see Options, below)
  • callback - a function to call with the resulting HTML once the Markdown has been rendered
    • html - the resulting HTML

Options

You can control the behavior of node-cmark by passing options to the rendering functions. The available options are:

  • sourepos - if true, adds a data-sourcepos attribute to all block elements that TODO??
  • safe - if true, suppresses raw HTML and unsafe links (javascript:, vbscript:, file:, and data: except for image/png, image/gif, image/jpeg, or image/webp mime types). Raw HTML is replaced by a placeholder HTML comment. Unsafe links are replaced with empty strings.
  • nobreaks - if true, renders softbreak elements as spaces
  • hardbreaks - if true, renders softbreak elements as hard line breaks
  • normalize - if true, adjacent text nodes are consolidated
  • validateUtf8 - if true, replaces illegal UTF-8 sequences with U+FFFD
  • smart - if true, replaces straight quotes with curly ones, turns --- into em dashes, and -- into en dashes
  • extensions - an array of extensions to enable. Valid extensions are:
    • "table" - render tables
    • "strikethrough" - strikethrough
    • "tagfilter" - whitelist something
    • "autolink" - automatically turn URLs into links

Rendering to HTML

You can turn a string containing Markdown into HTML either synchronously:

const cmark = require('node-cmark')

const markdown = '# Hello World'
const options = {}
const html = cmark.renderHtmlSync(markdown, options)
console.log(html)

or asynchronously

const cmark = require('node-cmark')

const markdown = '# Hello World'
const options = {}
cmark.renderHtml(markdown, options, (html) => {
  console.log(html)
})

Note that options may be omitted in either invocation.

Package Sidebar

Install

npm i @binarymuse/cmark

Weekly Downloads

3

Version

0.0.6

License

MIT

Unpacked Size

1.49 MB

Total Files

158

Last publish

Collaborators

  • binarymuse