scripts/shiki-setup.mjs 1.3 K raw
1
import { createHighlighterCoreSync } from "shiki/core";
2
import { createJavaScriptRegexEngine } from "shiki/engine/javascript";
3
import javascript from "@shikijs/langs/javascript";
4
import typescript from "@shikijs/langs/typescript";
5
import jsx from "@shikijs/langs/jsx";
6
import tsx from "@shikijs/langs/tsx";
7
import python from "@shikijs/langs/python";
8
import bash from "@shikijs/langs/bash";
9
import shellscript from "@shikijs/langs/shellscript";
10
import json from "@shikijs/langs/json";
11
import html from "@shikijs/langs/html";
12
import css from "@shikijs/langs/css";
13
import rust from "@shikijs/langs/rust";
14
import go from "@shikijs/langs/go";
15
import markdown from "@shikijs/langs/markdown";
16
import yaml from "@shikijs/langs/yaml";
17
import toml from "@shikijs/langs/toml";
18
import lua from "@shikijs/langs/lua";
19
import darkmatter from "../darkmatter.json" with { type: "json" };
20
21
export const LANGS = [
22
	javascript,
23
	typescript,
24
	jsx,
25
	tsx,
26
	python,
27
	bash,
28
	shellscript,
29
	json,
30
	html,
31
	css,
32
	rust,
33
	go,
34
	markdown,
35
	yaml,
36
	toml,
37
	lua,
38
];
39
40
export const THEME = darkmatter;
41
export const THEME_NAME = "Darkmatter";
42
43
let _highlighter;
44
45
export function createDarkmatterHighlighter() {
46
	if (!_highlighter) {
47
		_highlighter = createHighlighterCoreSync({
48
			themes: [darkmatter],
49
			langs: LANGS,
50
			engine: createJavaScriptRegexEngine(),
51
		});
52
	}
53
	return _highlighter;
54
}