remark-validate-links-heading-id
Version:
The plugin for remark-validate-links to support custom heading ID
22 lines (18 loc) • 615 B
JavaScript
import { parseMarkdownHeadingId } from '@docusaurus/utils';
import { visit } from 'unist-util-visit';
function visitor(node) {
const data = node.data || (node.data = {});
const children = node['children'];
const lastChild = children[children.length - 1]; // The heading ID is always the last child
const heading = lastChild['value'];
const parsedHeading = parseMarkdownHeadingId(heading);
if (parsedHeading.id !== undefined) {
data.id = parsedHeading.id;
}
}
function transformer(tree) {
visit(tree, 'heading', visitor);
}
export default function customHeadingId() {
return transformer;
}