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') }