| if (typeof content !== 'string') | if (typeof content !== 'string') | ||||
| return content | 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(/\\\[(.*?)\\\]/g, (_, equation) => `$$${equation}$$`), | ||||
| (str: string) => str.replace(/\\\[(.*?)\\\]/gs, (_, equation) => `$$${equation}$$`), | (str: string) => str.replace(/\\\[(.*?)\\\]/gs, (_, equation) => `$$${equation}$$`), | ||||
| (str: string) => str.replace(/\\\((.*?)\\\)/g, (_, equation) => `$$${equation}$$`), | (str: string) => str.replace(/\\\((.*?)\\\)/g, (_, equation) => `$$${equation}$$`), | ||||
| (str: string) => str.replace(/(^|[^\\])\$(.+?)\$/g, (_, prefix, equation) => `${prefix}$${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) => { | const preprocessThinkTag = (content: string) => { |