Docs Site - 2026-10-19¶
Context¶
After the first PyPI release (1.1.1) the docs were only readable as markdown on GitHub, in the generated wiki, or in Obsidian. None of them is searchable or has a page a new user can start from, and the README's quickstart stopped at testo run without saying how to see a regression or add CI.
Decision¶
- A Getting Started note walks a new user from
pip install testo-coreto the GitHub Action. Every command in it was run against the PyPI release.examples/getting-started/is the same project, and thegetting_startedjob inci.ymlruns it through./integrations/github-actionon every pull request, so the guide fails CI when it stops working. - MkDocs Material renders
docs/as a site (mkdocs.yml), published under/docs/of the existing Pages demo bypages-demo.yml: https://taltal-beep.github.io/testosterone/docs/. One Pages deployment keeps one URL to share and no second workflow writing to Pages. - The notes don't change for the site.
scripts/mkdocs_hooks.pybridges the gaps at build time:Index.mdbecomes the home page, URLs are lowercase and hyphenated, the vault'sstatuskey is dropped (Material would show it as a badge on every page), and links that leavedocs/point at GitHub, the same rewrite the wiki export does. Anchors use GitHub's slug rules, so links written for GitHub resolve on the site. - Broken links fail CI. The
docs_sitejob runsmkdocs build --strict.Archive/is built but kept out of the navigation.
Consequences¶
- The vault now has three readers (GitHub, the wiki, the site) and one source. A new note needs a
naventry inmkdocs.ymlto show in the site's menu; without one it is still built and searchable. pip install -e ".[docs]"thenmkdocs servepreviews the site locally.- Material 9.x pins MkDocs below 2.0, which drops plugins and themes. The
docsextra pinsmkdocs-material<10until that settles. - Mermaid diagrams render in the browser from a CDN script Material loads.