Centered set: the ring numbers ride the axis BELOW the cross, 9 at the bottom, so the eye climbs 9 → 1 to it; the dots turn half a circle to keep the number lane clear. The ring legend opens with what a ring means in plain words (sets_rings_lede x11) before listing the rings that hold someone. Life in weeks + the reached grid: each grid is ONE inline SVG, two paths of square subpaths (empty, shaded), hairlines between decades, small week and year numbers; measured on the two pages together: 10,553 page nodes → 86, load 474 → 214 ms, print 641 → 320 ms. The reached grid now has the life grid's exact shape (same geometry, no week or year numbers, centred), shaded from the top by this list's share. Gates: variants and render decode each grid's subpaths back to box indexes in reading order (5,200 distinct, Jesus' 33 years = the first 1,716, the share from the top, the same viewBox for both); two-sided: shading the LAST 33 years fails both. Gospel's three optional nits folded in (it un’altra, example_note x5, ru чёрточка). |
||
|---|---|---|
| .. | ||
| data | ||
| fixtures | ||
| build-gallery.mjs | ||
| build-hd-gallery.mjs | ||
| emit-countries.mjs | ||
| export-public.mjs | ||
| generate.mjs | ||
| make-previews.py | ||
| osm-basemap.mjs | ||
| packet-strings.json | ||
| packet.mjs | ||
| pin-poster-render.mjs | ||
| poster-regions.mjs | ||
| publish-html.mjs | ||
| README.md | ||
| series.json | ||
| serve-persist.sh | ||
| serve.sh | ||
| shoot.mjs | ||
| verify-posters.mjs | ||
library/scripts/posters/ — UPG-100 poster generator
Renders one 3ft × 3ft print poster per zone (28 today) for the my-upg-100-list profile, from the profile's own data. It ships inside the repo alongside that data on purpose — reaching for the data via an env var once silently rendered stale posters (Nepal, Bangladesh, Bhutan vanished).
bun run posters -> posters:shoot -> (WebP previews) -> bun run build
HTML per zone PNG @3000² assets/previews/ app shows them
generate.mjsis the template;shoot.mjsscreenshots to PNG (Firefox only — privacy-first policy).- A template change is not visible in the app until previews are regenerated and the app rebuilt.
- Exported PNGs go to a sibling folder (
../../../upg-100-posters/), neverpublic/— Capacitor packagespublic/wholesale.
Full reference — files, env vars, gotchas, measurement discipline: ../../../documentation/architecture/poster-generation.md.