summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorかっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>2025-05-22 22:57:04 +0900
committerGitHub <noreply@github.com>2025-05-22 22:57:04 +0900
commitaaee0a788da35dddb5012d150c815e34210ba1ca (patch)
tree6901e969743ef0f52ad7ea437455f0b1c1680469
parentfeat(frontend): tabler-iconsのサブセット化 (#15340) (diff)
downloadmisskey-aaee0a788da35dddb5012d150c815e34210ba1ca.tar.gz
misskey-aaee0a788da35dddb5012d150c815e34210ba1ca.tar.bz2
misskey-aaee0a788da35dddb5012d150c815e34210ba1ca.zip
enhance(frontend): シンタックスハイライトのエンジンをJavaScriptベースのものに変更 (#16084)
* refactor(frontend): シンタックスハイライトのエンジンをJavaScriptベースのものに変更 * Update Changelog
-rw-r--r--CHANGELOG.md3
-rw-r--r--packages/frontend/src/utility/code-highlighter.ts4
2 files changed, 5 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f3b6b894ca..193bc8ee76 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -42,6 +42,9 @@
(Based on https://github.com/taiyme/misskey/pull/198, https://github.com/taiyme/misskey/pull/211, https://github.com/taiyme/misskey/pull/283)
- Enhance: ユーザー設定でURLプレビューを無効化できるように
- Enhance: AiScriptからtoastを表示する関数 `Mk:toast` を追加
+- Enhance: シンタックスハイライトのエンジンをJavaScriptベースのものに変更
+ - フロントエンドの読み込みサイズを軽量化しました
+ - ほとんどの言語のハイライトは問題なく行えますが、互換性の問題により一部の言語が正常にハイライトできなくなる可能性があります。詳しくは https://shiki.style/references/engine-js-compat をご覧ください。
- Fix: "時計"ウィジェット(Clock)において、Transparent設定が有効でも、その背景が透過されない問題を修正
### Server
diff --git a/packages/frontend/src/utility/code-highlighter.ts b/packages/frontend/src/utility/code-highlighter.ts
index 4f2aff9d4c..7dca18d58f 100644
--- a/packages/frontend/src/utility/code-highlighter.ts
+++ b/packages/frontend/src/utility/code-highlighter.ts
@@ -4,7 +4,7 @@
*/
import { createHighlighterCore } from 'shiki/core';
-import { createOnigurumaEngine } from 'shiki/engine/oniguruma';
+import { createJavaScriptRegexEngine } from 'shiki/engine/javascript';
import darkPlus from 'shiki/themes/dark-plus.mjs';
import { bundledThemesInfo } from 'shiki/themes';
import { bundledLanguagesInfo } from 'shiki/langs';
@@ -71,7 +71,7 @@ async function initHighlighter() {
const jsLangInfo = bundledLanguagesInfo.find(t => t.id === 'javascript');
const highlighter = await createHighlighterCore({
- engine: createOnigurumaEngine(() => import('shiki/onig.wasm?init')),
+ engine: createJavaScriptRegexEngine({ forgiving: true }),
themes,
langs: [
...(jsLangInfo ? [async () => await jsLangInfo.import()] : []),