From cf2a3ba19a0d6c36921293fccc76175160d9d419 Mon Sep 17 00:00:00 2001 From: zoujing Date: Tue, 9 Sep 2025 21:32:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20mp-html=20=E5=8D=95~=E8=A2=AB=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E4=B8=BA=E4=B8=AD=E5=88=92=E7=BA=BF=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/mp-html/markdown/index.js | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/uni_modules/zero-markdown-view/components/mp-html/markdown/index.js b/uni_modules/zero-markdown-view/components/mp-html/markdown/index.js index 20235c4..6896bc0 100644 --- a/uni_modules/zero-markdown-view/components/mp-html/markdown/index.js +++ b/uni_modules/zero-markdown-view/components/mp-html/markdown/index.js @@ -13,7 +13,26 @@ function Markdown (vm) { Markdown.prototype.onUpdate = function (content) { if (this.vm.markdown) { - return marked(content) + // return marked(content) + // 先处理内容,确保只有双波浪号才被解析为删除线 + // 使用临时占位符保护单个波浪号 + let processedContent = content; + + // 1. 先保护双波浪号删除线语法 + processedContent = processedContent.replace(/~~([^~]+?)~~/g, '__STRIKETHROUGH_START__$1__STRIKETHROUGH_END__'); + + // 2. 将剩余的单个波浪号转换为HTML实体 + processedContent = processedContent.replace(/~/g, '~'); + + // 3. 恢复双波浪号删除线语法 + processedContent = processedContent.replace(/__STRIKETHROUGH_START__/g, '~~').replace(/__STRIKETHROUGH_END__/g, '~~'); + + return marked(processedContent, { + gfm: true, + breaks: false, + pedantic: false, + sanitize: false, + }); } }