From bcf647976ce77424b23a1302eefe055f1ef25a6d Mon Sep 17 00:00:00 2001 From: Gato Date: Fri, 19 Jun 2026 15:53:31 +0200 Subject: [PATCH] feat: coloration syntaxique locale via themes/default.css MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Suppression de la dépendance CDN highlight.js. Le CSS github-dark est maintenant dans themes/default.css, lu au démarrage et injecté dans chaque page HTML générée. Co-Authored-By: Claude Sonnet 4.6 --- lib/converter.js | 7 ++- themes/default.css | 121 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 themes/default.css diff --git a/lib/converter.js b/lib/converter.js index e1d9077..1b79b78 100644 --- a/lib/converter.js +++ b/lib/converter.js @@ -4,6 +4,11 @@ const { marked } = require('marked'); const { markedHighlight } = require('marked-highlight'); const hljs = require('highlight.js'); +const SYNTAX_CSS = fs.readFileSync( + path.join(__dirname, '..', 'themes', 'default.css'), + 'utf-8' +); + marked.use(markedHighlight({ langPrefix: 'hljs language-', highlight(code, lang) { @@ -444,7 +449,7 @@ function htmlShell({ title, sidebar, body, watchMode }) { - + ${noSidebarStyle} diff --git a/themes/default.css b/themes/default.css new file mode 100644 index 0000000..3c2ce0e --- /dev/null +++ b/themes/default.css @@ -0,0 +1,121 @@ +/* + * Thème de coloration syntaxique — GitHub Dark + * Source : highlight.js/styles/github-dark + * + * Classes générées par marked-highlight avec langPrefix: 'hljs language-' + * Personnaliser ce fichier pour changer les couleurs du code dans MarkdownRender. + */ + +pre code.hljs { + display: block; + overflow-x: auto; + padding: 1em; +} + +code.hljs { + padding: 3px 5px; +} + +.hljs { + color: #c9d1d9; + background: #0d1117; +} + +/* Mots-clés, types, variables de langage */ +.hljs-doctag, +.hljs-keyword, +.hljs-meta .hljs-keyword, +.hljs-template-tag, +.hljs-template-variable, +.hljs-type, +.hljs-variable.language_ { + color: #ff7b72; +} + +/* Noms de fonctions et de classes */ +.hljs-title, +.hljs-title.class_, +.hljs-title.class_.inherited__, +.hljs-title.function_ { + color: #d2a8ff; +} + +/* Constantes, attributs, opérateurs, nombres */ +.hljs-attr, +.hljs-attribute, +.hljs-literal, +.hljs-meta, +.hljs-number, +.hljs-operator, +.hljs-variable, +.hljs-selector-attr, +.hljs-selector-class, +.hljs-selector-id { + color: #79c0ff; +} + +/* Chaînes */ +.hljs-regexp, +.hljs-string, +.hljs-meta .hljs-string { + color: #a5d6ff; +} + +/* Built-ins, symboles */ +.hljs-built_in, +.hljs-symbol { + color: #ffa657; +} + +/* Commentaires */ +.hljs-comment, +.hljs-code, +.hljs-formula { + color: #8b949e; +} + +/* Balises HTML / sélecteurs */ +.hljs-name, +.hljs-quote, +.hljs-selector-tag, +.hljs-selector-pseudo { + color: #7ee787; +} + +/* Substitutions */ +.hljs-subst { + color: #c9d1d9; +} + +/* Titres markdown */ +.hljs-section { + color: #1f6feb; + font-weight: bold; +} + +/* Listes markdown */ +.hljs-bullet { + color: #f2cc60; +} + +/* Italique / gras markdown */ +.hljs-emphasis { + color: #c9d1d9; + font-style: italic; +} + +.hljs-strong { + color: #c9d1d9; + font-weight: bold; +} + +/* Diff */ +.hljs-addition { + color: #aff5b4; + background-color: #033a16; +} + +.hljs-deletion { + color: #ffdcd7; + background-color: #67060c; +}