FIX: dollar-sign escaping in preprocessLaTeX code‐block handling (#21796)

Co-authored-by: LinYing <linying@momenta.ai>
This commit is contained in:
ShadowJobs
2025-07-02 11:32:23 +08:00
committed by GitHub
parent f53b177e1f
commit 86179beaa5

View File

@@ -11,6 +11,7 @@ export const preprocessLaTeX = (content: string) => {
const codeBlockRegex = /```[\s\S]*?```/g const codeBlockRegex = /```[\s\S]*?```/g
const codeBlocks = content.match(codeBlockRegex) || [] const codeBlocks = content.match(codeBlockRegex) || []
const escapeReplacement = (str: string) => str.replace(/\$/g, '_TMP_REPLACE_DOLLAR_')
let processedContent = content.replace(codeBlockRegex, 'CODE_BLOCK_PLACEHOLDER') let processedContent = content.replace(codeBlockRegex, 'CODE_BLOCK_PLACEHOLDER')
processedContent = flow([ processedContent = flow([
@@ -21,9 +22,11 @@ export const preprocessLaTeX = (content: string) => {
])(processedContent) ])(processedContent)
codeBlocks.forEach((block) => { 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 return processedContent
} }