import { bundledLanguages, type ThemeRegistration } from 'shikiji'; import { getHighlighter } from 'shikiji'; export type ThemeOptions = | ThemeRegistration | { light: ThemeRegistration; dark: ThemeRegistration }; const highLightCode = async (code: string, lang: string, active?: boolean) => { const highlighter = await getHighlighter({ themes: ['github-light', 'github-dark'], langs: Object.keys(bundledLanguages), }); const highlightedCode = highlighter .codeToHtml(code, { lang, themes: { light: 'github-light', dark: 'github-dark', }, defaultColor: false, }) .replace('shiki-themes', 'shiki-themes vp-code'); return `
${lang} ${highlightedCode}
`; }; export default highLightCode;