Socket
Socket
Sign inDemoInstall

markdown-it-toc-and-anchor

Package Overview
Dependencies
3
Maintainers
2
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    markdown-it-toc-and-anchor

markdown-it plugin to add toc and anchor links in headings


Version published
Weekly downloads
18K
decreased by-6.8%
Maintainers
2
Install size
349 kB
Created
Weekly downloads
 

Changelog

Source

4.2.0 (2019-01-01)

Bug Fixes

  • better empty heading check, #34, #36, #45 (00ddf0b)
  • remove potential infinite loop, DDOS vector (1e55cc1)
  • restore class methods on Token objects (b1b8855)
  • change typography option to typographer, #38, thanks cesalberca
  • nested anchors support, #46, thanks watagashi

Features

  • add anchorLinkPrefix option #27, thanks ruanyf
  • add wrapHeadingTextInAnchor option #28, thanks jsepia
  • add slugify option, improve example in README, add corresponding test (a085aaf)

<a name="4.1.2"></a>

Readme

Source

markdown-it-toc-and-anchor

circleci AppVeyor Build Status Version Coverage Status Dependency Status

markdown-it plugin to add toc and anchor links in headings

Installation

$ yarn add markdown-it-toc-and-anchor

Usage

ES6

import markdownIt from "markdown-it"
import markdownItTocAndAnchor from "markdown-it-toc-and-anchor"

markdownIt({
    html: true,
    linkify: true,
    typographer: true,
  })
    .use(markdownItTocAndAnchor, {
      // ...options
    })
    .render(md)

ES5 / CommonJS

var markdownIt = require('markdown-it'),
    markdownItTocAndAnchor = require('markdown-it-toc-and-anchor').default;

markdownIt({
    html: true,
    linkify: true,
    typographer: true,
  })
    .use(markdownItTocAndAnchor, {
      // ...options
    })
    .render(md)

:information_source: Note that the 'default' property has to be used when requiring this plugin, this is due to the use of Babel 6 now making ES6 compliant exports (Misunderstanding ES6 Modules, Upgrading Babel, Tears, and a Solution )

Options

toc

(default: true)

Allows you to enable/disable the toc transformation of @[toc]

tocClassName

(default: "markdownIt-TOC")

Option to customize html class of the <ul> wrapping the toc. If no class is wanted set to null.

tocFirstLevel

(default: 1)

Allows you to skip some heading level. Example: use 2 if you want to skip <h1> from the TOC.

tocLastLevel

(default: 6)

Allows you to skip some heading level. Example: use 5 if you want to skip <h6> from the TOC.

tocCallback

(default: null)

Allows you to get toc contents externally by executing a callback function returning toc elements, in addition / instead of using @[toc] tag in content. Example :

  markdownIt({
    html: true,
    linkify: true,
    typographer: true,
  })
    .use(markdownItTocAndAnchor, {
      tocCallback: function(tocMarkdown, tocArray, tocHtml) {
        console.log(tocHtml)
      }
    })
    .render(md)

To allow callback to be more flexible, this option is also available in global markdown-it options, and in render environment. Example :

Callback in global markdown-it options
  var mdIt = markdownIt({
    html: true,
    linkify: true,
    typographer: true,
  })
    .use(markdownItTocAndAnchor)

  ....

  mdIt.set({
    tocCallback: function(tocMarkdown, tocArray, tocHtml) {
      console.log(tocHtml)
    }
  })
    .render(md)
Callback in render environment
  var mdIt = markdownIt({
    html: true,
    linkify: true,
    typographer: true,
  })
    .use(markdownItTocAndAnchor)

  ....

  mdIt
    .render(md, {
      tocCallback: function(tocMarkdown, tocArray, tocHtml) {
        console.log(tocHtml)
      }
    })

(default: true)

Allows you to enable/disable the anchor link in the headings

anchorLinkSymbol

(default: "#")

Allows you to customize the anchor link symbol

anchorLinkSpace

(default: true)

Allows you to enable/disable inserting a space between the anchor link and heading.

anchorLinkSymbolClassName

(default: null)

Allows you to customize the anchor link symbol class name. If not null, symbol will be rendered as <span class="anchorLinkSymbolClassName">anchorLinkSymbol</span>.

anchorLinkBefore

(default: true)

Allows you to prepend/append the anchor link in the headings

anchorLinkPrefix

(default: undefined)

Allows you to add a prefix to the generated header ids, e.g. section-.

anchorClassName

(default: "markdownIt-Anchor")

Allows you to customize the anchor link class. If no class is wanted set to null.

wrapHeadingTextInAnchor

(default: false)

Makes the entire heading into the anchor link (takes precedence over anchorLinkSymbol and anchorLinkBefore)

resetIds

(default: true)

Allows you to reset (or not) ids incrementation. Use it if you will have multiple documents on the same page.

slugify

(default: uses the uslug package)

Allows you to customize the slug function that create ids from string.

Ex:

   // ...
   slugify : string => `/some/prefix/${string.replace(/(\/| |')/g, "_")}`
   // ...

CONTRIBUTING

  • ⇄ Pull requests and ★ Stars are always welcome.
  • For bugs and feature requests, please create an issue.
  • Pull requests must be accompanied by passing automated tests ($ npm test).

CHANGELOG

LICENSE

Keywords

FAQs

Last updated on 01 Jan 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc