修复了在markdown里面有代码段的错误结束

This commit is contained in:
GreenDreamer 2025-02-25 19:26:02 +08:00
parent 16e2f590ae
commit 172c8ab2d9

View File

@ -47,14 +47,25 @@ function ExportAllMsgButtonCall({
})); }));
const jsonString = `\`\`\`json\n${JSON.stringify(jsonArray, null, 4)}\n\`\`\``; const jsonString = `\`\`\`json\n${JSON.stringify(jsonArray, null, 4)}\n\`\`\``;
function convertToMarkdown(jsonArray: { role: any; content: any; }[]) { function convertToMarkdown(jsonArray: { role: any; content: any; }[]) {
const { t } = useTranslation(); const { t } = useTranslation();
// 定义一个函数来转义 ```` ``` ```` 字符串
const escapeBackticks = (text: string): string => {
return text.replace(/```/g, '\t```');
};
return jsonArray.map(({ role, content }) => { return jsonArray.map(({ role, content }) => {
// 转义 content 中的 ```` ``` ```` 字符串
const escapedContent = escapeBackticks(content);
const roleText = role === 'user' ? t("export.user_says") : t("export.ai_says"); const roleText = role === 'user' ? t("export.user_says") : t("export.ai_says");
return `## ${roleText}\n\n${content}`; return `## ${roleText}\n\n${escapedContent}`;
}).join('\n\n'); }).join('\n\n');
} }
const markdownString = convertToMarkdown(jsonArray); const markdownString = convertToMarkdown(jsonArray);
const markdownValue = useMemo(() => { const markdownValue = useMemo(() => {
return formatter ? formatter(markdownString) : markdownString; return formatter ? formatter(markdownString) : markdownString;