🌱 a fast, batteries-included static-site generator that transforms Markdown content into fully functional websites
Go to file
Copilot ad55761811
docs: add plugin decoupling design document (#2)
* Initial plan

* Add comprehensive plugin decoupling design document

Co-authored-by: saberzero1 <8161064+saberzero1@users.noreply.github.com>

* Address code review feedback: fix incomplete types and missing files

- Add missing transformer files to Appendix A (gfm, linebreaks, oxhugofm, roam)
- Complete emit/partialEmit return types in QuartzEmitterPluginInstance
- Export TocEntry interface in vfile-schema to fix reference issue
- Add missing externalResources method to QuartzTransformerPluginInstance

Co-authored-by: saberzero1 <8161064+saberzero1@users.noreply.github.com>

* Address code review: add imports, fix component example, clarify interfaces, update file count

- Add missing import statements to all code examples (vfile-schema, plugin-context, registry, emitter types, test helpers)
- Fix component example to properly use QuartzComponentConstructor pattern
- Remove redundant externalResources from init() return type to avoid ambiguity
- Add placeholder implementations for helper functions in test example
- Update total file count from ~65 to ~71 to match breakdown (3+13+2+14+30+5+4)

Co-authored-by: saberzero1 <8161064+saberzero1@users.noreply.github.com>

* Address code review: fix type references, add missing properties, improve examples

- Fix JSResourceOptions/CSSResourceOptions to use actual JSResource/CSSResource types
- Add missing externalResources property to QuartzEmitterPluginInstance
- Clarify that requiredComponents is only for emitters, not transformers
- Fix TOC slug comment to indicate no "#" prefix (e.g., "some-heading")
- Expand frontmatter interface to include all fields from actual implementation
- Improve migration guide with complete example showing type import pattern
- Add skeleton implementations for test helper mock functions with realistic return types

Co-authored-by: saberzero1 <8161064+saberzero1@users.noreply.github.com>

* Address code review: fix imports, add required fields, simplify types

- Fix QuartzVFileData import from "./vfile-schema" instead of "./plugin-context"
- Add all missing import statements for types used in test helpers
- Add required config fields (enableSPA, enablePopovers, analytics, ignorePatterns, defaultDateType, theme)
- Import TocEntry type alongside QuartzVFileData in migration guide
- Simplify resource creation to separate createExternalJS/createInlineJS functions
- Remove circular import of ChangeEvent from "./types" (already defined in that file)
- Fix enableToc type to boolean | string for consistency with other frontmatter fields
- Update mock utilities to match new resource creation pattern

Co-authored-by: saberzero1 <8161064+saberzero1@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: saberzero1 <8161064+saberzero1@users.noreply.github.com>
2025-11-16 14:11:50 +01:00
.github chore(deps): bump the ci-dependencies group across 1 directory with 5 updates (#2178) 2025-10-27 14:28:47 -07:00
content re-add gitkeep to content 2023-12-11 15:34:21 -08:00
docs Fix optional chaining in tag explorer exclude example (#2200) 2025-11-11 09:14:04 -08:00
quartz add rybbit analytics (#2197) 2025-11-07 16:48:28 +01:00
.gitattributes add gitattributes for windows 2023-08-02 20:59:56 -07:00
.gitignore feat: support configurable ws port and remote development (#429) 2023-08-27 17:39:42 -07:00
.node-version Node 22 (#1997) 2025-05-28 16:20:59 -07:00
.npmrc add engines field 2023-08-20 08:57:56 -07:00
.prettierignore fix notes 2023-08-07 23:57:24 -07:00
.prettierrc Use semi: false for prettier config 2022-05-02 08:57:25 -07:00
CODE_OF_CONDUCT.md run prettier 2023-07-22 17:27:41 -07:00
DESIGN_DOCUMENT_DECOUPLING.md docs: add plugin decoupling design document (#2) 2025-11-16 14:11:50 +01:00
Dockerfile fix(docker): instructions + bump deps + bind mount (#1809) 2025-03-06 10:01:25 -08:00
globals.d.ts refactor(comments): move script to files (#1308) 2024-08-05 15:17:11 -04:00
index.d.ts feat: reader mode 2025-04-17 19:45:17 -07:00
LICENSE.txt add base structure 2021-07-18 09:35:42 -04:00
package-lock.json chore(deps): bump the production-dependencies group with 3 updates (#2190) 2025-11-06 09:05:21 -05:00
package.json chore(deps): bump the production-dependencies group with 3 updates (#2190) 2025-11-06 09:05:21 -05:00
quartz.config.ts feat(favicon): add plugin to expose favicon from icon.png (#1942) 2025-04-26 11:06:59 -07:00
quartz.layout.ts feat: reader mode 2025-04-17 19:45:17 -07:00
README.md fix: remove quartz 3 references, update font style in popovers 2024-01-21 12:39:20 -08:00
tsconfig.json perf: incremental rebuild (--fastRebuild v2 but default) (#1841) 2025-03-16 14:17:31 -07:00

Quartz v4

“[One] who works with the door open gets all kinds of interruptions, but [they] also occasionally gets clues as to what the world is and what might be important.” — Richard Hamming

Quartz is a set of tools that helps you publish your digital garden and notes as a website for free. Quartz v4 features a from-the-ground rewrite focusing on end-user extensibility and ease-of-use.

🔗 Read the documentation and get started: https://quartz.jzhao.xyz/

Join the Discord Community

Sponsors