mirror of
https://github.com/massbug/judge4c.git
synced 2026-05-20 21:38:51 +00:00
- Replace shiki with shiki/core for better tree-shaking - Change highlighter initialization to explicit theme/lang imports - Export getHighlighter function instead of direct highlighter instance - Add error handling for uninitialized highlighter access
30 lines
688 B
TypeScript
30 lines
688 B
TypeScript
import {
|
|
createHighlighterCore,
|
|
createOnigurumaEngine,
|
|
HighlighterCore,
|
|
} from "shiki";
|
|
|
|
let highlighter: HighlighterCore;
|
|
|
|
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")),
|
|
});
|
|
};
|
|
|
|
initHighlighter();
|
|
|
|
export const getHighlighter = () => {
|
|
if (!highlighter) {
|
|
throw new Error(
|
|
"Highlighter not initialized yet! Call initHighlighter() first."
|
|
);
|
|
}
|
|
return highlighter;
|
|
};
|