@binarymuse/cmark
v0.0.6
Published
Node bindings to the cmark Markdown parser
Downloads
12
Readme
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 HTMLoptions
- a hash of options (see Options, below)
renderHtml(markdown[, options], callback)
markdown
- a string containing Markdown to render to HTMLoptions
- a hash of options (see Options, below)callback
- a function to call with the resulting HTML once the Markdown has been renderedhtml
- the resulting HTML
Options
You can control the behavior of node-cmark by passing options to the rendering functions. The available options are:
sourepos
- iftrue
, adds adata-sourcepos
attribute to all block elements that TODO??safe
- iftrue
, suppresses raw HTML and unsafe links (javascript:
,vbscript:
,file:
, anddata:
except forimage/png
,image/gif
,image/jpeg
, orimage/webp
mime types). Raw HTML is replaced by a placeholder HTML comment. Unsafe links are replaced with empty strings.nobreaks
- iftrue
, renders softbreak elements as spaceshardbreaks
- iftrue
, renders softbreak elements as hard line breaksnormalize
- iftrue
, adjacent text nodes are consolidatedvalidateUtf8
- iftrue
, replaces illegal UTF-8 sequences withU+FFFD
smart
- iftrue
, replaces straight quotes with curly ones, turns---
into em dashes, and--
into en dashesextensions
- 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.