'use strict'; // Highlight.JS: https://highlightjs.org/ async function initializeHighlightJS() { const languageRE = /\blanguage-([a-zA-Z0-9_\-]+)\b/gi; const noLanguageRE = /\bno-language\b/gi; const languages = [ "apache", "asciidoc", "autohotkey", "bash", "basic", "c", "cmake", "cpp", "csharp", "css", "d", "diff", "gcode", "glsl", "go", "gradle", "graphql", "http", "ini", "java", "javascript", "json", "kotlin", "latex", "less", "llvm", "lua", "makefile", "markdown", "nginx", "objectivec", "oxygene", "perl", "php", "php-template", "plaintext", "protobuf", "python", "python-repl", "r", "ruby", "rust", "scss", "shell", "sql", "swift", "typescript", "vbnet", "wasm", "xml", "yaml", ]; console.log("highlight.JS: Loading..."); let highlightJS = await import("./highlightjs/highlight.mjs"); window.highlightJS = highlightJS.default; console.log("highlight.JS: Configuring..."); window.highlightJS.configure({ "noHighlightRe": noLanguageRE, "languageDetectRe": languageRE, "cssSelector": "code.block[class*=\"language\"]", "throwUnescapedHTML": true, }); // Import all languages. let langs = []; for (let lang of languages) { console.log(`highlight.JS: Importing language definition for '${lang}'...`); langs.push(import(`./highlightjs/languages/${lang}.min.js`).then((mod) => { window.highlightJS.registerLanguage(lang, mod.default); console.log(`highlight.JS: Imported language definition for '${lang}'.`); })); } await Promise.allSettled(langs) // Highlight everything. function highlightAllCode() { console.log(`highlight.JS: Applying highlighting all valid code blocks...`); window.highlightJS.highlightAll(); }; if (document.readyState === "complete" || document.readyState === "loaded" || document.readyState === "interactive") { highlightAllCode(); } else { document.addEventListener('DOMContentLoaded', () => { highlightAllCode(); }); } } initializeHighlightJS();