Markdown-it plugin to add Wiki style Table Of Contents
$ npm install --save markdown-it-wiki-toc
var markdownIt = require('markdown-it');
markdownIt({
html: true,
linkify: true,
typographer: true,
})
.use(require('markdown-it-wiki-toc'), {
// ...options
})
.render(mdText);
<p>
<div id="toc" class="toc">
<h3>Table of Contents</h3>
<ul class="toc-level">
<li><a href="#h-1">1.</a> Heading 1</li>
<ul class="toc-level">
<li><a href="#h-1.1">1.1.</a> Heading 2</li>
<ul class="toc-level">
<li><a href="#h-1.1.1">1.1.1.</a> Heading 3</li>
</ul>
<li><a href="#h-1.2">1.2.</a> Heading 2</li>
<ul class="toc-level">
<li><a href="#h-1.2.1">1.2.1.</a> Heading 3</li>
</ul>
</ul>
</ul>
</div>
</p>
<h1><a href="#h-1" id="h-1">1.</a> Heading 1</h1>
<h2><a href="#h-1.1" id="h-1.1">1.1.</a> Heading 2</h2>
<h3><a href="#h-1.1.1" id="h-1.1.1">1.1.1.</a> Heading 3</h3>
<h2><a href="#h-1.2" id="h-1.2">1.2.</a> Heading 2</h2>
<h3><a href="#h-1.2.1" id="h-1.2.1">1.2.1.</a> Heading 3</h3>
default: /@\[toc\]/im
Regular expression to detect TOC in source.
default: 'Table of Contents'
Title of TOC.
default: 'toc'
HTML ID attribute of TOC wrapper.
default: 'toc'
HTML Class attribute of TOC wrapper.
default: 'toc-level'
HTML Class attribute of level wrapper of TOC.
default: 'h-'
Prefix for each ID attribute of headings.
default: false
Value of whether the link in the anchor of the heading points to TOC.
If the value is true
, result is <h?><a href="#toc">...</a>...</h?>
.
default: 2
Maximum depth used for displaying the body of TOC
$ npm run test