|
|
@ -136,23 +136,28 @@ export async function highlight(
|
|
|
|
return s
|
|
|
|
return s
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const fillEmptyHighlightedLine = (s: string) => {
|
|
|
|
|
|
|
|
return s.replace(
|
|
|
|
|
|
|
|
/(<span class="line highlighted">)(<\/span>)/g,
|
|
|
|
|
|
|
|
'$1<wbr>$2'
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
str = removeMustache(str)
|
|
|
|
str = removeMustache(str)
|
|
|
|
|
|
|
|
|
|
|
|
const codeToHtml = (theme: IThemeRegistration) => {
|
|
|
|
const codeToHtml = (theme: IThemeRegistration) => {
|
|
|
|
return cleanup(
|
|
|
|
const res =
|
|
|
|
restoreMustache(
|
|
|
|
lang === 'ansi'
|
|
|
|
lang === 'ansi'
|
|
|
|
? highlighter.ansiToHtml(str, {
|
|
|
|
? highlighter.ansiToHtml(str, {
|
|
|
|
lineOptions,
|
|
|
|
lineOptions,
|
|
|
|
theme: getThemeName(theme)
|
|
|
|
theme: getThemeName(theme)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
: highlighter.codeToHtml(str, {
|
|
|
|
: highlighter.codeToHtml(str, {
|
|
|
|
lang,
|
|
|
|
lang,
|
|
|
|
lineOptions,
|
|
|
|
lineOptions,
|
|
|
|
theme: getThemeName(theme)
|
|
|
|
theme: getThemeName(theme)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
return fillEmptyHighlightedLine(cleanup(restoreMustache(res)))
|
|
|
|
)
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (hasSingleTheme) return codeToHtml(theme)
|
|
|
|
if (hasSingleTheme) return codeToHtml(theme)
|
|
|
|