deploy
Render Quarto slides and deploy to GitHub Pages via CI/CD. Use when deploying lecture slides after making changes.
SKILL.md.claude/skills/deploy/SKILL.md
GitHubDeploy Slides to GitHub Pages
Deployment is automated via GitHub Actions CI/CD. Pushing to main triggers rendering and deployment.
Production Deploy (CI/CD)
- Commit and push source changes to
main - GitHub Actions automatically:
- Renders every QMD under the genre directories listed in
Quarto/_genres.txt(a folder that is not a listed genre is never published) - Strips speaker notes from HTML (safety net)
- Assembles site: HTML + RevealJS assets + Figures
- Deploys to GitHub Pages
- Renders every QMD under the genre directories listed in
- Verify at the GitHub Pages URL
Local Preview (Optional)
For testing before push:
Run the sync script:
- If
$ARGUMENTSis provided (e.g., "DreamZero"):./scripts/sync_to_docs.sh $ARGUMENTS - If no argument:
./scripts/sync_to_docs.sh(renders and assembles every deck)
It calls the same
scripts/assemble_site.shthat CI runs, thencheck_site_assets.pyover the result. That check is the point of previewing locally: a deck whose figures or runtime JS did not get copied renders perfectly and 404s in the browser.- If
Open in browser:
open docs/slides/<genre>/DeckName.html# macOSpython3 scripts/deckpath.py DeckName --field genreif unsure
Note: docs/ is gitignored — local preview output does not enter git.
Speaker Notes Policy
- QMD source always contains
::: {.notes}blocks (single source of truth) - Local (
Quarto/<genre>/*.html): notes included — pressSfor speaker view - Public (GitHub Pages): notes stripped by CI/CD pipeline
- Git clean filter strips notes from QMD before commit (
.gitattributes)