marked-gfm-heading-id
Add ids to headings like GitHub.
Usage
import { marked } from "marked";
import { gfmHeadingId } from "marked-gfm-heading-id";
const options = {
prefix: "my-prefix-",
};
marked.use(gfmHeadingId(options));
marked("# heading");
Get heading list
getHeadingList
is a function that is exported to provide the list of headings.
The headings will each be an object with the following properties:
text
: The rendered HTML for the headinglevel
: The heading level (1-7)id
: The id given to the heading including any prefix
import { marked } from "marked";
import { gfmHeadingId, getHeadingList } from "marked-gfm-heading-id";
marked.use(gfmHeadingId({prefix: "my-prefix-"}), {
hooks: {
postprocess(html) {
const headings = getHeadingList();
return `
<ul id="table-of-contents">
${headings.map(({id, text, level}) => `<li><a href="#${id}" class="h${level}">${text}</a></li>`)}
</ul>
${html}`;
}
}
});
marked("# heading");
options
option | type | default | description |
---|
prefix | string | "" | A string to prepend to all ids. |