summaryrefslogtreecommitdiff
path: root/packages/frontend/src/scripts/code-highlighter.ts
diff options
context:
space:
mode:
authorかっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>2023-10-29 14:12:40 +0900
committerGitHub <noreply@github.com>2023-10-29 14:12:40 +0900
commit1a8243f1cace06c2eb872177d39536f76c9a8f5d (patch)
treed75937ed6b116a98e3139d98b34bea4344c86f3e /packages/frontend/src/scripts/code-highlighter.ts
parentenhance(frontend): tweak about-misskey page (diff)
downloadsharkey-1a8243f1cace06c2eb872177d39536f76c9a8f5d.tar.gz
sharkey-1a8243f1cace06c2eb872177d39536f76c9a8f5d.tar.bz2
sharkey-1a8243f1cace06c2eb872177d39536f76c9a8f5d.zip
MkCodeのパースエンジンをShikiに変更 (#12102)
* (swap) prism -> shiki * fix styles * (bump) aiscript-vscode to v0.0.5 * refactor * replace prism-editor (beta) * Update scratchpad.vue * (enhance) MkCodeEditor自動インデント改行 * (fix) lint * (add) scratchpad: MkStickyContainer * Update CHANGELOG.md * clean up --------- Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
Diffstat (limited to 'packages/frontend/src/scripts/code-highlighter.ts')
-rw-r--r--packages/frontend/src/scripts/code-highlighter.ts31
1 files changed, 31 insertions, 0 deletions
diff --git a/packages/frontend/src/scripts/code-highlighter.ts b/packages/frontend/src/scripts/code-highlighter.ts
new file mode 100644
index 0000000000..957669122e
--- /dev/null
+++ b/packages/frontend/src/scripts/code-highlighter.ts
@@ -0,0 +1,31 @@
+import { setWasm, setCDN, Highlighter, getHighlighter as _getHighlighter } from 'shiki';
+
+setWasm('/assets/shiki/dist/onig.wasm');
+setCDN('/assets/shiki/');
+
+let _highlighter: Highlighter | null = null;
+
+export async function getHighlighter(): Promise<Highlighter> {
+ if (!_highlighter) {
+ return await initHighlighter();
+ }
+ return _highlighter;
+}
+
+export async function initHighlighter() {
+ const highlighter = await _getHighlighter({
+ theme: 'dark-plus',
+ langs: ['js'],
+ });
+
+ await highlighter.loadLanguage({
+ path: 'languages/aiscript.tmLanguage.json',
+ id: 'aiscript',
+ scopeName: 'source.aiscript',
+ aliases: ['is', 'ais'],
+ });
+
+ _highlighter = highlighter;
+
+ return highlighter;
+}