Add site syntax highlighting

This commit is contained in:
2026-06-17 07:39:00 +09:00
parent 0e873fbd51
commit 19c9de1601
5 changed files with 295 additions and 8 deletions
+12 -1
View File
@@ -1,4 +1,5 @@
import { marked } from 'marked';
import { escapeAttribute, escapeHtml, highlightCode } from './highlight.js';
const modules = import.meta.glob('../../../../doc/manual/souce/**/*.md', {
query: '?raw',
@@ -79,7 +80,17 @@ export const nav = [
{ title: 'Open Issues', slug: 'open-issues' },
];
marked.setOptions({ gfm: true });
const renderer = new marked.Renderer();
renderer.code = (code, language = '') => {
const normalizedLanguage = language.split(/\s+/)[0] ?? '';
const className = normalizedLanguage ? ` class="language-${escapeAttribute(normalizedLanguage)}"` : '';
return `<pre class="code-block"><code${className}>${highlightCode(code, normalizedLanguage)}</code></pre>`;
};
renderer.codespan = (code) => `<code>${escapeHtml(code)}</code>`;
marked.setOptions({ gfm: true, renderer });
export function allDocSlugs() {
return Object.keys(docs).filter((slug) => slug !== 'index');