🏠 Home 

Boost.org - Source Highlight

Add code highlight to boost.org pages.


Install this script?
// ==UserScript==
// @name        Boost.org - Source Highlight
// @namespace   uk.jixun
// @match       https://www.boost.org/doc/*
// @grant       none
// @version     1.0
// @author      Jixun
// @description Add code highlight to boost.org pages.
// @run-at      document-start
// @license     apache-2.0
// ==/UserScript==
function main() {
const codeBlocks = Array.from(document.querySelectorAll('pre'));
if (codeBlocks.length === 0) return;
const stylesheet = document.createElement('link');
Object.assign(stylesheet, {
rel: 'stylesheet',
href: 'https://cdn.jsdelivr.net/gh/highlightjs/[email protected]/build/styles/default.min.css',
});
document.head.appendChild(stylesheet);
const hljsScript = document.createElement('script');
Object.assign(hljsScript, {
src: 'https://cdn.jsdelivr.net/gh/highlightjs/[email protected]/build/highlight.min.js',
onload: () => {
hljs.configure({
languages: ['cpp'],
ignoreUnescapedHTML: true, // anchors
});
for(const codeBlock of codeBlocks) {
const anchors = codeBlock.querySelectorAll('a');
hljs.highlightElement(codeBlock);
if (anchors.length === 0) continue;
const urlMap = new Map(Array.from(anchors, anchor => [anchor.textContent, anchor.href]));
console.info(urlMap);
for (const strEl of codeBlock.querySelectorAll('.hljs-string')) {
const fileName = strEl.textContent.slice(1, -1);
console.info('searching for %s...', fileName);
if (urlMap.has(fileName)) {
const newAnchor = document.createElement('a');
newAnchor.href = urlMap.get(fileName);
newAnchor.style.borderBottom = '1px dotted';
strEl.insertAdjacentElement('afterend', newAnchor);
newAnchor.appendChild(strEl);
}
}
}
},
});
document.head.appendChild(hljsScript);
}
if (document.readyState === 'loading' && !document.head) {
addEventListener('DOMContentLoaded', main);
} else {
main();
}