🌱 a fast, batteries-included static-site generator that transforms Markdown content into fully functional websites
Go to file
Copilot c3de4a8c11
refactor: complete BuildCtx immutability and update decoupling roadmap (#6)
* Initial plan

* refactor: remove BuildCtx mutation from FrontMatter plugin

- Remove temporary cast to mutable allSlugs array
- Move alias collection to build orchestration layer
- Update ctx.allSlugs immutably after parsing
- Apply same pattern to incremental rebuild
- Verified alias functionality works correctly

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

* fix: ensure alias collection happens before filtering in rebuild flow

Move alias collection before filterContent() in rebuild flow to match
initial build flow. This ensures consistent behavior where aliases from
all markdown files (including those that will be filtered out) are
included in ctx.allSlugs in both build scenarios.

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

* refactor: simplify collectAliases using functional array methods

Replace imperative for-loop with declarative filter/flatMap chain for
better readability and conciseness. Functionally equivalent but more
idiomatic TypeScript.

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

* docs: update roadmap with completion status for decoupling phases

Mark phases 1-5 as completed with detailed status notes:
- Phase 1 (Foundation): vfile-schema, plugin-context, test-helpers
- Phase 2 (Utility Abstraction): ctx.utils migration complete
- Phase 3 (Component Decoupling): component registry created
- Phase 4 (Immutability): BuildCtx readonly, alias collection refactored
- Phase 5 (Full Migration): all plugins migrated to new pattern

Add implementation status summary showing all objectives achieved.

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 23:44:20 +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 refactor: implement plugin decoupling foundation (Phases 1-5) (#3) 2025-11-16 16:16:52 +01:00
quartz refactor: complete BuildCtx immutability and update decoupling roadmap (#6) 2025-11-16 23:44:20 +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 refactor: complete BuildCtx immutability and update decoupling roadmap (#6) 2025-11-16 23:44:20 +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