Null Pointer Micromanagement

    html-toc

    2.0.0 • Public • Published

    html-toc NPM version NPM monthly downloads NPM total downloads Linux Build Status

    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.

    Install

    npm i html-toc

    DownloadsWeekly Downloads

    30

    Version

    2.0.0

    License

    MIT

    Last publish

    Collaborators

    • jonschlinkert