enhance(frontend): shiki v1に移行 (#13138)

* enhance(frontend): shiki v1に移行

* optimize chunks, エラーを握りつぶす

* wasmを分離

* バンドルサイズの警告の最小値を650kBに引き上げ

* optimize
This commit is contained in:
かっこかり 2024-02-02 15:05:18 +09:00 committed by GitHub
parent e5876440cb
commit 9e1145df81
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 37 additions and 52 deletions

View file

@ -1,7 +1,6 @@
import { setWasm, setCDN, Highlighter, getHighlighter as _getHighlighter } from 'shiki';
setWasm('/assets/shiki/dist/onig.wasm');
setCDN('/assets/shiki/');
import { getHighlighterCore, loadWasm } from 'shiki/core';
import darkPlus from 'shiki/themes/dark-plus.mjs';
import type { Highlighter, LanguageRegistration } from 'shiki';
let _highlighter: Highlighter | null = null;
@ -13,16 +12,19 @@ export async function getHighlighter(): Promise<Highlighter> {
}
export async function initHighlighter() {
const highlighter = await _getHighlighter({
theme: 'dark-plus',
langs: ['js'],
});
const aiScriptGrammar = await import('aiscript-vscode/aiscript/syntaxes/aiscript.tmLanguage.json');
await highlighter.loadLanguage({
path: 'languages/aiscript.tmLanguage.json',
id: 'aiscript',
scopeName: 'source.aiscript',
aliases: ['is', 'ais'],
await loadWasm(import('shiki/onig.wasm?init'));
const highlighter = await getHighlighterCore({
themes: [darkPlus],
langs: [
import('shiki/langs/javascript.mjs'),
{
aliases: ['is', 'ais'],
...aiScriptGrammar.default,
} as unknown as LanguageRegistration,
],
});
_highlighter = highlighter;