Virtual folder pages were using slugified folder names (e.g. 'Incomparable-Masks')
as titles. Now maps slug segments back to original relativePath segments to
preserve human-readable names with spaces.
Add prefixFolders option (default: false) to FolderPageOptions. When
false, generated folder pages use only the folder name as title instead
of 'Folder: full/path'. Also use last path segment only for the title
instead of the full folder path.
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.
Install github-slugger and hast-util-to-jsx-runtime as devDependencies.
These are peer dependencies of @quartz-community/utils that must be present
for tsup's DTS build to resolve all transitive type imports.
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.
FolderContent now derives direct children and subfolder entries from
allFiles using segment-aware slug matching when the trie is not
populated on ctx. Preserves trie path when available.
When both folder-page and tag-page are installed, their identical
PageList, SortFn, byDateAndAlphabetical, and byDateAndAlphabeticalFolderFirst
exports cause TS2300 duplicate identifier errors in the generated
.quartz/plugins/index.ts. These symbols are only used internally
by FolderContent and do not need to be part of the public API.