diff options
| author | ache <ache@ache.one> | 2025-07-23 19:16:08 +0200 |
|---|---|---|
| committer | ache <ache@ache.one> | 2025-07-23 19:16:08 +0200 |
| commit | ab6ce7422a2ce418a487c3dc33275df06c99ccb5 (patch) | |
| tree | 37c3295c0607469ab991f0962112f15250bdce8a | |
| parent | Fix the date comparaison (diff) | |
Improve highlighting capability
| -rw-r--r-- | src/build/to-html.mjs | 65 |
1 files changed, 63 insertions, 2 deletions
diff --git a/src/build/to-html.mjs b/src/build/to-html.mjs index 322144f..db417a1 100644 --- a/src/build/to-html.mjs +++ b/src/build/to-html.mjs @@ -18,6 +18,67 @@ import remarkSpecialBox from "./special_box.mjs"; import remarkRemoveFootnoteHeader from "./remove-footnote-header.mjs"; import { getTocHeading } from "./i18n.mjs"; +// Support for more highlight syntaxes +import arduino from "highlight.js/lib/languages/arduino"; +import bash from "highlight.js/lib/languages/bash"; +import c from "highlight.js/lib/languages/c"; +import cpp from "highlight.js/lib/languages/cpp"; +import css from "highlight.js/lib/languages/css"; +import diff from "highlight.js/lib/languages/diff"; +import go from "highlight.js/lib/languages/go"; +import graphql from "highlight.js/lib/languages/graphql"; +import haskell from "highlight.js/lib/languages/haskell"; +import ini from "highlight.js/lib/languages/ini"; +import javascript from "highlight.js/lib/languages/javascript"; +import json from "highlight.js/lib/languages/json"; +import less from "highlight.js/lib/languages/less"; +import lua from "highlight.js/lib/languages/lua"; +import makefile from "highlight.js/lib/languages/makefile"; +import markdown from "highlight.js/lib/languages/markdown"; +import nginx from "highlight.js/lib/languages/nginx"; +import plaintext from "highlight.js/lib/languages/plaintext"; +import python from "highlight.js/lib/languages/python"; +import pythonRepl from "highlight.js/lib/languages/python-repl"; +import r from "highlight.js/lib/languages/r"; +import rust from "highlight.js/lib/languages/rust"; +import scss from "highlight.js/lib/languages/scss"; +import shell from "highlight.js/lib/languages/shell"; +import sql from "highlight.js/lib/languages/sql"; +import typescript from "highlight.js/lib/languages/typescript"; +import wasm from "highlight.js/lib/languages/wasm"; +import xml from "highlight.js/lib/languages/xml"; + +const highlightLanguages = { + arduino, + bash, + c, + cpp, + css, + diff, + go, + graphql, + haskell, + ini, + javascript, + json, + less, + lua, + makefile, + markdown, + nginx, + plaintext, + python, + pythonRepl, + r, + rust, + scss, + shell, + sql, + typescript, + wasm, + xml, +}; + const autoLinkOption = { behavior: "wrap", properties: { @@ -57,7 +118,7 @@ const generator = unified() .use(rehypePicture, pictureOptions) .use(rehypeKaTeX) .use(rehypeSlug) - .use(rehypeHighlight) + .use(rehypeHighlight, { languages: highlightLanguages }) .use(rehypeAutolinkHeadings, autoLinkOption) .use(rehypeStringify); @@ -78,7 +139,7 @@ const generatorHTML = unified() .use(rehypePicture, pictureOptions) .use(rehypeKaTeX) .use(rehypeSlug) - .use(rehypeHighlight) + .use(rehypeHighlight, { languages: highlightLanguages }) .use(rehypeAutolinkHeadings, autoLinkOption) .use(rehypeStringify); |