Skip to content

docs: migrate from Documenter.HTML to DocumenterVitepress - #814

Merged
ocots merged 1 commit into
mainfrom
docs/vitepress-migration
Jul 28, 2026
Merged

docs: migrate from Documenter.HTML to DocumenterVitepress#814
ocots merged 1 commit into
mainfrom
docs/vitepress-migration

Conversation

@ocots

@ocots ocots commented Jul 28, 2026

Copy link
Copy Markdown
Member

Summary

Migrates the documentation system from Documenter.HTML to DocumenterVitepress (VitePress-based static site generator).

Changes

docs/make.jl

  • Switch format from Documenter.HTML to DocumenterVitepress.MarkdownVitepress
  • Remove DocumenterMermaid dependency and logger filter (ExampleSizeThresholdFilter)
  • Remove "Introduction" => "index.md" from pages (VitePress uses it as root automatically)
  • Switch deploydocs to DocumenterVitepress.deploydocs, guarded by bases.txt check
  • Keep warnonly=true (doc content will be updated in a follow-up PR)

docs/Project.toml

  • Replace DocumenterMermaid with DocumenterVitepress (v0.3) and LiveServer (v1)

docs/src/.vitepress/config.mts (new)

  • Generated by DocumenterVitepress.generate_template + patched:
    • Navigation: Home link + VersionPicker component
    • Remote CT assets: vitepress-documentation.css and vitepress-documentation.js
    • ignoreDeadLinks: true (dead links will be fixed in doc content update PR)
    • Vite plugin to escape {{ }} in backtick inline code (fixes Vue template parsing error with CTFlows @Lie {{H, K}, L} syntax)

docs/src/.vitepress/theme/style.css (new)

  • Generated VitePress theme + merged custom.css responsive layout helpers (responsive-columns-left-priority, responsive-columns-40-60)

docs/src/components/ (new)

  • Vue components from template: VersionPicker.vue, Authors.vue, AuthorBadge.vue, SidebarDrawerToggle.vue

docs/package.json (new)

  • npm dependencies for VitePress build (vitepress, mathjax, markdown-it plugins)

.gitignore

  • Add !docs/package.json exception to track it despite *.json rule

docs/.gitignore (new)

  • Exclude build/, node_modules/, package-lock.json, Manifest.toml

.github/workflows/Documentation.yml

  • Restrict tag trigger from * to v[0-9]+\.[0-9]+\.[0-9]+ (stable releases only)

Verification

  • npm install succeeds
  • julia --project=docs docs/make.jl (draft mode) builds successfully
  • ✅ VitePress build completes: build complete in 8.38s
  • ✅ Output generated in docs/build/1/

Out of scope (follow-up PRs)

  • Upgrade core dependencies to v2.1.0-beta
  • Update doc content (fix cross-references, dead links, etc.)

- docs/Project.toml: replace DocumenterMermaid with DocumenterVitepress + LiveServer
- docs/make.jl: switch format to MarkdownVitepress, remove logger filter,
  remove "Introduction" from pages, switch to DocumenterVitepress.deploydocs
  guarded by bases.txt, warnonly=true
- docs/src/.vitepress/config.mts: generated + patched (nav, CT assets, ignoreDeadLinks,
  Vite plugin escaping {{ }} in inline code for Vue template safety)
- docs/src/.vitepress/theme/style.css: merge custom.css responsive layout helpers
- docs/src/components/: VitePress Vue components (VersionPicker, etc.)
- docs/.gitignore: exclude build/, node_modules/, package-lock.json, Manifest.toml
- docs/package.json: npm dependencies for VitePress build
- .gitignore: add !docs/package.json exception
- .github/workflows/Documentation.yml: restrict tag trigger to stable releases only
@ocots
ocots merged commit 97fefc3 into main Jul 28, 2026
8 checks passed
@ocots
ocots deleted the docs/vitepress-migration branch July 28, 2026 14:56
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