Jekyll site for http://fredgibbs.net. Course pages, lecture slide decks, projects, tutorials, and a CV.
Jekyll’s SCSS compile fails on an encoding error under a non-UTF-8 locale, so always build with the locale set:
LC_ALL=en_US.UTF-8 bundle exec jekyll build
bash scripts/a11y.sh runs the accessibility audit (see README.md).
scripts/slide-words.py <deck>/index.md checks a lecture deck against the
word budgets in courses/SLIDE-STYLE.md and exits non-zero if anything is over
its hard stop. Run it on a finished deck before the browser pass.
scripts/ocr-pdf.swift OCRs a scanned course reading that has no text layer,
so a quotation or page number can be checked with grep instead of by reading
page images. Cache the output beside the PDF, never in this repo — see “Cache
the text of a scanned reading” in courses/SLIDE-STYLE.md.
Read courses/SLIDE-STYLE.md before creating or editing any deck. It is
the source of truth for content rules, deck structure, front matter, image
sourcing and licensing, and the pre-publish checks. The CSS class mechanics it
refers to are documented in the header comment of
assets/css/reveal-lecture-theme.css.
Decks live at courses/<course>/slides/<deck-slug>/index.md and use
layout: reveal-lecture.
A finished deck is not done until a fresh-context agent has reviewed it for
historical accuracy, quotation accuracy, and cross-slide consistency. Spawning
that subagent is expected here — see “Before publishing” in
courses/SLIDE-STYLE.md for what to ask it and what to do with the findings.
Talks for outside audiences live at presentations/<talk-slug>/index.md and
are a different genre from lecture decks: short, timed, image-forward, one idea
per slide. Read presentations/AGENTS.md before creating or editing one.
The content rules in courses/SLIDE-STYLE.md still apply; the form does not.
They use layout: reveal-provocation, whose class mechanics are documented in
the header comment of assets/css/reveal-provocation-theme.css.