Files
RenewCMS/web/src/composables/useShikiHighlighter.ts
T
2026-09-27 18:04:43 +02:00

22 lines
562 B
TypeScript

import { createHighlighter, type Highlighter } from 'shiki'
let highlighterPromise: Promise<Highlighter> | null = null
export function useShikiHighlighter() {
if (!highlighterPromise) {
highlighterPromise = createHighlighter({
themes: ['github-light', 'github-dark'],
langs: ['javascript'],
})
}
return highlighterPromise
}
export function highlightToHtml(highlighter: Highlighter, code: string, lang: string) {
return highlighter.codeToHtml(code, {
lang,
themes: { light: 'github-light', dark: 'github-dark' },
defaultColor: false,
})
}