greenbook presentation
A reveal.js deck explaining the project's thought chain - from the Green Book as it exists today, through the domain model (schedule, series, doses, products, antigens, product class) and the conformance-vs-coverage distinction, to the up-to-date-for-age status model and where the work goes next. It uses the project's ubiquitous language throughout, aimed at a mixed clinical/technical audience.
View it
Run s/present from the repo root to serve the slides and open them in your browser, or just open presentation.html directly - no build step. (To run the presentation and the demo together in one Docker container, use s/up instead - it serves both at http://localhost:8080/.) The slides load reveal.js, the fonts, and Font Awesome from CDNs, so an internet connection is needed the first time. Arrow keys navigate; press F for fullscreen, S for speaker notes, Esc for the slide overview.
Files
presentation.html- the slidesstyles.css- the theme (paper background, forest-green accents, terracotta for edge-cases)edit.js- a small reveal-aware in-browser text editor (see below)
Edit the wording in the browser
node docs/presentation/edit.js
This serves the deck at http://localhost:3456 with every text element made editable. Click any text to edit it, Esc to deselect, then Save; Ctrl+C stops the server. Navigate slides first (arrow keys) to reach the text you want - only the visible slide is editable at a time.
It is a project-local editor rather than the generic revealjs-skill one because reveal.js needs two special accommodations, both handled here:
- Clean save. Reveal.js mutates the DOM heavily at runtime (injected backgrounds/controls,
present/past/futureclasses, inline transforms, aria attributes). Serialising that live DOM writes all of it back to the file.edit.jsinstead reads the pristine file, copies in only your edited text, and saves that - so the git diff is just your wording changes. (HTML entities like→are normalised to their characters on the first save; this is idempotent thereafter.) - Editing under a scaled transform. Reveal scales the slides to fit the window with a CSS
transform, andcontenteditablemisbehaves under that (mis-placed caret, clicks not landing) - especially in Firefox.edit.jspins reveal to scale 1 while editing so the caret behaves.
Export to PDF
Open presentation.html?print-pdf in Chrome and print to PDF, or use decktape:
npx decktape reveal "presentation.html?export" greenbook.pdf