Reproducible project template
A flexible template for reproducible slides with Quarto, GitHub Actions, and GitHub Pages.
- Online version: robinlovelace.net/reproducible-project-template
- Source code: github.com/Robinlovelace/reproducible-project-template
Last updated: October 8, 2026
Quick start
Use the GitHub CLI (gh):
gh repo create my-slides --template robinlovelace/reproducible-project-template
cd my-slides
# Enable Pages: Settings → Pages → Source: Deploy from a branch → Branch: gh-pages, / (root)
# Edit slides.qmd, then push
git pushYour slides are live in ~30 seconds.
Features
| Feature | Description |
|---|---|
| clean-revealjs theme | Bundled in _extensions/, zero install needed |
| Auto-deploy | peaceiris/actions-gh-pages@v4 on every push to main, publishes to gh-pages |
| Auto-detect | Uses quarto inspect to detect R/Python needs; only installs what’s required |
| PR previews | Deploy preview versions for review before merging |
| Quarto freeze | Cache computation results locally; CI only re-renders markdown |
| Self-contained HTML | Offline-capable HTML with all images, CSS, and JS embedded |
| PDF export | Auto-generated via DeckTape on every release |
| Date-based releases | Automatic versioned releases on every push |
| Citation support | references.bib ready for bibliographies |
Workflows
| Workflow | Trigger | What it does |
|---|---|---|
publish.yml |
Push to main | Render site → deploy to GitHub Pages |
release-standalone.yml |
Push to main | Build self-contained HTML + PDF → create dated release |
pr-preview.yml |
PR to main | Build preview → deploy to temporary URL |
Structure
├── index.qmd # Landing page
├── slides.qmd # Slide deck
├── paper.qmd # Paper (HTML + Word + PDF)
├── _quarto.yml # Project config (output-dir, freeze, navbar)
├── references.bib # Bibliography
├── _extensions/clean/ # clean-revealjs theme (bundled)
└── .github/workflows/ # publish, release-standalone, pr-preview
Built with this template
- AUM 2026 slides — Modelling multi-model traffic, casualties and risk
- ITF Workshop slides — Building communities of transport practitioners