git » homepage.git » commit 26c5989

Document containerized site workflow

author Alan Dipert
2026-08-12 20:33:21 UTC
committer Alan Dipert
2026-08-12 20:33:21 UTC
parent a0a592f60a28b1ff013852daccf4cf0aea67467d

Document containerized site workflow

README.md +17 -7

diff --git a/README.md b/README.md
index f6abb80..7eb73f1 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,20 @@
 # Homepage static site generator
 
-This converts Markdown from `md/` to a static site in `out/`. Podman provides the pinned build environment; the host only needs Podman, Make, and Git.
+This converts Markdown from `md/` to a static site in `out/`. The normal workflow uses the pinned Podman image defined by `Containerfile`.
 
 > AI helpers: read `AGENTS.md` before making changes.
 
-## Reproducible build
+## Edit and build
+
+For a normal Markdown change:
+
+1. Edit a file under `md/`, or create `md/PageName.md` with a level-one title.
+2. Use relative links such as `./OtherPage.md`; the generator rewrites them for the published site.
+3. Put page-specific assets in `md/PageName/` and reference them as `./PageName/file.png`.
+4. Build the site with `make container-build`.
+5. Open `out/Index.html` and review the generated page.
+
+`make container-build` builds the image from `Containerfile` when needed, runs the complete build in that image, and writes the generated site to `out/`. It includes the pinned versions of cmark-gfm, Python, rsync, Git, and Git LFS, so no site-build tools need to be installed on the host.
 
 ```sh
 make container-build
@@ -19,24 +29,24 @@ Deployment assets stored alongside the Markdown, including `.htaccess`, are copi
 
 Lossless masters for optimized site images live in `source-assets/`. They are retained in Git but excluded from both the container context and published site.
 
-To prove that two isolated builds produce identical files and metadata:
+For a new article, also add a dated entry near the top of `md/Home.md`'s Updates table. To run the full checks before committing:
 
 ```sh
-make verify-reproducible
 make test
+make verify-reproducible
 ```
 
-The `Containerfile` pins both the Debian base-image digest and a dated Debian package snapshot. Update those two values together when intentionally refreshing the toolchain, rebuild with `make container-image`, and rerun the reproducibility check.
+The `Containerfile` pins both the Debian base-image digest and a dated Debian package snapshot. Update those two values together only when intentionally refreshing the toolchain.
 
 ## Local fallback
 
-The Make pipeline can still run without Podman when `cmark-gfm`, Python 3.11 or newer, rsync, Make, and Git are installed locally:
+The host build is optional. It requires `cmark-gfm`, Python 3.11 or newer, rsync, Make, and Git:
 
 ```sh
 make assets && make
 ```
 
-Set `MD2HTML` if the renderer is not on `PATH`:
+Set `MD2HTML` if the local renderer is not on `PATH`:
 
 ```sh
 make MD2HTML=bin/cmark-gfm