A course template built with JupyterBook v2 (MyST).
Live book: https://neuromatch.github.io/course-template/
Fork this repository and follow the instructions in the book itself. Each day of this template teaches you how to build and publish your course. For scrollytelling pages (a pinned stage of figures and live Python beside scrolling text), see W1D2 Tutorial 6, "Scrollytelling Pages".
Update these things before adding content:
- In
myst.yml: changeproject.title,project.authors, andproject.github - In
README.md: change the Live book URL to match your GitHub Pages URL - In GitHub: go to Settings → Pages and set Source to GitHub Actions (set your custom domain there too, if you have one)
The first push to main publishes the site and creates notebooks-branch
for the generated notebooks. Pull requests are checked and built, but not
published.
The MyST plugin, the nma-kit command (notebooks, checks, site preparation)
and the CI workflows come from the published Neuromatch course kit
(neuromatch/course-kit): the npm
package @neuromatch/course-kit (referenced by extend: in myst.yml) and
the PyPI package neuromatch-course-kit (the nma-kit command). This
template holds no kit code, only content and configuration; kit fixes reach
your course on its next build (@v0.1 in .github/workflows/course.yml).
Requires Node.js >= 20 (use nvm use if you have .nvmrc support) and Python 3.10+.
uv venv
uv pip install -r requirements.txt neuromatch-course-kit
uv run nma-kit check # content rules, as in CI
uv run nma-kit sync-assets # branding files (_nma/), re-run after kit upgrades
uv run myst startThe book will be available at http://localhost:3000. For scrollytelling pages,
run uv run nma-kit render-scrolly first so their panels show real outputs.