2025-05-13 06:48:32 +00:00
|
|
|
import {
|
|
|
|
|
createHighlighterCore,
|
|
|
|
|
createOnigurumaEngine,
|
|
|
|
|
HighlighterCore,
|
|
|
|
|
} from "shiki";
|
2025-02-19 16:30:32 +00:00
|
|
|
|
2025-05-13 06:48:32 +00:00
|
|
|
let highlighter: HighlighterCore;
|
2025-03-04 12:29:21 +00:00
|
|
|
|
2025-05-13 06:48:32 +00:00
|
|
|
const initHighlighter = async () => {
|
|
|
|
|
highlighter = await createHighlighterCore({
|
|
|
|
|
themes: [
|
|
|
|
|
import("@shikijs/themes/github-light-default"),
|
|
|
|
|
import("@shikijs/themes/github-dark-default"),
|
|
|
|
|
],
|
|
|
|
|
langs: [import("@shikijs/langs/c"), import("@shikijs/langs/cpp")],
|
|
|
|
|
engine: createOnigurumaEngine(import("shiki/wasm")),
|
|
|
|
|
});
|
|
|
|
|
};
|
2025-02-19 16:30:32 +00:00
|
|
|
|
2025-05-13 06:48:32 +00:00
|
|
|
initHighlighter();
|
2025-02-19 16:30:32 +00:00
|
|
|
|
2025-05-13 06:48:32 +00:00
|
|
|
export const getHighlighter = () => {
|
|
|
|
|
if (!highlighter) {
|
|
|
|
|
throw new Error(
|
|
|
|
|
"Highlighter not initialized yet! Call initHighlighter() first."
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
return highlighter;
|
|
|
|
|
};
|