feat: add option to disable broken wikilinks

This commit is contained in:
Keisuke ANDO 2025-05-26 21:57:40 +09:00
parent 6d49d97559
commit cddc258489

View File

@ -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<Partial<Options>>
return src
},
markdownPlugins(_ctx) {
markdownPlugins(ctx) {
const plugins: PluggableList = []
// regex replacements
@ -275,6 +277,18 @@ export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin<Partial<Options>>
// 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: `<a class=\"internal broken\">${alias ?? fp}</a>`,
}
}
}
// internal link
const url = fp + anchor