var toc = require('{%= name %}');
console.log(toc(htmlString[, options]));
Type: string
Default: #toc
(usage: <div id="toc"></div>
)
Specify the id for where the table of contents should be injected.
Example
toc(str, {id: '#navigation'});
Usage:
<div id="navigation"></div>
Type: boolean
Default: undefined
Set to false
to disable anchors.
Example
toc(str, {anchors: false});
Customize the template for creating anchors.
Type: function
Default
<a href="#${id}" name="${id}" class="anchor">
<span class="anchor-target" id="${id}"></span>
<span class="glyphicon glyphicon-link"></span>
</a>
Example
toc(str, {
anchorTemplate: function(id) {
return `<a class="anchor" href="${id}" id="${id}"></a>`;
}
});
Heading selectors to use for generating the table of contents.
Type: string
Default: h1,h2
Example
Generate a table of contents for all headings h1-h4.
toc(str, {selectors: 'h1,h2,h3,h4'});
Set whether to generate id
attribute based on parent heading
Type: boolean
Default: true
Example
toc(str, {parentLink: false});
Customize the slugger for generating id
attribute.
Type: function
Default: markdown-slug
Example
toc(str, {
slugger: function(text) {
const re = /[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g;
return text.toLowerCase().trim().replace(re, '').replace(/\s/g, '-');
}
});
Specify html to be injected before table of contents.
Type: string
Default: ''
Example
toc(str, {header: '<h2>Contents</h2>'});
Set minimum number of headings for injecting table of contents.
Type: number
Default: 0
Example
toc(str, {minLength: 2});
Type: boolean
Default: false
Set to true
to add id
attribute to selected headings even when headings' number is smaller than options.minLength
.
Example
Always add id
attribute.
toc(str, {addID: true});