init
Usage: quarto-coursegen init [OPTIONS] [COURSE_DIR]
Bootstrap a new Quarto course project directory.
Copies the bundled skeleton files, Jinja2 templates, and language files into the target directory, creating it if necessary. Nothing is overwritten unless --force is given.
What gets created
| Path | Description |
|---|---|
course.yaml |
Starter course definition — edit this first |
Makefile |
Rendering targets (make website, make slides, …) |
styles/custom.scss |
Website HTML theme stub |
styles/slides.scss |
reveal.js theme stub |
.gitignore |
Ignores docs/, Quarto caches, .venv/ |
templates/*.j2 |
All built-in Jinja2 templates — ready for local customisation |
lang/*.yaml |
Built-in language files (en.yaml, de.yaml) — add or override strings |
Note
The Makefile contains only rendering targets (make website, make slides, make handouts, make assignments, make all, make clean). There is no make generate target — generation is handled by the quarto-coursegen generate CLI command.
Usage
# Initialise the current directory
quarto-coursegen init
# Create and initialise a named directory
quarto-coursegen init my-course
# Preview what would be created without writing anything
quarto-coursegen init my-course --dry-run
# Overwrite files that already exist
quarto-coursegen init my-course --forceOptions
| Argument / Option | Short | Description |
|---|---|---|
COURSE_DIR |
Directory to initialise (default: current directory) | |
--force |
-f |
Overwrite existing files |
--dry-run |
Print planned actions without writing any files |
Typical workflow after init
quarto-coursegen init my-course
cd my-course
# Install the fontawesome Quarto extension (used by built-in templates)
quarto add quarto-ext/fontawesome
# Edit course.yaml
$EDITOR course.yaml
# Scaffold .qmd stubs
quarto-coursegen generate
# Render
make websiteLocal template customisation
Because init copies the built-in templates into templates/ in your project, you can customise them freely without modifying the package. The generate command automatically searches templates/ in your project before falling back to the built-in package templates.
See Templates & Filters for details.