China's sheet printed 'map 1 of 1' and 'one of a 0-map set'. The cause is that generate.mjs derives the series facts from the zones THIS run built -- Object.assign(SERIES, seriesFacts(zones)) -- and the two sheet tiers are separate runs. The 3x4 tier is China alone, so totalLists came out 1, and the body sentence rounds it (Math.round(1/10)*10 = 0) into a 0-map set. SERIES_TOTAL overrides the derived count so a tier run can state the size of the whole series. Regenerated China with SERIES_TOTAL=174 SERIES_INDEX=174: it now reads 'map 174 of 174' and 'one of a 170-map set', which is what the other 173 sheets' body text already says (174 and 173 both round to 170). NOT a defect, and worth recording because it reads like one: the header's exact count and the body's rounded one are the SAME number by design. 173 exact and 170 approximate are not two answers. The 173 3x3 sheets still say 'of 173' where the set is 174. Regenerating them plus a full reshoot is about 28 minutes against tonight's hard switch, the body text is identical either way, and the difference is only visible with two sheets side by side. Run BOTH tiers with SERIES_TOTAL=174 to close it. |
||
|---|---|---|
| .. | ||
| 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 | ||
| 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. 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.