doxa-maps/library/scripts/posters
Doxa Maps e3d56d2f15 UPG100 packet: full-width life charts, a shorter page-1 strategy, self-fitting points
- The life calendar and the reached chart share one grid at the page's
  full printable width: each week a 22x11 box, bold year numbers every
  5 years (larger every 10), week numbers 1/13/26/39/52, a clear rule
  every 10 years and light rules at the quarters. The reached chart has
  no week or year numbers; each 10-row block is labelled with its share
  of the list's people, 10% to 100%.
- Page 1: the UPG100 series sets its own one-paragraph Jesus column
  (series.json strategyBody) and prints the explainer's first paragraph
  only (sideBoxMore), so the three columns balance and the map grows.
  The long text is one constant shared by both header layouts; the
  Country and India-state posters print it unchanged.
- The points page takes, per language, the largest size tier that fits
  one sheet, up to the earlier two-sheet sizes. The tier comes from a
  character-count estimate; the render gate fails if the real page is
  ever taller than that estimate.
2026-10-03 00:20:58 +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 The ring legend says what a ring grades: shared language and culture with the nearest believers who could reach them, and ring 9 differs in culture too, x11 (gospel's correction) 2026-10-02 22:03:23 +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 UPG100 packet: full-width life charts, a shorter page-1 strategy, self-fitting points 2026-10-03 00:20:58 +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.