import { createHighlighter } from 'shiki'
* Server-side shiki singleton for reference code snippets.
* The docs theme is forced light, so a single theme is enough.
*/
let highlighterPromise = null
function getHighlighter() {
if (!highlighterPromise) {
highlighterPromise = createHighlighter({
themes: ['github-light'],
langs: ['bash', 'javascript', 'python', 'json'],
})
}
return highlighterPromise
}
export async function highlight(code, lang) {
const highlighter = await getHighlighter()
return highlighter.codeToHtml(code, { lang, theme: 'github-light' })
}