quartz/docs
Copilot 06c8ff10f1
refactor: implement plugin decoupling foundation (Phases 1-5) (#3)
* Initial plan

* docs: format design document for decoupling strategy

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

* feat: implement Phase 1-4 of plugin decoupling strategy

- Created centralized vfile-schema.ts with all VFile data type definitions
- Created plugin-context.ts with PluginUtilities abstraction layer
- Created test-helpers.ts for plugin testing utilities
- Made BuildCtx readonly to prevent plugin mutations
- Added MutableBuildCtx for build orchestration layer
- Updated components to not mutate ctx.trie
- Updated FrontMatter plugin with temporary cast for backward compatibility
- Updated TransformOptions to accept ReadonlyArray

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

* feat: add plugin utilities to BuildCtx and document plugin decoupling

- Added utils property to BuildCtx with createPluginUtilities()
- Documented plugin data dependencies with JSDoc comments on transformers and filters
- Created comprehensive plugin migration guide in docs/PLUGIN_MIGRATION.md
- Updated plugin types.ts with guidance on using PluginContext
- All plugins now have access to ctx.utils for path, resource, and escape utilities

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

* docs: add implementation and security summaries

- Created IMPLEMENTATION_SUMMARY.md documenting all phases completed
- Created SECURITY_SUMMARY.md with CodeQL scan results
- All security checks passed with 0 vulnerabilities
- Complete documentation of changes, decisions, and impact

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

* docs: add guidance for custom plugins extending vfile data

- Added section "Adding Custom VFile Fields" to PLUGIN_MIGRATION.md
- Demonstrates TypeScript module augmentation for custom fields
- Shows best practices for extending vfile data in third-party plugins
- Clarifies that centralized schema doesn't prevent custom extensions

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

* refactor: address code review feedback

- Remove `any` type annotations from component map callbacks (Breadcrumbs, FolderContent)
- Fix test-helpers: change `config` to `cfg` to match BuildCtx interface
- Add `trie: undefined` to mock context for completeness
- Add missing vfile fields to schema: text, blocks, htmlAst, hasMermaidDiagram
- Make Argv properties truly readonly with ReadonlyArgv type
- Add documentation explaining module augmentation pattern is intentional
- Document FrontMatter mutation as known technical debt with timeline

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 16:16:52 +01:00
..
advanced fix docs for using custom components compositionally (#2044) 2025-07-07 22:46:52 -04:00
features Fix optional chaining in tag explorer exclude example (#2200) 2025-11-11 09:14:04 -08:00
images feat(open-graph): generate OG images + further OG support (#740) 2024-11-12 07:33:35 -05:00
plugins docs: remove out of date admonition (#2114) 2025-09-05 09:45:06 -07:00
tags docs: update plugin documentation (#888) 2024-02-23 12:07:53 -08:00
authoring content.md docs(frontmatter): mention dealiasing related fields (#1715) 2025-02-27 16:37:01 -05:00
build.md docs: clarify prod hosting 2024-09-15 16:47:11 -07:00
configuration.md add rybbit analytics (#2197) 2025-11-07 16:48:28 +01:00
hosting.md docs: update nav for cloudflare pages (#2130) 2025-09-17 09:32:25 -07:00
IMPLEMENTATION_SUMMARY.md refactor: implement plugin decoupling foundation (Phases 1-5) (#3) 2025-11-16 16:16:52 +01:00
index.md Node 22 (#1997) 2025-05-28 16:20:59 -07:00
layout-components.md fix(flex): respect DesktopOnly and MobileOnly components (#1971) 2025-06-02 18:36:57 +02:00
layout.md feat: flex component, document higher-order layout components 2025-03-11 14:56:43 -07:00
migrating from Quartz 3.md Fix #403 by moving documentation to separate directory to avoid merge conflicts (#405) 2023-08-23 12:09:04 -07:00
philosophy.md docs: agentic computing in quartz philosophy 2023-12-17 13:01:44 -08:00
PLUGIN_MIGRATION.md refactor: implement plugin decoupling foundation (Phases 1-5) (#3) 2025-11-16 16:16:52 +01:00
SECURITY_SUMMARY.md refactor: implement plugin decoupling foundation (Phases 1-5) (#3) 2025-11-16 16:16:52 +01:00
setting up your GitHub repository.md docs: add fix for 'remote end hung up unexpectedly' error during initial sync (#1939) 2025-04-29 09:55:15 -07:00
showcase.md docs: showcase housekeeping 2025-05-28 16:27:17 -07:00
upgrading.md Fix #403 by moving documentation to separate directory to avoid merge conflicts (#405) 2023-08-23 12:09:04 -07:00