Better code blocks

This commit is contained in:
2024-10-05 12:29:54 +03:00
parent 8f819f3ab1
commit 2311498575
7 changed files with 629 additions and 461 deletions

37
shikiHighlighter.js Normal file
View File

@@ -0,0 +1,37 @@
import {createHighlighter} from "shiki"
import {escapeSvelte} from "mdsvex"
import {
transformerNotationHighlight,
transformerNotationDiff
} from "@shikijs/transformers"
const theme = 'material-theme'
export const highlighter = await createHighlighter({
themes: [theme],
langs: [
'javascript',
'typescript',
'html',
'markdown',
'mdx',
'bash',
'svelte',
'yaml'
]
});
export const shikiHighlighter = async (code, lang = 'text') => {
const html = escapeSvelte(highlighter.codeToHtml(
code,
{
lang,
theme,
transformers: [
transformerNotationHighlight(),
transformerNotationDiff()
]
}
));
return `{@html \`${html}\` }`;
}