fix(export/markdown): superscript and subscript not preserved (closes #4307)

This commit is contained in:
Elian Doran 2025-07-27 12:16:42 +03:00
parent 28f88f2407
commit 4420913049
No known key found for this signature in database
3 changed files with 13 additions and 1 deletions

View File

@ -378,4 +378,10 @@ describe("Markdown export", () => {
expect(markdownExportService.toMarkdown(html)).toBe(expected); expect(markdownExportService.toMarkdown(html)).toBe(expected);
}); });
it("preserves superscript and subscript", () => {
const html = /*html*/`<p>Hello <sup><strong>superscript</strong></sup> <sub><strong>subscript</strong></sub></p>`;
const expected = `Hello <sup><strong>superscript</strong></sup> <sub><strong>subscript</strong></sub>`;
expect(markdownExportService.toMarkdown(html)).toBe(expected);
});
}); });

View File

@ -56,7 +56,7 @@ function toMarkdown(content: string) {
instance.addRule("math", buildMathFilter()); instance.addRule("math", buildMathFilter());
instance.addRule("li", buildListItemFilter()); instance.addRule("li", buildListItemFilter());
instance.use(gfm); instance.use(gfm);
instance.keep([ "kbd" ]); instance.keep([ "kbd", "sup", "sub" ]);
} }
return instance.turndown(content); return instance.turndown(content);

View File

@ -299,4 +299,10 @@ $$`;
expect(markdownService.renderToHtml(input, "Title")).toStrictEqual(expected); expect(markdownService.renderToHtml(input, "Title")).toStrictEqual(expected);
}); });
it("preserves superscript and subscript", () => {
const input = `Hello <sup>superscript</sup> <sub>subscript</sub>`;
const expected = /*html*/`<p>Hello <sup>superscript</sup> <sub>subscript</sub></p>`;
expect(markdownService.renderToHtml(input, "Title")).toStrictEqual(expected);
});
}); });