Skip to content

docs: replace VitePress with Astro/Starlight; apply shared docs-theme#5

Merged
dnlbox merged 4 commits into
mainfrom
docs/astro-starlight-migration
May 24, 2026
Merged

docs: replace VitePress with Astro/Starlight; apply shared docs-theme#5
dnlbox merged 4 commits into
mainfrom
docs/astro-starlight-migration

Conversation

@dnlbox
Copy link
Copy Markdown
Owner

@dnlbox dnlbox commented May 20, 2026

Summary

Migrates the documentation site from VitePress to Astro 5 + Starlight 0.34, and applies the shared @fhir-toolkit/docs-theme via the Option B source-directory sync strategy (no npm dependency -- theme files are vendored into src/theme/ by running node packages/docs-theme/scripts/sync.js at the workspace root).

Changes

  • docs/site/ -- replaced VitePress scaffold with Astro + Starlight; content migrated to Starlight content collections
  • docs/site/astro.config.mjs -- customCss loads theme-blue.css + base.css from src/theme/ before custom.css
  • docs/site/src/theme/ -- synced shared theme: tokens, Starlight overrides, CommandOutput.astro
  • docs/site/src/pages/index.astro -- custom landing page matching toolkit design system
  • pnpm-lock.yaml -- VitePress and Algolia dependencies removed
  • .gitignore -- updated to cover docs/site/.astro/ and docs/site/dist/ (replacing VitePress entries)

How to update the theme going forward

node packages/docs-theme/scripts/sync.js   # from fhir-toolkit/ workspace root

Verification

pnpm build passes with 0 errors. All 65 unit tests pass.

dnlbox and others added 3 commits May 20, 2026 18:14
- Replace VitePress config (.vitepress/) with Astro + Starlight setup
  (astro.config.mjs, docs/site/package.json, pnpm-lock.yaml)
- Migrate all docs markdown from docs/site/{guide,reference,ecosystem,index}.md
  to docs/site/src/content/docs/ with Starlight frontmatter
- Add custom landing page (index.astro): blue-glow palette, interactive
  terminal demo with three tabs, feature grid, ecosystem pipeline map
- Add shared theme files under docs/site/src/theme/ (synced from
  packages/docs-theme): theme-blue.css tokens, base.css Starlight overrides,
  CommandOutput.astro component
- Update package.json: remove vitepress devDependency; change docs:* scripts
  to use pnpm --dir docs/site
- Update .gitignore: replace VitePress paths with Astro equivalents
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
tsup 8.x injects baseUrl into the DTS build worker. TypeScript 6.0
treats this as a deprecation error without ignoreDeprecations.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@dnlbox dnlbox self-assigned this May 20, 2026
…tifact path

Same workspace install bug as fhir-resource-diff PR #3: pnpm-workspace.yaml at
the repo root makes pnpm treat root as the workspace root, so `pnpm install`
from docs/site installs root packages only, leaving docs/site/node_modules empty.

Changes:
- pnpm-workspace.yaml: add packages: [docs/site]; add sharp to allowBuilds
- docs.yml: fix artifact path from .vitepress/dist to dist (Astro output)
- docs/site/package.json: replace sharp@0.34.5 + @img/sharp-darwin-arm64 with
  sharp@0.33.5 — the 0.34 @img/* approach fails under pnpm virtual store and
  breaks cross-platform CI (darwin binary in dependencies)
- docs/site/pnpm-workspace.yaml: deleted (was an attempted workaround, not needed)
- docs/site/pnpm-lock.yaml: deleted, absorbed into root lockfile
- pnpm-lock.yaml: regenerated to include docs/site deps

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@dnlbox dnlbox merged commit fbcfe81 into main May 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant