Add site processor

The new processor appends the `docstring` class to code docstrings so that they can be styled.
This commit is contained in:
Foster Hangdaan 2023-12-05 10:22:49 -05:00
parent 4a9de90590
commit 28839e99bf
Signed by: foster
GPG key ID: E48D7F49A852F112

View file

@ -59,4 +59,23 @@ site.use(toc({
}));
site.use(footnotes());
site.process([".html"], (page) => {
// NOTE: This is a hack to append a class to JS doctrings so that we
// can style them. If only the Hightlight.js plugin could be configured
// to do this instead.
const codeCommentElements = page.document?.getElementsByClassName("hljs-comment");
if (codeCommentElements && codeCommentElements.length > 0) {
const docStringRegex = /^\/\*\*.*\*\/$/gsm;
const codeDocStringElements = codeCommentElements.filter((el) => {
const matchResult = el.innerText.match(docStringRegex);
return !!matchResult;
});
if (codeDocStringElements.length > 0) {
codeDocStringElements.forEach((el) => {
el.classList.add("docstring");
})
}
}
});
export default site;