feat(viewer): couverture pretty print tous langages code (aliases hljs, langues hors bundle common, Dockerfile/Makefile)
CI / lint (push) Successful in 1m18s
CI / security (push) Successful in 56s
CI / test (push) Successful in 2m31s
CI / build (push) Successful in 48s
CI / e2e (push) Successful in 10m41s

This commit is contained in:
2026-09-14 20:33:54 -04:00
parent 686a6da019
commit 24b5dd033a
5 changed files with 60 additions and 7 deletions
+22
View File
@@ -259,6 +259,28 @@ function safeHighlight(block) {
if (block.className && block.className.indexOf('language-mermaid') !== -1) return;
if (typeof hljs !== "undefined" && hljs.highlightElement) {
try {
// Alias pour les extensions que highlight.js (bundle common) ne connaît pas
const PP_LANG_ALIAS = {
md: "markdown", markdown: "markdown", rst: "plaintext",
pl: "perl", lua: "lua", dart: "dart",
vue: "html", svelte: "html", astro: "html",
graphql: "graphql", prisma: "sql", proto: "c",
vb: "basic", vba: "basic", asm: "x86asm",
tf: "haskell", gradle: "groovy", groovy: "groovy",
properties: "ini", gitignore: "plaintext", hosts: "ini",
fish: "bash", ksh: "bash", systemd: "ini", batch: "dos", bat: "dos",
shell: "bash", golang: "go", toml: "ini", avsc: "json", jsonc: "json", json5: "json",
};
const m = /\blanguage-([\w-]+)/.exec(block.className || "");
if (m) {
const lang = m[1];
const alias = PP_LANG_ALIAS[lang];
if (alias && hljs.getLanguage && !hljs.getLanguage(lang) && hljs.getLanguage(alias)) {
block.className = block.className.replace("language-" + lang, "language-" + alias);
} else if (hljs.getLanguage && !hljs.getLanguage(lang) && !hljs.getLanguage(alias || "")) {
block.className = block.className.replace("language-" + lang, "language-plaintext");
}
}
hljs.highlightElement(block);
} catch (e) {
/* CDN not loaded */