The notes are organized in a Jupyter Book 2. The required Python environment is managed by uv. Local development uses JupyterLab with the extensions Jupytext and jupyterlab-myst.
The repository's root directory contains the following:
- .git/- Git repository for the project
- .github/- configuration for publishing to GitHub Pages
- .venv/- Python virtual environment for the project, listed in- .gitignore
- _build/- Jupyter Book build output
- src/- the contents of the notes
- .gemini- configuration for gemini-cli
- .gitignore,- .gitmodules- Git repository configuration
- .python-version-- uvpython version requirement
- AGENTS.md- instructions for AI coding agents
- myst.yml- MyST Markdown Document Engine configuration
- pyproject.toml-- uvworkspaces configuration
- README.md- this file
- uv.lock-- uvdependencies versions
The book contents is in .md files under the src/ directory. The files follow
the MyST (Markedly Structured Text) Markdown dialect.
Jupyter Book 2 is often confused with Jupyter Book 1. When reading guides or documentation, check the Jupyter Book version that they apply to. Jupyter Book 1 parses MyST Markdown into Sphinx, and delegates to the Sphinx engine, whereas Jupyter Book 2 uses the MyST Markdown Document Engine to generate documents directly.
- Build the book: uv run jupyter book build --all
- Start a local book server: uv run jupyter book start
- Start a Jupyter Lab local server: uv run jupyter lab
- Add a Python dependency, such as Jupyter extension: uv add jupyter-extension