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>