Autogenerate unique ids for text headers (h1,...h6)
Install with npm:
$ npm install --save remarkable-header-ids
const HeaderIdsPlugin = require("remarkable-header-ids");
const Remarkable = require("remarkable");
const markdownParser = new Remarkable().use(
HeaderIdsPlugin()
);
Params
Option name | Type | defaultValue | Note |
---|---|---|---|
levels | number[] |
[1, 2, 3, 4, 5, 6] | |
anchorClassName | string |
"header-anchor" | |
anchorText | string |
"#" | When anchorText is empty, the anchor will not be rendered at all |
headerId | (slug: string) => string |
slug => "heading-#" + slug |
Example
const Remarkable = require("remarkable");
const HeaderIdsPlugin = require("remarkable-header-ids");
const parser = new Remarkable().use(
HeaderIdsPlugin({
levels: [2], // only transform h2
anchorClassName: "this-is-anchor-in-header",
anchorText: "AnchorText",
headerId: (slug) =>
`header-that-has-this-anchor-${slug}`,
})
);
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Please read the contributing guide for avice on opening issues, pull requests, and coding standards.
Test content is located inside the test directory. For more info regarding the internals of test suite, check out test/parse.js
.
to run the test, execute npm test
from the root directory. This script will render into test/parsed.html
.
Farzad Yousefzadeh
Copyright © 2020, github/farskid. Released under the MIT license.