From c86a1d9dc6812d8bbe4cb753818ab031a7269bfa Mon Sep 17 00:00:00 2001 From: yutent Date: Thu, 4 May 2023 16:13:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=A3=E7=A0=81=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=B8=B2=E6=9F=93=E6=B3=A8=E9=87=8A=E3=80=81xml?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/code/index.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/code/index.js b/src/code/index.js index 3f2cf55..ea4f60b 100644 --- a/src/code/index.js +++ b/src/code/index.js @@ -170,6 +170,7 @@ class Code extends Component { setCode(txt, a) { let lang = this.lang + let skip = false switch (lang) { case 'js': @@ -180,12 +181,14 @@ class Code extends Component { break case 'html': + case 'xml': txt = colorHtml(txt) break case 'css': case 'scss': case 'less': + skip = true txt = colorCss(txt) break @@ -196,7 +199,15 @@ class Code extends Component { } // 除代码高亮用的特殊标签 外, 其他的全部转义 // 避免渲染时混乱 - txt = txt.replace(/<(\/?)(?!c)(\w+)([^>]*?)>/g, '<$1$2$3>') + + if (skip === false) { + txt = txt + .replace(/<(\/?)(?!c)(\w+)([^>]*?)>/g, '<$1$2$3>') + .replace(/]*?)>/gi, '<$1$2>') + .replace(/<\?([^\?>]*?)\?>/g, '<?$1?>') + .replace(/<\!\-\-([^>]*?)\-\->/g, '<!--$1-->') + } + this.#code = txt.split('\n') }