html-toc
v2.0.0
Published
Generate a HTML table of contents using cheerio.
Downloads
976
Maintainers
Readme
html-toc
Generate a HTML table of contents using cheerio.
Install
Install with npm:
$ npm install --save html-toc
Usage
var toc = require('html-toc');
console.log(toc(htmlString[, options]));
Options
options.id
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>
options.anchors
Type: boolean
Default: undefined
Set to false
to disable anchors.
Example
toc(str, {anchors: false});
options.anchorTemplate
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>`;
}
});
options.selectors
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'});
options.parentLink
Set whether to generate id
attribute based on parent heading
Type: boolean
Default: true
Example
toc(str, {parentLink: false});
options.slugger
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, '-');
}
});
options.header
Specify html to be injected before table of contents.
Type: string
Default: ''
Example
toc(str, {header: '<h2>Contents</h2>'});
options.minLength
Set minimum number of headings for injecting table of contents.
Type: number
Default: 0
Example
toc(str, {minLength: 2});
options.addID
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});
About
Related projects
- 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
Contributing
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.
Contributors
| Commits | Contributor | | --- | --- | | 9 | dgeibi | | 2 | jonschlinkert |
Building docs
(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 tests
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
Author
Jon Schlinkert
License
Copyright © 2017, Jon Schlinkert. Released under the MIT License.
This file was generated by verb-generate-readme, v0.6.0, on May 14, 2017.