A review of the full-detail packet, page by page: - Page 1: a poster carries its own title, so the packet's title above it printed two headers and shrank the map to fit beneath them. A poster sheet now fills the page inside the white margin by itself; in another language its kicker and title become the packet's own, fitted to the English width. A map-only sheet keeps the packet's title in the band it leaves empty. - The life calendar is laid out like the Module 1 "Life Calendar in Weeks": square boxes, week numbers across the top, the year down the side, a rule between decades, framed and centred. The first 33 years are shaded as the life of Jesus (1,716 weeks). - The %-evangelical grid fills from the top in reading order instead of scattering. - The flow pages had no page padding at all, so their headings sat on the sheet's edge; they keep the same margin as every other page now. - The bounded and centered sets are one page, two square panels side by side as on the Module 1 list of 100, each headed by name with a cross at its centre. The centered set is a target of nine numbered bands, its dots spread through their bands by the shared ringBands geometry (no overlaps, none on the numbers), and the legend explains every ring with its count. - The lightweight packet lists every group as a worksheet: a short note, one column header per page, numbered rows sized for paper with room to tick, no photos or descriptions. Seven new strings in all eleven languages. check:packet-a1-structure and check:packet-variants assert the new contract two-sided (a poster page 1 has one header, a map-only page 1 still has the packet's; every ring is named, a populated one with its count and an empty one with a dash). |
||
|---|---|---|
| .. | ||
| data | ||
| fixtures | ||
| snapshots | ||
| 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 | ||
| 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. snapshots/holds frozen template versions (v5 is the approved current); each has its own README.
Full reference — files, env vars, gotchas, measurement discipline: ../../../documentation/architecture/poster-generation.md.