Skip to content

Commit

Permalink
chore: use transformer to clean-up highlight result (#3343)
Browse files Browse the repository at this point in the history
  • Loading branch information
antfu authored Dec 16, 2023
1 parent 8800195 commit 00eec7a
Showing 1 changed file with 15 additions and 13 deletions.
28 changes: 15 additions & 13 deletions src/node/markdown/plugins/highlight.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,20 @@ export async function highlight(
transformerNotationHighlight(),
transformerNotationErrorLevel(),
{
name: 'vitepress:add-class',
pre(node) {
addClassToHast(node, 'vp-code')
}
},
{
name: 'vitepress:clean-up',
pre(node) {
delete node.properties.tabindex
delete node.properties.style
}
}
]

const styleRE = /<pre[^>]*(style=".*?")/
const preRE = /^<pre(.*?)>/
const vueRE = /-vue$/
const lineNoStartRE = /=(\d*)/
const lineNoRE = /:(no-)?line-numbers(=\d*)?$/
Expand Down Expand Up @@ -116,16 +122,6 @@ export async function highlight(
}

const lineOptions = attrsToLines(attrs)
const cleanup = (str: string) => {
return str
.replace(
preRE,
(_, attributes) =>
`<pre ${vPre}${attributes.replace(' tabindex="0"', '')}>`
)
.replace(styleRE, (_, style) => _.replace(style, ''))
}

const mustaches = new Map<string, string>()

const removeMustache = (s: string) => {
Expand Down Expand Up @@ -161,6 +157,12 @@ export async function highlight(
transformers: [
...transformers,
transformerCompactLineOptions(lineOptions),
{
name: 'vitepress:v-pre',
pre(node) {
if (vPre) node.properties['v-pre'] = ''
}
},
...userTransformers
],
meta: {
Expand All @@ -174,6 +176,6 @@ export async function highlight(
})
})

return fillEmptyHighlightedLine(cleanup(restoreMustache(highlighted)))
return fillEmptyHighlightedLine(restoreMustache(highlighted))
}
}

0 comments on commit 00eec7a

Please sign in to comment.