From 8b3afc1f4925dfa46ac781473c5f5716e3c6e118 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 3 Dec 2025 22:22:10 +0200 Subject: [PATCH] fix(share): reference links outside share appear as [missing note] --- apps/server/src/share/content_renderer.spec.ts | 7 ++----- apps/server/src/share/content_renderer.ts | 12 ++++++------ 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/apps/server/src/share/content_renderer.spec.ts b/apps/server/src/share/content_renderer.spec.ts index 57c4e3bc2..da0833c58 100644 --- a/apps/server/src/share/content_renderer.spec.ts +++ b/apps/server/src/share/content_renderer.spec.ts @@ -148,11 +148,8 @@ describe("content_renderer", () => { ` }); const result = getContent(note); - expect(result.content).toStrictEqual(trimIndentation`\ -

- [missing note] -

- `); + const content = (result.content as string).replaceAll(/\s/g, ""); + expect(content).toStrictEqual("

Foo

"); }); it("properly escapes note title", () => { diff --git a/apps/server/src/share/content_renderer.ts b/apps/server/src/share/content_renderer.ts index 96e228cc0..70d7f2b82 100644 --- a/apps/server/src/share/content_renderer.ts +++ b/apps/server/src/share/content_renderer.ts @@ -320,13 +320,13 @@ function renderText(result: Result, note: SNote | BNote) { continue; } - if (linkEl.classList.contains("reference-link")) { - cleanUpReferenceLinks(linkEl, getNote); - } - if (href?.startsWith("#")) { handleAttachmentLink(linkEl, href, getNote, getAttachment); } + + if (linkEl.classList.contains("reference-link")) { + cleanUpReferenceLinks(linkEl, getNote); + } } // Apply syntax highlight. @@ -402,8 +402,8 @@ function cleanUpReferenceLinks(linkEl: HTMLElement, getNote: GetNoteFunction) { const noteId = href.split("/").at(-1); const note = noteId ? getNote(noteId) : undefined; if (!note) { - console.warn("Unable to find note ", noteId); - linkEl.innerHTML = "[missing note]"; + // If a note is not found, simply replace it with a text. + linkEl.replaceWith(new TextNode(linkEl.innerText)); } else if (note.isProtected) { linkEl.innerHTML = "[protected]"; } else {