|
Some checks are pending
build-gate / build (push) Waiting to run
383 of the roster had no coordinates — 18% of Doxa's people invisible on the map and missing from every count on it. Reading why, rather than reaching for fuzzy matching, one class turns out to be a spelling convention: the roster puts the qualifier first and the pin dataset puts it last, around a comma. Acre Arara <-> Arara, Acre Ashkuni Nuristani <-> Nuristani Ashkuni Banka Samogho <-> Samogho, Banka Butuo Nosu <-> Nosu, Butuo Same words, same country, different order. Matching on the sorted token set absorbs exactly that: 94 recovered, plus 4 that only needed diacritics folded, and every one resolved to a SINGLE pin inside its own country. Spot-checked against the languages they landed on — Ashkuni Nuristani to Ashkun [ask] in Afghanistan, Banka Samogho to Bankagooma [bxw] in Mali — and all 94 carry a language code, so the resource join holds. What it refuses is the point. Doxa lists Akha in Laos; the pins carry Akha Jipea, Akha Jaweuy and Akha Piso — a parent against three sub-varieties, and picking one would invent a language for a people. Doxa lists Akeu in China; the nearest pin is Ake, a different language. Two candidates is a refusal, not a coin toss. 285 still have no candidate at all and stay unplaced, because they need a source this build does not have rather than a looser string match. 1,822 placed now. The gap grows 268 to 281, which is the join telling the truth. |
||
|---|---|---|
| .. | ||
| external-bundles | ||
| people-groups | ||
| posters | ||
| tables | ||
| vendor | ||
| README.md | ||
data/ — the bundler's source-of-truth data
The law: data lives here; public/ is generated. Every folder in data/ is copied into the
served web-root by the build (internal/generate-tree.mjs), exactly like the per-profile data in
plugin-designs/*/data/. You should be able to rm -rf public/ and get it all back with bun run build.
| Folder | Served at | What it is |
|---|---|---|
people-groups/ |
/assets/people-groups/ |
People-group datasets (CSV/JSON) the maps read at runtime |
vendor/ |
/assets/vendor/ |
Third-party runtime assets (e.g. table libraries) |
posters/ |
/assets/posters/ |
Rendered poster webp set (heavy pipeline output; poster walls fetch these) |
tables/ |
/assets/tables/ |
The MERGED served table set (its index.json is the merge; per-profile plugin-designs/*/data/tables are build-time sources) |
external-bundles/ |
not served | Prebuilt map IIFEs vendored from sibling projects (not built here); only the optional layouts/ shell mounted them, so the build no longer copies them into public/ |
Don't edit anything under public/ by hand — change it here (or in plugin-designs/*/data/,
layouts/*/assets/) and rebuild.