diff --git a/src/node/markdown/plugins/restoreEntities.ts b/src/node/markdown/plugins/restoreEntities.ts index d15bc522..5198bea3 100644 --- a/src/node/markdown/plugins/restoreEntities.ts +++ b/src/node/markdown/plugins/restoreEntities.ts @@ -1,19 +1,11 @@ import type MarkdownIt from 'markdown-it' export function restoreEntities(md: MarkdownIt): void { - md.core.ruler.before('text_join', 'entity', (state) => { - for (const token of state.tokens) { - if (token.type !== 'inline' || !token.children) continue - - for (const child of token.children) { - if (child.type === 'text_special' && child.info === 'entity') { - child.type = 'entity' - } - } + md.core.ruler.disable('text_join') + md.renderer.rules.text_special = (tokens, idx) => { + if (tokens[idx].info === 'entity') { + return tokens[idx].markup // leave as is so Vue can handle it } - }) - - md.renderer.rules.entity = (tokens, idx) => { - return tokens[idx].markup // leave as is so Vue can handle it + return md.utils.escapeHtml(tokens[idx].content) } }