From cddc258489a3ec6d3394f6919805e7ad7935d846 Mon Sep 17 00:00:00 2001 From: Keisuke ANDO Date: Mon, 26 May 2025 21:57:40 +0900 Subject: [PATCH] feat: add option to disable broken wikilinks --- quartz/plugins/transformers/ofm.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/quartz/plugins/transformers/ofm.ts b/quartz/plugins/transformers/ofm.ts index ef5917926..42428ae7c 100644 --- a/quartz/plugins/transformers/ofm.ts +++ b/quartz/plugins/transformers/ofm.ts @@ -41,6 +41,7 @@ export interface Options { enableYouTubeEmbed: boolean enableVideoEmbed: boolean enableCheckbox: boolean + disableBrokenWikilinks: boolean } const defaultOptions: Options = { @@ -56,6 +57,7 @@ const defaultOptions: Options = { enableYouTubeEmbed: true, enableVideoEmbed: true, enableCheckbox: false, + disableBrokenWikilinks: false, } const calloutMapping = { @@ -206,7 +208,7 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin> return src }, - markdownPlugins(_ctx) { + markdownPlugins(ctx) { const plugins: PluggableList = [] // regex replacements @@ -275,6 +277,18 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin> // otherwise, fall through to regular link } + // treat as broken link if slug not in ctx.allSlugs + if (opts.disableBrokenWikilinks) { + const slug = slugifyFilePath(fp as FilePath) + const exists = ctx.allSlugs && ctx.allSlugs.includes(slug) + if (!exists) { + return { + type: "html", + value: `${alias ?? fp}`, + } + } + } + // internal link const url = fp + anchor