Skip to content

Latest commit

 

History

History
161 lines (99 loc) · 2.32 KB

.verb.md

File metadata and controls

161 lines (99 loc) · 2.32 KB

Usage

var toc = require('{%= name %}');
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});