marked/docs/USING_ADVANCED.md
2018-03-22 01:53:40 +09:00

4.0 KiB

The marked function

marked(markdownString [,options] [,callback])
Argument Type Notes
markdownString string String of markdown source to be compiled.
options object Hash of options. Can also use marked.setOptions.
callback function Called when markdownString has been parsed. Can be used as second argument if no options present.

Alternative using reference

// Create reference instance
var myMarked = require('marked');

// Set options
// `highlight` example uses `highlight.js`
myMarked.setOptions({
  renderer: new marked.Renderer(),
  highlight: function(code) {
  	return require('highlight.js').highlightAuto(code).value;
  },
  pedantic: false,
  gfm: true,
  tables: true,
  breaks: false,
  sanitize: false,
  smartLists: true,
  smartypants: false,
  xhtml: false
});

// Compile
console.log(myMarked('I am using __markdown__.'));

Options

Member Type Notes
highlight function A function to highlight code blocks. See also: Asynchronous highlighting.
renderer object An object containing functions to render tokens to HTML. See extensibility for more details. Default: new Renderer()
pedantic boolean Conform to obscure parts of markdown.pl as much as possible. Don't fix original markdown bugs or behavior. Default: false
gfm boolean Use approved GitHub Flavored Markdown (GFM) specification.
tables boolean Use GFM Tables extension. Requires gfm be true.
breaks boolean Use GFM hard and soft line breaks. Requires gfm be true. Default: false
sanitize boolean Ignore HTML passed into markdownString (sanitize the input). Default: false
smartlists boolean Use smarter list behavior than those found in markdown.pl. Default: true
smartypants boolean Use "smart" typographic punctuation for things like quotes and dashes.
xhtml boolean Self-close the tags for void elements (<br/>, <img/>, etc.) with a "/" as required by XHTML. Default: false

Asynchronous highlighting

Unlike highlight.js the pygmatize.js library uses asynchronous highlighting. This example demonstrates that marked is agnostic when it comes to the highlighter you use.

myMarked.setOptions({
  highlight: function(code, lang, callback) {
    require('pygmentize-bundled') ({ lang: lang, format: 'html' }, code, function (err, result) {
      callback(err, result.toString());
    });
  }
});

console.log(myMarked(markdownString));

In both examples, code is a string representing the section of code to pass to the highlighter. In this example, lang is a string informing the highlighter what programming lnaguage to use for the code and callback is the function the asynchronous highlighter will call once complete.