quarto-coursegen
Scaffold Quarto course websites from a single course.yaml
quarto-coursegen is a CLI tool that turns a single course.yaml definition into a complete set of Quarto teaching materials — structured .qmd skeleton files, sub-project configs, and a course website.
It owns the generation stage of a two-stage authoring workflow:
| Stage | Tool | What it does |
|---|---|---|
| 1 — Generation | quarto-coursegen generate |
Reads course.yaml, writes .qmd skeletons and Quarto config files |
| 2 — Rendering | quarto render / make … |
Turns completed .qmd files into HTML, PDF, reveal.js, Beamer |
Important
Core principle: never mix the two stages. Generation is structural and potentially destructive. Rendering is repeatable and safe.
Quick start
# Install
pip install quarto-coursegen # or: uv tool install quarto-coursegen
# Bootstrap a new course project
quarto-coursegen init my-course
cd my-course
# Edit course.yaml — title, modules, artifacts, instructors …
# Scaffold .qmd stubs from course.yaml
quarto-coursegen generate
# Fill in content in the generated .qmd files, then render
quarto render # course website → docs/
make slides # reveal.js + Beamer PDF → docs/slides/
make handouts # PDF handouts → docs/handouts/What quarto-coursegen does not do
- It does not invoke Quarto.
generateonly writes plain text files. - It does not manage Quarto extensions or themes.
- It does not deploy or publish the rendered output.
Next steps
- Installation — requirements and install options
- Two-stage workflow — understanding the architecture
course.yamlreference — the single source of truthinitcommand — bootstrap a new course projectgeneratecommand — generate stubs fromcourse.yaml