markdown-it-synapse-heading
Version:
tag for markdown-it markdown parser.
45 lines (27 loc) • 1.96 kB
Markdown
# markdown-it-synapse-heading
[](https://travis-ci.org/jay-hodgson/markdown-it-synapse-heading)
[](https://www.npmjs.org/package/markdown-it-synapse-heading)
[](https://coveralls.io/r/jay-hodgson/markdown-it-synapse-heading?branch=master)
> Heading plugin for [markdown-it](https://github.com/markdown-it/markdown-it) markdown parser that supports Synapse requirements. More specifically, in a SPA where the html page fragment identifier has been hijacked for GWT places/activities, our Table Of Contents widget must rely on js to jump to Headings discovered in the html output. Note that the standard heading module must not be enabled (in your markdown-it setup) in order for this module to handle headings!
__v1.+ requires `markdown-it` v5.+, see changelog.__
`# Heading 1` => `<h1 toc="true">Heading 1</h1>`
`#Heading 1` => `<h1 toc="true">Heading 1</h1>`
###toc attribute not added if #'s are followed by '!'
`#! Heading 1` => `<h1>Heading 1</h1>`
## Install
node.js, browser:
```bash
npm install markdown-it-synapse-heading --save
bower install markdown-it-synapse-heading --save
```
## Use
```js
var md = require('markdown-it')()
.use(require('markdown-it-synapse-heading'));
md.render('# Heading 1') // => '<h1 toc="true">Heading 1</h1>'
```
The widgetparams can be used to determine what kind of html widget should be rendered in the output container.
_Differences in browser._ If you load script directly into the page, without
package system, module will add itself globally as `window.markdownitSynapseHeading`.
## License
[MIT](https://github.com/jay-hodgson/markdown-it-synapse-heading/blob/master/LICENSE)