Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@ jobs:
uses: actions/setup-node@v7
with:
node-version-file: .node-version
cache: npm
cache-dependency-path: pure/package-lock.json

- name: Install locked Pure dependencies
run: npm run pure:install

- name: Validate GitHub Actions workflows
env:
Expand Down
14 changes: 9 additions & 5 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@ Do not redesign the Pure runtime unless the task explicitly requires it.

## Architecture

- Root `*.html` files: 25 canonical `pure-v1` content sources.
- Root `*.html` files: 26 canonical `pure-v1` content sources.
- `pure/src/`: shared runtime/UI implementation.
- `pure/src/presentation-runtime/stack-backgrounds.js`: vertical-stack background inheritance for canonical decks.
- `pure/build/deck-source.mjs`: strict parser for canonical presentation content/configuration.
- `pure/build/audit-sources.mjs`: source-purity and corpus-footprint audit.
- `pure/deck.html`: shared output shell used for every deck.
Expand Down Expand Up @@ -45,7 +46,7 @@ Sources may contain inline `<style>` blocks and explicitly required external HTT

Do not add `<html>`, `<head>` or `<body>` wrappers, a deck-owned `.reveal` wrapper, `Reveal.initialize(...)`, local `dist/` or `plugin/` runtime links, or local runtime scripts. Shared behaviour belongs in Pure.

Keep backgrounds declarative and every image accessible with an `alt` attribute.
Keep backgrounds declarative and every image accessible with an `alt` attribute. A `data-background-*` value on an outer vertical stack is inherited by child slides that do not declare an explicit background; explicit child backgrounds always win. Keep the unit and Chrome regression tests for this behaviour intact.

## Dependency policy

Expand All @@ -57,10 +58,13 @@ npm run pure:install

This runs `npm ci --prefix pure`. Dependency changes to `pure/package.json` must update `pure/package-lock.json`.

CI and Vercel install the locked Pure dependency graph once before lint/build work. `npm run build` and `npm run lint` therefore assume dependencies are already installed. `npm start`, `npm test` and `npm run pure:check` are self-contained and install the locked dependencies when needed.

## Canonical commands

```bash
npm start
npm run pure:install
npm run build
npm test
npm run pure:audit
Expand All @@ -83,13 +87,13 @@ For runtime, build, dependency or presentation-source changes, require:
4. Pure dependency audit.
5. Canonical source-purity/corpus audit.
6. Pure production build.
7. Chrome smoke for all 25 built decks.
8. Exported catalogue plus all 25 decks in Chrome.
7. Chrome smoke for all 26 built decks, including the rendered BigBus background regression check.
8. Exported catalogue plus all 26 decks in Chrome.

A browser smoke failure is meaningful even when a static build succeeds.

## CI, Vercel and website deployment

`.github/workflows/js.yml` validates pull requests and pushes to `master`. A successful `master` build dispatches `digiguru/digiguru.github.io` with the exact presentation commit SHA that passed CI.

`vercel.json` installs with `npm run pure:install`, builds with `npm run build`, and publishes `pure/dist`. Keep Vercel and CI on the same deterministic build path.
`vercel.json` installs with `npm run pure:install`, builds with `npm run build`, and publishes `pure/dist`. Keep Vercel and CI on the same deterministic build path and do not add a second install inside the build command.
27 changes: 20 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@

This repository contains Digiguru's presentation content and the **Pure** Reveal.js runtime. Pure is the only runtime/build path.

Stage 6 removed the inherited framework/build stack. Stage 7 migrated all 25 presentation sources to the canonical `pure-v1` content format and removed the historical HTML compatibility parser and frozen metadata registry.
Stage 6 removed the inherited framework/build stack. Stage 7 migrated the then-current 25 presentation sources to the canonical `pure-v1` content format and removed the historical HTML compatibility parser and frozen metadata registry. The rescued Christmas LEGO Movie Sets quiz brings the current canonical corpus to 26 decks.

## Architecture

- Root `*.html` files are canonical `pure-v1` presentation sources.
- `pure/src/` contains the shared runtime and UI.
- `pure/src/presentation-runtime/stack-backgrounds.js` preserves shared backgrounds declared on vertical stacks while respecting explicit child backgrounds.
- `pure/build/deck-source.mjs` reads canonical content/configuration.
- `pure/build/audit-sources.mjs` rejects historical runtime wiring and checks the corpus capability/theme footprint.
- `pure/deck.html` is the shared HTML shell for every built deck.
Expand All @@ -23,12 +24,20 @@ Presentation sources contain content and declarative configuration, not their ow

Use the Node version pinned by `.node-version`.

Start the development server with:

```bash
npm run pure:install
npm start
```

`pure:install` runs `npm ci --prefix pure`, so local, CI and Vercel builds use the committed lockfile.
`npm start` performs a deterministic `npm ci --prefix pure` from the committed lockfile before starting Vite.

For a fresh production build:

```bash
npm run pure:install
npm run build
```

Useful checks:

Expand All @@ -42,7 +51,7 @@ npm run pure:smoke
npm run presentations:smoke
```

`npm run build` produces the static product in `pure/dist/`.
`npm run build` produces the static product in `pure/dist/` and assumes the locked Pure dependencies are already installed. `npm test`, `npm start` and `npm run pure:check` are self-contained and install them when needed.

## Canonical presentation source format

Expand Down Expand Up @@ -82,6 +91,8 @@ Every image needs an `alt` attribute. Keep backgrounds declarative:
<section data-background-image="assets/example.png" data-background-size="1696px 928px">
```

A background declared on the outer section of a vertical stack is inherited by children that do not declare their own background. Explicit child backgrounds win. Unit tests cover this rule and the Chrome corpus smoke verifies the rendered BigBus opening background so this regression cannot silently return.

Shared runtime behaviour belongs in `pure/`; presentation-specific content belongs in the root source file.

## Build and export
Expand All @@ -98,9 +109,9 @@ The generated YAML is an export artifact only; there is no repository-owned pres

## CI and deployment

GitHub Actions validates workflow syntax, repository tooling, all 25 canonical metadata records, accessibility, ESLint, the locked dependency graph, source purity/capability preservation, the production build, all 25 built decks in Chrome, and the exported catalogue plus all 25 exported decks in Chrome.
GitHub Actions validates workflow syntax, repository tooling, all 26 canonical metadata records, accessibility, ESLint, the locked dependency graph, source purity/capability preservation, the production build, all 26 built decks in Chrome, and the exported catalogue plus all 26 exported decks in Chrome.

After a successful push to `master`, the workflow dispatches `digiguru/digiguru.github.io` with the exact presentation SHA that passed CI.
CI installs the locked Pure dependency graph once per job and reuses it for lint/build/smoke work. After a successful push to `master`, the workflow dispatches `digiguru/digiguru.github.io` with the exact presentation SHA that passed CI.

Vercel uses the same deterministic path from `vercel.json`:

Expand All @@ -110,8 +121,10 @@ build: npm run build
output: pure/dist
```

The Vercel install step runs `npm ci --prefix pure` once; the build step does not reinstall dependencies.

## Dependencies and security

Runtime/build npm dependencies belong in `pure/package.json`; dependency changes must update `pure/package-lock.json`. `npm run pure:audit` audits the dependency graph that actually builds and runs Pure.

There is no inherited framework dependency tree and no presentation compatibility runtime to maintain.
There is no inherited framework dependency tree and no presentation compatibility runtime to maintain.
Binary file removed assets/Empowering Tomorrows Teams.pdf
Binary file not shown.
Binary file removed assets/Full Presentation.pdf
Binary file not shown.
45 changes: 0 additions & 45 deletions chapter1.md

This file was deleted.

108 changes: 0 additions & 108 deletions christmas-lego-movie-sets.css

This file was deleted.

Loading