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
Markdown
# 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
```