Work item to migrate our existing mkdocs site to Astro Starlight/Astro.
At the end of this task, the docs site should be runnable on Starlight/Astro using the existing markdown docs.
On a branch (new_docs), create an astro/starlight project (via NPM) that renders all pages that currently exist in mkdocs today. For page titles and navigation, read from the mkdocs.yml file.
Implementation Requirements
Based on clarification discussion and repository analysis.
Technical Approach
- Target Framework: Astro with Starlight documentation theme
- Branch:
new_docs
- Coexistence: Keep both Astro and MkDocs configurations side-by-side (migration/removal of MkDocs will be done later)
- Navigation Source: Parse
mkdocs.yml programmatically to generate Starlight sidebar configuration
Project Setup
Content Migration
Mermaid Diagrams
Tabbed Content
Custom Macros (if feasible)
Snippet Includes
Error Page
Out of Scope (Deferred to Follow-up Tasks)
- ❌ API documentation generation (Python/TypeScript)
- ❌ Search exclusion configuration (depends on API docs)
- ❌ Mike versioning / version selector
- ❌ Removal of MkDocs configuration
Acceptance Criteria
Files to Create/Modify
New Files (Starlight Project)
astro.config.mjs - Astro configuration
src/content/config.ts - Content collection config
src/content/docs/ - Symlink or reference to existing docs/
package.json updates for Astro dependencies
- Navigation generation script (parse mkdocs.yml)
Existing Files to Preserve
mkdocs.yml - Keep as-is
docs/**/*.md - No modifications needed
docs/assets/ - Keep as-is
macros.py - Keep for MkDocs compatibility
Reference Information
Current MkDocs Features Used
| Feature |
MkDocs Implementation |
Starlight Equivalent |
| Navigation |
nav: in mkdocs.yml |
Sidebar config / autogenerate |
| Mermaid |
pymdownx.superfences |
starlight-mermaid plugin |
| Tabs |
pymdownx.tabbed |
<Tabs> component |
| Admonitions |
admonition extension |
<Aside> component |
| Code highlighting |
codehilite |
Built-in |
| Snippets |
pymdownx.snippets |
Custom component needed |
Useful Resources
Work item to migrate our existing mkdocs site to Astro Starlight/Astro.
At the end of this task, the docs site should be runnable on Starlight/Astro using the existing markdown docs.
On a branch (
new_docs), create an astro/starlight project (via NPM) that renders all pages that currently exist in mkdocs today. For page titles and navigation, read from the mkdocs.yml file.Implementation Requirements
Based on clarification discussion and repository analysis.
Technical Approach
new_docsmkdocs.ymlprogrammatically to generate Starlight sidebar configurationProject Setup
npm create astro@latest -- --template starlightmkdocs.ymlfor navigationContent Migration
docs/Mermaid Diagrams
user-guide/quickstart/,examples/python/,user-guide/concepts/Tabbed Content
=== "Python"/=== "TypeScript"syntax to Starlight<Tabs>componentCustom Macros (if feasible)
ts_not_supported()macrots_not_supported_code()macroSnippet Includes
--8<--snippet markers used in TypeScript examples.tsfilesError Page
Out of Scope (Deferred to Follow-up Tasks)
Acceptance Criteria
npm run devFiles to Create/Modify
New Files (Starlight Project)
astro.config.mjs- Astro configurationsrc/content/config.ts- Content collection configsrc/content/docs/- Symlink or reference to existingdocs/package.jsonupdates for Astro dependenciesExisting Files to Preserve
mkdocs.yml- Keep as-isdocs/**/*.md- No modifications neededdocs/assets/- Keep as-ismacros.py- Keep for MkDocs compatibilityReference Information
Current MkDocs Features Used
nav:in mkdocs.yml<Tabs>component<Aside>componentUseful Resources