markdown-it-ftoc
Version:
markdown-it plugin to add toc and anchor links in headings
115 lines (87 loc) • 2.42 kB
Markdown
## 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: []