When enabled, internal links whose resolved slug is not present in
ctx.allSlugs gain a 'broken' CSS class alongside 'internal' so they
can be styled distinctly. Applies to both wikilinks (after they've
been converted to <a> elements by ObsidianFlavoredMarkdown) and
regular markdown links, since both are indistinguishable <a> nodes
by the time this plugin runs.
This check lives here rather than in ObsidianFlavoredMarkdown because
CrawlLinks already owns link resolution and computes the canonical
slug, so the broken-link verdict uses the same resolution logic that
determines the actual href. This eliminates the drift risk where
two plugins might disagree about what 'broken' means.
Default is false (preserves existing behavior). Covered by 15 new
tests exercising absolute/relative/shortest strategies, anchor/alias
handling, external/intra-document link scopes, and empty allSlugs.
Plugins run server-side during the Quartz build step, not in the
browser. Setting platform: 'node' tells esbuild to treat Node builtins
as available externals and avoids CJS-in-ESM require() failures for
any bundled dependencies that use Node APIs.
Move non-allowlisted packages from dependencies/peerDependencies to
devDependencies so tsup bundles them into dist/ instead of leaving
them as external imports that may not resolve at runtime.
Install vfile, github-slugger, and hast-util-to-jsx-runtime as devDependencies.
vfile is needed for the DTS build to resolve type declarations.
github-slugger and hast-util-to-jsx-runtime are peer dependencies of
@quartz-community/utils that must be present for tsup's DTS build.
Peer dependencies needed at build time for TypeScript declaration file
generation were missing from devDependencies. Without them, the DTS build
fails silently, producing no index.d.ts.
Pre-built output is now committed to the repository so that
Quartz can skip the build step during plugin installation.
The prepare script is removed to prevent redundant builds
when installing from npm/git.
tsup and typescript are only needed at build time — move to devDependencies
so they can be pruned after build. Dependencies already available from the
host Quartz installation are moved to peerDependencies to avoid duplication.