Modernize documentation build architecture#1580
Conversation
|
snapshot for this PR available at: https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/DOCS/refs/pull/1580/merge |
|
snapshot for this PR available at: https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/DOCS/refs/pull/1580/merge |
|
snapshot for this PR available at: https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/DOCS/refs/pull/1580/merge |
|
snapshot for this PR available at: https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/DOCS/refs/pull/1580/merge |
|
snapshot for this PR available at: https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/DOCS/refs/pull/1580/merge |
|
snapshot for this PR available at: https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/DOCS/refs/pull/1580/merge |
|
snapshot for this PR available at: https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/DOCS/refs/pull/1580/merge |
|
snapshot for this PR available at: https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/DOCS/refs/pull/1580/merge |
Summary
This draft PR modernizes the documentation site architecture while preserving the existing static export deployment model. It introduces a clearer separation between markdown compilation, typed content discovery, validation, static artifact generation, TypeDoc generation, docs-page UI state, and future App Router migration planning.
The goal is to make the documentation build easier to reason about, easier to validate, and less dependent on route-level side effects, without changing the server architecture or requiring SSR/ISR.
Why this is better and more stable
output: "export"as the deployment contract and validates that the site still builds as static HTML.features/docs, reducing the size and responsibility of the catch-all docs route.app/routes in this branch.Main changes
lib/markdown.lib/contentGraph.build:contentvalidate:contentbuild:sitemapbuild:searchbuild:typedocbuild:example-imagescheck:example-imagesevaluate:app-routerfeatures/docsproviders/components/hooks.documentation-modernization-plan.mdas the shared implementation and verification record.App Router evaluation result
The static data pipeline is now ready for a dedicated App Router proof branch, but this PR intentionally does not migrate production routes to App Router.
The evaluation found that equivalent
app/routes cannot coexist with the currentpages/routes at the same URLs, and the shared shell still needs client/server boundary cleanup first. A future migration should happen in a focused proof branch with route-output comparisons before replacing production routes.Validation
Completed during the phase work:
npm run evaluate:app-routernpm testnpm run buildgit diff --checkThe build still completes as a static export. Existing content warnings remain visible, but they are surfaced by the new validation flow rather than introduced by this PR.