| @@ -66,12 +66,22 @@ const preprocessLaTeX = (content: string) => { | |||
| if (typeof content !== 'string') | |||
| return content | |||
| return flow([ | |||
| const codeBlockRegex = /```[\s\S]*?```/g | |||
| const codeBlocks = content.match(codeBlockRegex) || [] | |||
| let processedContent = content.replace(codeBlockRegex, 'CODE_BLOCK_PLACEHOLDER') | |||
| processedContent = flow([ | |||
| (str: string) => str.replace(/\\\[(.*?)\\\]/g, (_, equation) => `$$${equation}$$`), | |||
| (str: string) => str.replace(/\\\[(.*?)\\\]/gs, (_, equation) => `$$${equation}$$`), | |||
| (str: string) => str.replace(/\\\((.*?)\\\)/g, (_, equation) => `$$${equation}$$`), | |||
| (str: string) => str.replace(/(^|[^\\])\$(.+?)\$/g, (_, prefix, equation) => `${prefix}$${equation}$`), | |||
| ])(content) | |||
| ])(processedContent) | |||
| codeBlocks.forEach((block) => { | |||
| processedContent = processedContent.replace('CODE_BLOCK_PLACEHOLDER', block) | |||
| }) | |||
| return processedContent | |||
| } | |||
| const preprocessThinkTag = (content: string) => { | |||