Detalhes do pacote

markdown-it-toc-and-anchor

medfreeman100.8kMIT4.2.0

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

markdown-it, markdown-it-plugin, markdown, toc

readme (leia-me)

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)
      }
    })

anchorLink

(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

changelog (log de mudanças)

Change Log

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

4.2.0 (2019-01-01)

Bug Fixes

Features

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

4.1.2 (2017-03-07)

Bug Fixes

  • TypeError: Cannot read property 'breaks' of undefined (#30)

Features

  • add anchorLinkPrefix option (3f35d5a)

4.1.1 (2016-05-05)

Bug Fixes

  • inexistent environment in markdown-it parsing on second instance

4.1.0 (2016-04-23)

Features

  • tocCallback option to allow getting toc elements in addition to / instead of @[toc] transformation

4.0.0 (2016-04-23)

  • Changed: refactored toc generation to allow full markdown processing
  • Removed: indentation option (the output is now generated by markdown-it and has no indentation)
  • Added: dependency to clone
  • Fixed: link inside heading not rendered correctly (#7)

3.1.0 (2016-04-19)

  • Added: tocLastLevel option to skip some upper heading levels (#1)

3.0.2 (2016-04-19)

  • Fixed: eslint command now using gitignore (fix for Windows), automatic syntax fix
  • Fixed: ava configuration (fix for Windows) (#14)

3.0.1 (2016-04-10)

  • Fixed: Reset anchor ids (#13)

3.0.0 (2016-04-04)

No API changes.

  • Changed: this plugin does not require markdown-it anymore (#2)

2.1.0 (2016-01-17)

  • Fixed: Should support unicode heading (#5 via #6)
  • Added: anchorLinkSpace option to enable/disable inserting a space between the anchor link and heading (#6).
  • Added: anchorLinkSymbolClassName customize the anchor link symbol class name (#6).

2.0.0 (2015-11-01)

  • Changed: markdown-it@^5.0.0.

1.0.1 (2015-06-03)

  • Fixed: publish dist/ files.

1.0.0 (2015-06-03)

✨ Initial release