mirror of
https://gitee.com/wanwujie/deer-flow
synced 2026-04-03 06:12:14 +08:00
fix:the formual display error after report editing (#627)
This commit is contained in:
@@ -21,6 +21,23 @@ export function normalizeMathForEditor(markdown: string): string {
|
||||
.replace(/\\\\\(([^)]*)\\\\\)/g, (_match, content) => `$${content}$`) // \\(...\\) → $...$
|
||||
.replace(/\\\(([^)]*)\\\)/g, (_match, content) => `$${content}$`); // \(...\) → $...$
|
||||
|
||||
// Replace double backslashes with single in math contexts
|
||||
// For inline math: $...$
|
||||
normalized = normalized.replace(
|
||||
/\$([^\$]+?)\$/g,
|
||||
(match, mathContent) => {
|
||||
return `$${mathContent.replace(/\\\\/g, '\\')}$`;
|
||||
}
|
||||
);
|
||||
|
||||
// For display math: $$...$$
|
||||
normalized = normalized.replace(
|
||||
/\$\$([\s\S]+?)\$\$/g,
|
||||
(match, mathContent) => {
|
||||
return `$$${mathContent.replace(/\\\\/g, '\\')}$$`;
|
||||
}
|
||||
);
|
||||
|
||||
return normalized;
|
||||
}
|
||||
|
||||
@@ -41,6 +58,23 @@ export function normalizeMathForDisplay(markdown: string): string {
|
||||
.replace(/\\\\\(([^)]*)\\\\\)/g, (_match, content) => `$$${content}$$`) // \\(...\\) → $$...$$
|
||||
.replace(/\\\(([^)]*)\\\)/g, (_match, content) => `$$${content}$$`); // \(...\) → $$...$$
|
||||
|
||||
// Replace double backslashes with single in math contexts
|
||||
// For inline math: $...$
|
||||
normalized = normalized.replace(
|
||||
/\$([^\$]+?)\$/g,
|
||||
(match, mathContent) => {
|
||||
return `$${mathContent.replace(/\\\\/g, '\\')}$`;
|
||||
}
|
||||
);
|
||||
|
||||
// For display math: $$...$$
|
||||
normalized = normalized.replace(
|
||||
/\$\$([\s\S]+?)\$\$/g,
|
||||
(match, mathContent) => {
|
||||
return `$$${mathContent.replace(/\\\\/g, '\\')}$$`;
|
||||
}
|
||||
);
|
||||
|
||||
return normalized;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,18 @@ describe("markdown math normalization for editor", () => {
|
||||
assert.strictEqual(output, "Here is a formula $$E=mc^2$$ in the text.");
|
||||
});
|
||||
|
||||
it("converts LaTeX display delimiters to $ with \\ for editor", () => {
|
||||
const input = "Here is a formula \\(F = k\\frac{q_1q_2}{r^2}\\) in the text.";
|
||||
const output = normalizeMathForEditor(input);
|
||||
assert.strictEqual(output, "Here is a formula $F = k\\frac{q_1q_2}{r^2}$ in the text.");
|
||||
});
|
||||
|
||||
it("converts LaTeX display delimiters to $ with \\\\ for editor", () => {
|
||||
const input = "Here is a formula \\(F = k\\\\frac{q_1q_2}{r^2}\\) in the text.";
|
||||
const output = normalizeMathForEditor(input);
|
||||
assert.strictEqual(output, "Here is a formula $F = k\\frac{q_1q_2}{r^2}$ in the text.");
|
||||
});
|
||||
|
||||
it("converts escaped LaTeX display delimiters to $$ for editor", () => {
|
||||
const input = "Formula \\\\[x^2 + y^2 = z^2\\\\] here.";
|
||||
const output = normalizeMathForEditor(input);
|
||||
|
||||
Reference in New Issue
Block a user