UNPKG

bem-md-renderer

Version:

The builder markdown to html with custom renderer, which generates the html headlines like github

87 lines (58 loc) 2.04 kB
# bem-md-renderer Markdown renderer for Github like anchors. Use on bem-sites with npm module https://github.com/chjj/marked ## Usage Minimal usage: ``` var bmdr = require('bem-md-renderer'); bmdr.render('I am using __markdown__.', function(err, result) { if(err) throw err; console.log('result', result); }); // Outputs: <p>I am using <strong>markdown</strong>.</p> ``` ## API ## bmdr.render(markdownString [,options], callback); ### markdownString Type: `string` Required. String of markdown source to be compiled. ### options Type: `object` Hash of options. All available options can be viewed in `marked` module docs https://github.com/chjj/marked ### callback Type: `function` Required. Function called when the `markdownString` has been fully parsed when using async highlighting. If the `options` argument is omitted, this can be used as the second argument. ## bmdr.getRenderer(); Return an instance of custom marked renderer. Example: ``` var marked = require('marked'), bmdr = required('bem-md-renderer'); var html = marked('## Some title\n## Some title', { gfm: true, pedantic: false, sanitize: false, renderer: bmdr.getRenderer() // get custom renderer }); console.log(html); /** * Outputs: * <h2 id="some-title"><a href="#some-title"></a>some-title</h2> * <h2 id="some-title-1"><a href="#some-title-1"></a>some-title</h2> */ ``` **Note #1:** The titles are identical, but both has a different anchors **Note #2:** You can make possible a copy anchor by click on `<a>` inside headline, when you hover it **Note #3:** Work good with TOC https://github.com/eGavr/toc-md ## bmdr.getAnchor(anchorString); Return an anchor, create in Github styles ### anchorString Type: `string` Required. String of headline text. Work with latin and cyrilic symbols Example: ``` var bmdr = require('bem-md-renderer'); console.log(bmdr.getAnchor('Create a decl for a "heavy" block requested by demand')); // Outputs: create-a-decl-for-a-heavy-block-requested-by-demand ```