Skip to content

Build Setup

This page documents how to build the course site and generate slides from source.

Prerequisites

ToolPurposeInstall
Node.js 22+Astro sitenodejs.org
Emacs (with ox-beamer)Export .org.texbrew install emacs
TeXLive (XeLaTeX)Compile .tex.pdf + .rvltug.org/texlive
Poppler (pdftoppm)Slide image extractionbrew install poppler
Perl + BeamerRevealConvert .rvl → Reveal.js HTMLcpanm BeamerReveal

Local Development

Install npm dependencies once:

Terminal window
npm install

Generate slides into public/slides/ (required before dev or build):

Terminal window
bash scripts/build-slides.sh

Start the dev server:

4321/course_docs/
npm run dev

Adding or Updating Slides

  1. Edit or create the .org file in slides/<topic>/
  2. Re-run bash scripts/build-slides.sh
  3. The dev server will pick up the new files automatically

The build script priority per topic directory:

ConditionAction
.org existsFull pipeline: Emacs → xelatex → beamer-reveal.pl
.html exists (no .org)Copy as-is
.rvl exists (no .html)Run beamer-reveal.pl only

Adding a New Slide Topic

  1. Create slides/<topic>/ and add the .org source file
  2. Add a new MDX page at src/content/docs/slides/<topic>.mdx
  3. Add an entry to the sidebar in astro.config.mjs

Deployment

Pushing to main triggers the GitHub Actions workflow (.github/workflows/deploy.yml), which installs all dependencies, runs scripts/build-slides.sh, builds the Astro site, and deploys to GitHub Pages at https://mdurrani808.github.io/course_docs/.