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, + }); } }