mirror of
https://github.com/nuxt/ui.git
synced 2026-09-14 19:51:10 +08:00
b052bb5be4
Co-authored-by: Hugo Richard <hugo.richard@epitech.eu>
22 lines
706 B
TypeScript
22 lines
706 B
TypeScript
import { createHighlighter } from 'shiki'
|
|
import 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: ['bash', 'html', 'ts', 'typescript', 'diff', 'vue', 'json', 'yml', 'css', 'mdc', 'blade', 'edge'],
|
|
themes: ['material-theme-palenight', 'material-theme-lighter'],
|
|
engine: createJavaScriptRegexEngine()
|
|
})
|
|
}
|
|
if (!highlighter) {
|
|
highlighter = await promise
|
|
}
|
|
|
|
return highlighter
|
|
}
|