From 4aaa3b7772b59d64ed8315c0ceac8e871d8eb579 Mon Sep 17 00:00:00 2001 From: nanhaoluo <3075912108@qq.com> Date: Sun, 25 Jan 2026 13:39:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A2=9E=E5=BC=BA=20Mermaid=20=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=8F=90=E5=8F=96=E7=9A=84=E9=B2=81=E6=A3=92=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 使用 innerText 替代 textContent,更好地保留换行符 - 添加详细的调试日志,记录原始和最终提取的代码 - 添加代码完整性验证,检测过短的代码 - 修复代码被截断的问题 --- argontheme.js | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/argontheme.js b/argontheme.js index b704519..7020ba5 100644 --- a/argontheme.js +++ b/argontheme.js @@ -5287,12 +5287,24 @@ void 0; this.logDebug('从纯文本提取代码'); } } else if (element.tagName === 'CODE') { - code = element.textContent; + // 修复:使用 innerText 而不是 textContent,保留换行符 + // textContent 可能会丢失某些格式化信息 + code = element.innerText || element.textContent; + this.logDebug('从 CODE 标签提取,使用 innerText'); } else if (element.tagName === 'PRE') { const codeElement = element.querySelector('code'); - code = codeElement ? codeElement.textContent : element.textContent; + if (codeElement) { + code = codeElement.innerText || codeElement.textContent; + } else { + code = element.innerText || element.textContent; + } + this.logDebug('从 PRE 标签提取,使用 innerText'); } + // 记录原始提取的代码(调试用) + this.logDebug('原始提取的代码长度: ' + code.length); + this.logDebug('原始代码前100字符: ' + code.substring(0, 100)); + // 解码 HTML 实体(WordPress 可能会转义 HTML) code = code .replace(/</g, '<') @@ -5310,8 +5322,18 @@ void 0; .replace(/\\'/g, "'") .replace(/\\\\/g, '\\'); - this.logDebug('最终提取的代码: ' + code.substring(0, 100) + (code.length > 100 ? '...' : '')); - return code.trim(); + // 清理代码:移除首尾空白,但保留内部换行 + code = code.trim(); + + // 验证代码完整性 + if (code.length < 10) { + this.logError('提取的代码过短,可能不完整: ' + code); + } + + this.logDebug('最终提取的代码长度: ' + code.length); + this.logDebug('最终代码前200字符: ' + code.substring(0, 200) + (code.length > 200 ? '...' : '')); + + return code; }, // ---------- 渲染引擎 ----------