doxa-maps/library/scripts/posters
Doxa Maps 0a407907d5 Full detail pages: the centered set reads upward to the cross with a legend that says what a ring is; the life in weeks and the reached grid are one light SVG each, the same shape, x11
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 чёрточка).
2026-10-02 22:01:16 +00:00
..
data feat(posters): capitals and major cities on the country maps 2026-09-24 02:21:03 +00:00
fixtures The browser/Node sheet equivalence check can measure on a fresh checkout 2026-09-29 12:44:25 +00:00
build-gallery.mjs doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
build-hd-gallery.mjs Source comments state design history and measurements as facts, without quoting or naming anyone 2026-10-01 00:37:17 +00:00
emit-countries.mjs Source comments state design history and measurements as facts, without quoting or naming anyone 2026-10-01 00:37:17 +00:00
export-public.mjs Source comments state design history and measurements as facts, without quoting or naming anyone 2026-10-01 00:37:17 +00:00
generate.mjs Pin wording: shared points and key-city clusters claim only what is certain 2026-10-02 09:21:54 +00:00
make-previews.py make-previews wrote every WebP one directory too high 2026-09-29 21:29:44 +00:00
osm-basemap.mjs Source comments state design history and measurements as facts, without quoting or naming anyone 2026-10-01 00:37:17 +00:00
packet-strings.json Full detail pages: the centered set reads upward to the cross with a legend that says what a ring is; the life in weeks and the reached grid are one light SVG each, the same shape, x11 2026-10-02 22:01:16 +00:00
packet.mjs Source comments state design history and measurements as facts, without quoting or naming anyone 2026-10-01 00:37:17 +00:00
pin-poster-render.mjs Serve the packet text at print time instead of bundling all 11 languages 2026-09-29 08:33:44 +00:00
poster-regions.mjs Source comments state design history and measurements as facts, without quoting or naming anyone 2026-10-01 00:37:17 +00:00
publish-html.mjs The map template draws a map-only vertical page for the prayer packet 2026-09-29 02:16:27 +00:00
README.md Source comments state design history and measurements as facts, without quoting or naming anyone 2026-10-01 00:37:17 +00:00
series.json The series is the UPG100 List, one term: the posters' series line and side box ('What is a UPG100 List?'), and the packet's series line and funnel, x11 2026-10-02 21:35:04 +00:00
serve-persist.sh doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
serve.sh doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
shoot.mjs doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
verify-posters.mjs check:no-free-identifiers reads internal/ and .mjs, which is where two gates had crashed on load 2026-09-29 09:18:26 +00:00

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.mjs is the template; shoot.mjs screenshots 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/), never public/ — Capacitor packages public/ wholesale.

Full reference — files, env vars, gotchas, measurement discipline: ../../../documentation/architecture/poster-generation.md.