UNPKG

markdown-it-ftoc

Version:

markdown-it plugin to add toc and anchor links in headings

115 lines (87 loc) 2.42 kB
## markdown-it-ftoc > markdown-it plugin to add toc and anchor links in headings Modified from [markdown-it-toc](https://github.com/tylerlong/markdown-it-toc) and apis like [markdown-it-toc-and-anchor](https://github.com/medfreeman/markdown-it-toc-and-anchor) ## Installation ```shell yarn add markdown-it-ftoc ``` ## Usage ### ES6 ```javascript import markdownIt from "markdown-it" import markdownItFtoc from "markdown-it-ftoc" markdownIt({ html: true, linkify: true, typographer: true, }) .use(markdownItFtoc, { // ...options }) .render(md) ``` ### browser ```javascript var md = window.markdownit(); md = md.use(window.markdownItFtoc); console.log(md.render('@[toc](list)\n\n# test\n\n## something')); ``` ## Options ### tocClassName (default: "markdown-toc") Option to customize html class of the <ul> wrapping the toc. If no class is wanted set to null. ### tocFirstLevel (default: 1) Allows you to skip some heading level. Example: use 2 if you want to skip `<h1>`from the TOC. ### tocLastLevel (default: 6) ### tocCallback (default: null) Allows you to get toc contents externally by executing a callback function returning toc elements, in addition / instead of using @[toc] tag in content. Example : ```javascript markdownIt({ html: true, linkify: true, typographer: true, }) .use(markdownItTocAndAnchor, { tocCallback: function(tocHtml) { console.log(tocHtml) } }) .render(md) ``` ### anchorLinkSymbol (default: "#") Allows you to customize the anchor link symbol ### anchorLinkSpace (default: true) Allows you to enable/disable inserting a space between the anchor link and heading. ### anchorLinkSymbolClassName (default: "header-anchor") Allows you to customize the anchor link symbol class name. If not null, symbol will be rendered as ```html <span class="anchorLinkSymbolClassName">anchorLinkSymbol</span> ``` ### anchorClassName (default: "markdown-toc-anchor") ### slugify type: "function" Allows you to customize the slug function that create ids from string. Examples: use [uslug](https://www.npmjs.com/package/uslug) ```javascript import uslug from 'uslug' markdownIt({ html: true, linkify: true, typographer: true, }) .use(markdownItTocAndAnchor, { slugify: uslug }) .render(md) ``` ### slugifyArguments arguments for slugify type: arguments array default: []