Cleanup now runs on the prenav event (before SPA navigation starts)
while the WebGL context is still valid, eliminating the TexturePool
errors during app.destroy(). The try/catch remains as a silent
safety net for edge cases.
- Wrap PixiJS app.destroy() in try/catch so cleanup completes even when
WebGL context is lost during SPA navigation, preventing empty graph
- Strip base path from URL-derived slugs so content index keys match on
non-root deployments (e.g. user.github.io/quartz)
Use resolveBasePath() from @quartz-community/utils/path to prepend the
base path when navigating via graph node clicks. Fixes links resolving
to the domain root instead of the subdirectory.
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.
- Update types/globals.d.ts with centralized type declarations
- Use fetchData global instead of hardcoded /static/contentIndex.json
- Revert @quartz-community/types from file:../types to github:quartz-community/types
- Add .prettierignore, update .eslintrc.json with triple-slash-reference override
- Remove duplicate scripts.d.ts/styles.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.
Replace ambient quartz-compat.d.ts and quartz-community.d.ts
declarations with direct imports from @quartz-community/types.
Export GraphOptions and D3Config from local component files instead
of ambient module augmentation.
- Update .eslintrc.json to ignore inline scripts and type declarations
- Change @ts-ignore to @ts-expect-error in Graph.tsx
- Configure vitest aliases to mock scss and inline script imports
- Create proper test mocks and graph.test.ts
- Remove unused template files (emitter, filter, transformer)
- Fix formatting in util/lang.ts