mirror of
https://github.com/ArthurDanjou/ui.git
synced 2026-01-14 12:14:41 +01:00
22 lines
657 B
TypeScript
22 lines
657 B
TypeScript
import { createHighlighter, type HighlighterGeneric } from 'shiki'
|
|
import { createJavaScriptRegexEngine } from 'shiki/engine-javascript.mjs'
|
|
|
|
let highlighter: HighlighterGeneric<any, any> | null = null
|
|
|
|
let promise: Promise<HighlighterGeneric<any, any>> | null = null
|
|
|
|
export const useHighlighter = async () => {
|
|
if (!promise) {
|
|
promise = createHighlighter({
|
|
langs: ['vue', 'js', 'ts', 'css', 'html', 'json', 'yaml', 'markdown', 'bash'],
|
|
themes: ['material-theme-palenight', 'material-theme-lighter'],
|
|
engine: createJavaScriptRegexEngine()
|
|
})
|
|
}
|
|
if (!highlighter) {
|
|
highlighter = await promise
|
|
}
|
|
|
|
return highlighter
|
|
}
|