diff --git a/apps/server/src/share/content_renderer.spec.ts b/apps/server/src/share/content_renderer.spec.ts index 363b74390..137d85c97 100644 --- a/apps/server/src/share/content_renderer.spec.ts +++ b/apps/server/src/share/content_renderer.spec.ts @@ -1,7 +1,7 @@ import { describe, it, expect } from "vitest"; import { getContent, renderCode, renderText, type Result } from "./content_renderer.js"; import { trimIndentation } from "@triliumnext/commons"; -import { buildShareNote } from "../test/shaca_mocking.js"; +import { buildShareNote, buildShareNotes } from "../test/shaca_mocking.js"; describe("content_renderer", () => { it("Reports protected notes not being renderable", () => { @@ -28,6 +28,29 @@ describe("content_renderer", () => { const result = getContent(note); expect(result.content).toStrictEqual(content); }); + + it("renders included notes", () => { + buildShareNotes([ + { id: "subnote1", content: `
Foo
Before
+After
+ ` + }); + const result = getContent(note); + expect(result.content).toStrictEqual(trimIndentation`\ +Before
+Foo
After
+ `); + }); }); describe("renderCode", () => { diff --git a/apps/server/src/share/content_renderer.ts b/apps/server/src/share/content_renderer.ts index 253c43b39..237162200 100644 --- a/apps/server/src/share/content_renderer.ts +++ b/apps/server/src/share/content_renderer.ts @@ -80,7 +80,7 @@ export function renderText(result: Result, note: SNote) { if (typeof includedResult.content !== "string") continue; const includedDocument = new JSDOM(includedResult.content).window.document; - includeNoteEl.replaceWith(includedDocument.body); + includeNoteEl.replaceWith(...includedDocument.body.childNodes); } result.isEmpty = document.body.textContent?.trim().length === 0 && document.querySelectorAll("img").length === 0; diff --git a/apps/server/src/test/shaca_mocking.ts b/apps/server/src/test/shaca_mocking.ts index 022ee999a..af02394a0 100644 --- a/apps/server/src/test/shaca_mocking.ts +++ b/apps/server/src/test/shaca_mocking.ts @@ -10,6 +10,7 @@ interface NoteDefinition extends AttributeDefinitions, RelationDefinitions { id?: string | undefined; title?: string; content?: string | Buffer