Mylloon
9dfcc1101d
All checks were successful
ci/woodpecker/push/publish Pipeline was successful
feat: Basic support for new `/cours` endpoint (not ready for release yet), see commit description for more - Basic /cours support - Fix LaTeX support (see #47 / cours+blog) - Better detection of when there is LaTeX in document - Don't shuffle markdown and LaTeX processing (thanks to comrak) - Macros on release - Local image support (cours+blog) - PDF support - Support of markdown files integration in other markdown files - Very basic exclusion support in toc (need a lot of improvement!!) - Update multiple dependencies (actix-web, ramhorns, comrak, reqwest, hljs) - Reformat some code - ToC in /cours support (very basic, works via building it in rust and processing it in js) - Remove very old assets (font + jspdf) - Hide navbar when printing the website - New tag in index page - Fix OCaml support for HLJS + add "pseudocode" derived from Julia Reviewed-on: #44 Co-authored-by: Mylloon <kennel.anri@tutanota.com> Co-committed-by: Mylloon <kennel.anri@tutanota.com>
46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
window.addEventListener("load", () => {
|
|
/* Configuration */
|
|
hljs.configure({
|
|
noHighlightRe: /^$/i,
|
|
languageDetectRe: /\blanguage-hljs-([\w-]+)\b/i,
|
|
});
|
|
hljs.addPlugin(new CopyButtonPlugin());
|
|
|
|
/* Aliases of langs */
|
|
const aliases = {
|
|
bash: ["fish"],
|
|
julia: ["pseudocode"],
|
|
};
|
|
for (const lang in aliases) {
|
|
hljs.registerAliases(aliases[lang], { languageName: lang });
|
|
}
|
|
|
|
/* Highlight */
|
|
hljs.highlightAll();
|
|
hljs.initLineNumbersOnLoad();
|
|
|
|
/* Theme */
|
|
const dark = "dark";
|
|
const light = "light";
|
|
const attribute = "disabled";
|
|
const updateTheme = (theme) => {
|
|
{
|
|
const elementToEnable = document.getElementById(
|
|
`hljs-${theme.matches ? dark : light}-theme`
|
|
);
|
|
const elementToDisable = document.getElementById(
|
|
`hljs-${theme.matches ? light : dark}-theme`
|
|
);
|
|
|
|
if (elementToEnable.hasAttribute(attribute)) {
|
|
elementToEnable.removeAttribute(attribute);
|
|
}
|
|
elementToDisable.setAttribute(attribute, attribute);
|
|
}
|
|
};
|
|
|
|
const darkModePreference = window.matchMedia("(prefers-color-scheme: dark)");
|
|
updateTheme(darkModePreference);
|
|
|
|
darkModePreference.addEventListener("change", (theme) => updateTheme(theme));
|
|
});
|