Compare commits

...

3 Commits

Author SHA1 Message Date
Elian Doran
fc67404edf
Merge 2985bd0a1cff52f104c13be34177d64d64c4e102 into 8b3afc1f4925dfa46ac781473c5f5716e3c6e118 2025-12-03 23:29:45 +02:00
Elian Doran
2985bd0a1c
chore(dayjs): fix typecheck
Some checks are pending
Checks / main (push) Waiting to run
2025-12-03 23:29:38 +02:00
Elian Doran
8b3afc1f49
fix(share): reference links outside share appear as [missing note]
Some checks are pending
Checks / main (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Dev / Test development (push) Waiting to run
Dev / Build Docker image (push) Blocked by required conditions
Dev / Check Docker build (Dockerfile) (push) Blocked by required conditions
Dev / Check Docker build (Dockerfile.alpine) (push) Blocked by required conditions
/ Check Docker build (Dockerfile) (push) Waiting to run
/ Check Docker build (Dockerfile.alpine) (push) Waiting to run
/ Build Docker images (Dockerfile, ubuntu-24.04-arm, linux/arm64) (push) Blocked by required conditions
/ Build Docker images (Dockerfile.alpine, ubuntu-latest, linux/amd64) (push) Blocked by required conditions
/ Build Docker images (Dockerfile.legacy, ubuntu-24.04-arm, linux/arm/v7) (push) Blocked by required conditions
/ Build Docker images (Dockerfile.legacy, ubuntu-24.04-arm, linux/arm/v8) (push) Blocked by required conditions
/ Merge manifest lists (push) Blocked by required conditions
playwright / E2E tests on linux-arm64 (push) Waiting to run
playwright / E2E tests on linux-x64 (push) Waiting to run
2025-12-03 22:22:10 +02:00
4 changed files with 26 additions and 11 deletions

View File

@ -148,11 +148,8 @@ describe("content_renderer", () => {
`
});
const result = getContent(note);
expect(result.content).toStrictEqual(trimIndentation`\
<p>
<a class="reference-link">[missing note]</a>
</p>
`);
const content = (result.content as string).replaceAll(/\s/g, "");
expect(content).toStrictEqual("<p>Foo</p>");
});
it("properly escapes note title", () => {

View File

@ -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 {

View File

@ -1,3 +1,12 @@
/// <reference types="../../../../node_modules/dayjs/plugin/advancedFormat.d.ts" />
/// <reference types="../../../../node_modules/dayjs/plugin/duration.d.ts" />
/// <reference types="../../../../node_modules/dayjs/plugin/isBetween.d.ts" />
/// <reference types="../../../../node_modules/dayjs/plugin/isoWeek.d.ts" />
/// <reference types="../../../../node_modules/dayjs/plugin/isSameOrAfter.d.ts" />
/// <reference types="../../../../node_modules/dayjs/plugin/isSameOrBefore.d.ts" />
/// <reference types="../../../../node_modules/dayjs/plugin/quarterOfYear.d.ts" />
/// <reference types="../../../../node_modules/dayjs/plugin/utc.d.ts" />
import { LOCALES } from "./i18n.js";
import { DAYJS_LOADER, dayjs } from "./dayjs.js";

View File

@ -1,5 +1,14 @@
import { default as dayjs, type Dayjs } from "dayjs";
import "dayjs/plugin/advancedFormat";
import "dayjs/plugin/duration";
import "dayjs/plugin/isBetween";
import "dayjs/plugin/isoWeek";
import "dayjs/plugin/isSameOrAfter";
import "dayjs/plugin/isSameOrBefore";
import "dayjs/plugin/quarterOfYear";
import "dayjs/plugin/utc";
//#region Plugins
import advancedFormat from "dayjs/plugin/advancedFormat.js";
import duration from "dayjs/plugin/duration.js";