|
|
@ -87,13 +87,18 @@ export async function highlight(
|
|
|
|
const styleRE = /<pre[^>]*(style=".*?")/
|
|
|
|
const styleRE = /<pre[^>]*(style=".*?")/
|
|
|
|
const preRE = /^<pre(.*?)>/
|
|
|
|
const preRE = /^<pre(.*?)>/
|
|
|
|
const vueRE = /-vue$/
|
|
|
|
const vueRE = /-vue$/
|
|
|
|
|
|
|
|
const lineNoStartRE = /=(\d*)/
|
|
|
|
const lineNoRE = /:(no-)?line-numbers(=\d*)?$/
|
|
|
|
const lineNoRE = /:(no-)?line-numbers(=\d*)?$/
|
|
|
|
const mustacheRE = /\{\{.*?\}\}/g
|
|
|
|
const mustacheRE = /\{\{.*?\}\}/g
|
|
|
|
|
|
|
|
|
|
|
|
return (str: string, lang: string, attrs: string) => {
|
|
|
|
return (str: string, lang: string, attrs: string) => {
|
|
|
|
const vPre = vueRE.test(lang) ? '' : 'v-pre'
|
|
|
|
const vPre = vueRE.test(lang) ? '' : 'v-pre'
|
|
|
|
lang =
|
|
|
|
lang =
|
|
|
|
lang.replace(lineNoRE, '').replace(vueRE, '').toLowerCase() || defaultLang
|
|
|
|
lang
|
|
|
|
|
|
|
|
.replace(lineNoStartRE, '')
|
|
|
|
|
|
|
|
.replace(lineNoRE, '')
|
|
|
|
|
|
|
|
.replace(vueRE, '')
|
|
|
|
|
|
|
|
.toLowerCase() || defaultLang
|
|
|
|
|
|
|
|
|
|
|
|
if (lang) {
|
|
|
|
if (lang) {
|
|
|
|
const langLoaded = highlighter.getLoadedLanguages().includes(lang as any)
|
|
|
|
const langLoaded = highlighter.getLoadedLanguages().includes(lang as any)
|
|
|
|