diff --git a/apps/server/src/services/export/markdown.spec.ts b/apps/server/src/services/export/markdown.spec.ts index ac9d2aa04..fe1dc1c37 100644 --- a/apps/server/src/services/export/markdown.spec.ts +++ b/apps/server/src/services/export/markdown.spec.ts @@ -378,4 +378,10 @@ describe("Markdown export", () => { expect(markdownExportService.toMarkdown(html)).toBe(expected); }); + it("preserves superscript and subscript", () => { + const html = /*html*/`
Hello superscript subscript
`; + const expected = `Hello superscript subscript`; + expect(markdownExportService.toMarkdown(html)).toBe(expected); + }); + }); diff --git a/apps/server/src/services/export/markdown.ts b/apps/server/src/services/export/markdown.ts index 6bbaf386d..ed16c6b30 100644 --- a/apps/server/src/services/export/markdown.ts +++ b/apps/server/src/services/export/markdown.ts @@ -56,7 +56,7 @@ function toMarkdown(content: string) { instance.addRule("math", buildMathFilter()); instance.addRule("li", buildListItemFilter()); instance.use(gfm); - instance.keep([ "kbd" ]); + instance.keep([ "kbd", "sup", "sub" ]); } return instance.turndown(content); diff --git a/apps/server/src/services/import/markdown.spec.ts b/apps/server/src/services/import/markdown.spec.ts index c8d06e28e..0bf747a81 100644 --- a/apps/server/src/services/import/markdown.spec.ts +++ b/apps/server/src/services/import/markdown.spec.ts @@ -299,4 +299,10 @@ $$`; expect(markdownService.renderToHtml(input, "Title")).toStrictEqual(expected); }); + it("preserves superscript and subscript", () => { + const input = `Hello superscript subscript`; + const expected = /*html*/`Hello superscript subscript
`; + expect(markdownService.renderToHtml(input, "Title")).toStrictEqual(expected); + }); + });