From 9e1145df813a49bcf603f5e1830018eac8c4864d Mon Sep 17 00:00:00 2001 From: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Fri, 2 Feb 2024 15:05:18 +0900 Subject: enhance(frontend): shiki v1に移行 (#13138) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * enhance(frontend): shiki v1に移行 * optimize chunks, エラーを握りつぶす * wasmを分離 * バンドルサイズの警告の最小値を650kBに引き上げ * optimize --- packages/frontend/src/scripts/code-highlighter.ts | 28 ++++++++++++----------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'packages/frontend/src/scripts/code-highlighter.ts') diff --git a/packages/frontend/src/scripts/code-highlighter.ts b/packages/frontend/src/scripts/code-highlighter.ts index 957669122e..bc05ec94d5 100644 --- a/packages/frontend/src/scripts/code-highlighter.ts +++ b/packages/frontend/src/scripts/code-highlighter.ts @@ -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 { } 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 loadWasm(import('shiki/onig.wasm?init')); - await highlighter.loadLanguage({ - path: 'languages/aiscript.tmLanguage.json', - id: 'aiscript', - scopeName: 'source.aiscript', - aliases: ['is', 'ais'], + const highlighter = await getHighlighterCore({ + themes: [darkPlus], + langs: [ + import('shiki/langs/javascript.mjs'), + { + aliases: ['is', 'ais'], + ...aiScriptGrammar.default, + } as unknown as LanguageRegistration, + ], }); _highlighter = highlighter; -- cgit v1.2.3-freya From 16eccad49271b81282cdbd482d29e7a8bb048f4c Mon Sep 17 00:00:00 2001 From: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Tue, 6 Feb 2024 15:03:07 +0900 Subject: enhance(frontend): シンタックスハイライトにテーマを適用できるように (#13175) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * enhance(frontend): シンタックスハイライトにテーマを適用できるように * Update Changelog * こっちも * テーマの値がディープマージされるように * 常にテーマ設定に準じるように * テーマ更新時に新しいshikiテーマを読み込むように --- CHANGELOG.md | 1 + packages/frontend/src/components/MkCode.core.vue | 56 +++++++++++++++++-- packages/frontend/src/components/MkCode.vue | 8 +-- packages/frontend/src/components/MkCodeEditor.vue | 5 +- packages/frontend/src/components/MkCodeInline.vue | 3 +- packages/frontend/src/components/MkSelect.vue | 7 ++- packages/frontend/src/pages/settings/theme.vue | 15 ++++- packages/frontend/src/pizzax.ts | 23 +------- packages/frontend/src/router/main.ts | 4 ++ packages/frontend/src/scripts/clone.ts | 4 +- packages/frontend/src/scripts/code-highlighter.ts | 68 ++++++++++++++++++++++- packages/frontend/src/scripts/merge.ts | 31 +++++++++++ packages/frontend/src/scripts/theme.ts | 10 +++- packages/frontend/src/store.ts | 1 + packages/frontend/src/themes/_dark.json5 | 4 ++ packages/frontend/src/themes/_light.json5 | 4 ++ 16 files changed, 202 insertions(+), 42 deletions(-) create mode 100644 packages/frontend/src/scripts/merge.ts (limited to 'packages/frontend/src/scripts/code-highlighter.ts') diff --git a/CHANGELOG.md b/CHANGELOG.md index c089aae279..c39a447c59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,7 @@ - Enhance: MFMの属性でオートコンプリートが使用できるように #12735 - Enhance: 絵文字編集ダイアログをモーダルではなくウィンドウで表示するように - Enhance: リモートのユーザーはメニューから直接リモートで表示できるように +- Enhance: コードのシンタックスハイライトにテーマを適用できるように - Fix: ネイティブモードの絵文字がモノクロにならないように - Fix: v2023.12.0で追加された「モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能」が管理画面上で正しく表示されていない問題を修正 - Fix: AiScriptの`readline`関数が不正な値を返すことがある問題のv2023.12.0時点での修正がPlay以外に適用されていないのを修正 diff --git a/packages/frontend/src/components/MkCode.core.vue b/packages/frontend/src/components/MkCode.core.vue index c655ff416e..68c50c4c69 100644 --- a/packages/frontend/src/components/MkCode.core.vue +++ b/packages/frontend/src/components/MkCode.core.vue @@ -5,14 +5,15 @@ SPDX-License-Identifier: AGPL-3.0-only