'Add Table of Content to Static HTML with scrolling active states in Next.js
I created a dynamic table of contents but cannot find a way to add scrolling active states to it. How can I track all H2 heading that has an id applied and highlight them when scrolling ? Anyone can help me with this?
Thank you.
const content = unified()
.use(rehypeParse, {
fragment: true,
})
.use(() => {
return (tree) => {
visit(tree, 'element', (node) => {
if (node.tagName === 'h2' ) {
const id = parameterize(node.children[0].value);
node.properties.id = id;
toc.push({
id,
title: node.children[0].value
});
node.children.unshift({
type: 'element',
tagName: 'a',
properties: {
href: `#${id}`,
}
})
}
})
}
})
.use(rehypeStringify)
.processSync(post.content)
.toString();
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
