From 86179beaa554e62e1ca9550c0f65cb432e641ec4 Mon Sep 17 00:00:00 2001 From: ShadowJobs <794878115@qq.com> Date: Wed, 2 Jul 2025 11:32:23 +0800 Subject: [PATCH] =?UTF-8?q?FIX:=20dollar-sign=20escaping=20in=20preprocess?= =?UTF-8?q?LaTeX=20code=E2=80=90block=20handling=20(#21796)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: LinYing --- web/app/components/base/markdown/markdown-utils.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/web/app/components/base/markdown/markdown-utils.ts b/web/app/components/base/markdown/markdown-utils.ts index dc3c7a9784..209fcd0b32 100644 --- a/web/app/components/base/markdown/markdown-utils.ts +++ b/web/app/components/base/markdown/markdown-utils.ts @@ -11,6 +11,7 @@ export const preprocessLaTeX = (content: string) => { const codeBlockRegex = /```[\s\S]*?```/g const codeBlocks = content.match(codeBlockRegex) || [] + const escapeReplacement = (str: string) => str.replace(/\$/g, '_TMP_REPLACE_DOLLAR_') let processedContent = content.replace(codeBlockRegex, 'CODE_BLOCK_PLACEHOLDER') processedContent = flow([ @@ -21,9 +22,11 @@ export const preprocessLaTeX = (content: string) => { ])(processedContent) codeBlocks.forEach((block) => { - processedContent = processedContent.replace('CODE_BLOCK_PLACEHOLDER', block) + processedContent = processedContent.replace('CODE_BLOCK_PLACEHOLDER', escapeReplacement(block)) }) + processedContent = processedContent.replace(/_TMP_REPLACE_DOLLAR_/g, '$') + return processedContent }