Documentation site for the Throng platform, built with MkDocs and the Material theme. Dependencies are managed with uv.
throng_docs/
├── docs/ # Markdown source for every page
│ └── index.md # Home page
├── mkdocs.yml # Site config (theme, nav, extensions)
├── pyproject.toml # Python deps (managed by uv)
├── uv.lock # Locked dep versions — commit this
└── site/ # Built HTML output (gitignored)
brew install uv # if you don't already have it
uv sync # creates .venv/ and installs locked depsuv sync reads pyproject.toml + uv.lock and produces a .venv/ with the
exact versions everyone else is using. Run it after pulling changes that
touch dependencies.
All commands assume you're in the repo root. uv run <cmd> runs <cmd>
inside the project's virtualenv without needing to activate it.
| Task | Command |
|---|---|
| Live preview at localhost:8000 | uv run mkdocs serve |
| Preview on a different port | uv run mkdocs serve -a 127.0.0.1:8001 |
Build static site into site/ |
uv run mkdocs build |
| Build with strict warnings | uv run mkdocs build --strict |
| Deploy to GitHub Pages | uv run mkdocs gh-deploy |
| List MkDocs subcommands | uv run mkdocs --help |
mkdocs serve watches docs/ and mkdocs.yml and auto-reloads the browser
on every save — leave it running while you write.
- New page → create
docs/some-page.md. It appears in the sidebar automatically. The first# Headingbecomes the page title. - Subsection → create
docs/guides/intro.md. The folder becomes a nav group; an optionaldocs/guides/index.mdbecomes that group's landing page. - Custom nav order → uncomment and populate the
nav:block inmkdocs.yml. Without it, files are listed alphabetically. - Images / assets → put them in
docs/(e.g.docs/img/foo.png) and reference with relative paths:.
| Task | Command |
|---|---|
| Add a package | uv add <pkg> |
| Add a dev-only package | uv add --dev <pkg> |
| Remove a package | uv remove <pkg> |
| Upgrade everything to latest | uv lock --upgrade && uv sync |
| Re-create venv from scratch | rm -rf .venv && uv sync |
Commit pyproject.toml and uv.lock after any of these. Never commit
.venv/.
Run uv run mkdocs gh-deploy to build and publish to the gh-pages branch.
The live site updates within a minute or two.
- MkDocs: https://www.mkdocs.org/
- Material theme reference: https://squidfunk.github.io/mkdocs-material/reference/
- Material setup guide: https://squidfunk.github.io/mkdocs-material/setup/
- uv docs: https://docs.astral.sh/uv/