diff --git a/package.json b/package.json index a7ffd07..23d92e1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bd/ui", - "version": "0.1.11", + "version": "0.1.12", "description": "", "files": [ "dist/*" diff --git a/src/code/index.js b/src/code/index.js index ee61075..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 @@ -194,6 +197,16 @@ class Code extends Component { txt = colorMd(txt) break } + // 除代码高亮用的特殊标签 外, 其他的全部转义 + // 避免渲染时混乱 + + 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') }