diff options
| author | かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> | 2023-10-29 14:12:40 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-29 14:12:40 +0900 |
| commit | 1a8243f1cace06c2eb872177d39536f76c9a8f5d (patch) | |
| tree | d75937ed6b116a98e3139d98b34bea4344c86f3e /packages/frontend/src/scripts/code-highlighter.ts | |
| parent | enhance(frontend): tweak about-misskey page (diff) | |
| download | sharkey-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.ts | 31 |
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; +} |