fix: render lang of code block

This commit is contained in:
三咲智子 2022-11-26 11:15:04 +08:00
parent 714b8d2bb1
commit 0ada9e0448
No known key found for this signature in database
GPG key ID: 69992F2250DFD93E

View file

@ -60,10 +60,9 @@ export function contentToVNode(
return `:${name}:`
})
// handle code frames
.replace(/<p>(```|~~~)([\s\S]+?)\1/g, (_1, _2, raw) => {
const plain = htmlToText(`<p>${raw}</p>`).trim()
const [lang, ...rest] = plain.split(/\n/)
return `<custom-code lang="${lang?.trim().toLowerCase() || ''}" code="${encodeURIComponent(rest.join('\n'))}"></custom-code>`
.replace(/<p>(```|~~~)([\w]*)([\s\S]+?)\1/g, (_1, _2, lang, raw) => {
const code = htmlToText(`<p>${raw}</p>`)
return `<custom-code lang="${lang?.trim().toLowerCase() || ''}" code="${encodeURIComponent(code)}"></custom-code>`
})
const tree = parseFragment(content)