Adds a slide after the hardware diagram showing the two racks side by side —
the MakerFLOSS rack at Orange Makerspace and the one at home — to make the
point that the module contract is what lets those two rooms run the same
system.
build-slides.sh now copies image files from slides/ into the output tree at
the same relative path. Marp keeps relative image URLs, so without this the
images would 404 on the published site. Guarded against the local build,
where OUTPUT_DIR is the source directory and the copy would be a no-op onto
itself. This is the first deck in the repo with images; the convention is
documented in docs/services/slides.md.
Photos resampled to 1200px on the long edge (~300 KB each) from the 3072x4080
originals.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Adds a second Marp source root. Decks under slides/ build to an output path
mirroring their repo path, so slides/TAPPaaS/HOW-TO/NewModule/index.md is
served at slides.makerfloss.eu/TAPPaaS/HOW-TO/NewModule/. Decks in
docs/presentations/ keep their flat URLs.
The deck itself is a frame: structure and headings from the real
src/apps/00-Template anatomy, content still to be written. Unfinished spots
are written as inline `TODO: ...` and rendered in red so a half-finished
deck cannot be presented by accident.
Also fixes the Docker fallback, which could not write to a mktemp directory
on macOS (not shared with Docker Desktop) and must not be passed --user.
The docs/ tree previously conflated published-site content (3 pages
were in mkdocs.yml nav) with working notes (~18 files that just sat
in the repo). Restructure so each tree means one thing:
- docs/ everything here is built and shipped to docs.makerfloss.eu.
Adds docs/presentations/ for the two Marp decks
previously living under docs/møder/.
- notes/ repo-only working material, not built. Contains
meetings/, todo/, dev/ (was docs/superpowers/), and
communications/ (the launch Facebook post).
- sandbox/ test-mermaid.md, the Marp/Mermaid pipeline sandbox.
Other touches:
- Drop "_noter" suffix on meeting filenames; drop "_presentation"
from the messaging deck's basename for symmetry with SoMe-taxonomi.
- Update CLAUDE.md and docs/index.md path references.
- Drop the now-redundant --exclude-dir=superpowers from
build-slides.sh since superpowers/ is no longer under docs/.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds .forgejo/workflows/build-slides.yml triggering on push to main and
manual dispatch. Job runs in node:20-bookworm-slim, installs marp-cli +
python3, mounts /srv/slides/html into /output, and invokes
build-slides.sh with OUTPUT_DIR=/output.
build-slides.sh now honors OUTPUT_DIR/SLIDES_TITLE/REPO_WEB_URL env
overrides (defaults preserve local-dev behavior), wipes stale .html
before each build, and regenerates a styled index.html listing every
deck — replacing the equivalent logic from the old webhook update.sh.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
el.closest('pre') returns null after marp's polyfill replaces
<pre is="marp-pre"> with <marp-pre> on browsers without customized
built-in element support. el.parentElement works in both cases.
startOnLoad:true does not trigger in a deferred type="module" script
because DOMContentLoaded has already fired. Explicit mermaid.run()
ensures diagrams render regardless of timing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Prevents AI tooling docs (specs, plans) from being built as presentations.
The grep pattern matched marp: true inside code examples in plan files.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Process each slide individually to avoid Docker --output flag issues
- Use a temp directory with 777 permissions for Docker to write to
- Copy generated files to final output directory after build
- Both marp-cli and mermaid injection now work properly with Docker
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>