# markdown-it-footnote [![Build Status](https://img.shields.io/travis/markdown-it/markdown-it-footnote/master.svg?style=flat)](https://travis-ci.org/markdown-it/markdown-it-footnote) [![NPM version](https://img.shields.io/npm/v/markdown-it-footnote.svg?style=flat)](https://www.npmjs.org/package/markdown-it-footnote) [![Coverage Status](https://img.shields.io/coveralls/markdown-it/markdown-it-footnote/master.svg?style=flat)](https://coveralls.io/r/markdown-it/markdown-it-footnote?branch=master) > Footnotes plugin for [markdown-it](https://github.com/markdown-it/markdown-it) markdown parser. __v2.+ requires `markdown-it` v5.+, see changelog.__ Markup is based on [pandoc](http://johnmacfarlane.net/pandoc/README.html#footnotes) definition. __Normal footnote__: ``` Here is a footnote reference,[^1] and another.[^longnote] [^1]: Here is the footnote. [^longnote]: Here's one with multiple blocks. Subsequent paragraphs are indented to show that they belong to the previous footnote. ``` html: ```html

Here is a footnote reference,[1] and another.[2]

This paragraph won’t be part of the note, because it isn’t indented.


  1. Here is the footnote. ↩

  2. Here’s one with multiple blocks.

    Subsequent paragraphs are indented to show that they belong to the previous footnote. ↩

``` __Inline footnote__: ``` Here is an inline note.^[Inlines notes are easier to write, since you don't have to pick an identifier and move down to type the note.] ``` html: ```html

Here is an inline note.[1]


  1. Inlines notes are easier to write, since you don’t have to pick an identifier and move down to type the note. ↩

``` ## Install node.js, browser: ```bash npm install markdown-it-footnote --save bower install markdown-it-footnote --save ``` ## Use ```js var md = require('markdown-it')() .use(require('markdown-it-footnote')); md.render(/*...*/) // See examples above ``` _Differences in browser._ If you load script directly into the page, without package system, module will add itself globally as `window.markdownitFootnote`. ### Customize If you want to customize the output, you'll need to replace the template functions. To see which templates exist and their default implementations, look in [`index.js`](index.js). The API of these template functions is out of scope for this plugin's documentation; you can read more about it [in the markdown-it documentation](https://github.com/markdown-it/markdown-it/blob/master/docs/architecture.md#renderer). To demonstrate with an example, here is how you might replace the `
` that this plugin emits by default with an `

` emitted by your own template function override: ```js const md = require('markdown-it')().use(require('markdown-it-footnote')); md.renderer.rules.footnote_block_open = () => ( '

Footnotes

\n' + '
\n' + '
    \n' ); ``` ## License [MIT](https://github.com/markdown-it/markdown-it-footnote/blob/master/LICENSE)