Generate a HTML table of contents using cheerio.
Install with npm:
$ npm install --save html-toc
var toc = require('html-toc');
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});
- breakdance: Breakdance is a node.js library for converting HTML to markdown. Highly pluggable, flexible and easy… more | homepage
- markdown-toc: Generate a markdown TOC (table of contents) with Remarkable. | homepage
- remarkable: Markdown parser, done right. 100% Commonmark support, extensions, syntax plugins, high speed - all in… more | homepage
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Please read the contributing guide for advice on opening issues, pull requests, and coding standards.
Commits | Contributor |
---|---|
9 | dgeibi |
2 | jonschlinkert |
(This project's readme.md is generated by verb, please don't edit the readme directly. Any changes to the readme must be made in the .verb.md readme template.)
To generate the readme, run the following command:
$ npm install -g verbose/verb#dev verb-generate-readme && verb
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
$ npm install && npm test
Jon Schlinkert
Copyright © 2017, Jon Schlinkert. Released under the MIT License.
This file was generated by verb-generate-readme, v0.6.0, on May 14, 2017.