how-to: show a different people-group list (?list= / profile-config.list / MAP_LIST), and the Studio's Hide header
Some checks are pending
Deploy to GitHub Pages / build (push) Waiting to run
Deploy to GitHub Pages / deploy (push) Blocked by required conditions

The list table is generated from library/lists/lists.json on main (ids, aliases, labels, default
doxa), and the behaviour from peopleGroupList.js: Tier A shows the DOXA groups in the list, an
unknown list falls back with a warning, a membership file that cannot load shows no groups. The
header toggle is from plugin-studio.vue (setHeaderHidden, remembered in localStorage). The CSP
section was already accurate: check:no-eval and check:cdn-pins exist, and cdn.js pins exactly
cdn.jsdelivr.net and api.mapbox.com.
This commit is contained in:
Doxa Maps 2026-09-26 07:37:39 +00:00
parent 70b02eea2a
commit f849683db0

View file

@ -321,6 +321,45 @@ as before, and an embed that passes a token keeps getting Mapbox under `auto`.
---
## Show a different people-group list
Every map shows DOXA's people groups unless you ask for another list — same bundle, no rebuild.
Resolution order (first defined wins): `profile-config.list` → `?list=` in the page URL →
`window.MAP_LIST` → default `doxa`.
| `list` | also accepts | shows |
|---|---|---|
| `doxa` | `2000`, `project-2000` | Project 2000: DOXA's people groups |
| `unreached` | `7000`, `project-7000` | Project 7000: unreached people groups |
| `frontier` | `4700`, `project-4700` | Project 4700: frontier people groups |
| `frontier-500k` | `700`, `project-700` | Project 700: frontier people groups of 500,000 or more |
| `unengaged` | — | Unengaged unreached people groups |
```html
<!-- per embed -->
<my-map profile-config='{"profile":"my-map","list":"frontier-500k"}'></my-map>
<!-- or flip any generated page from the URL -->
https://<cdn>/dx-maps/<bundle>/<profile>/index.html?list=700
```
**What you get today:** the DOXA groups that belong to that list. Rows and prayer data come from the
DOXA API, so a list's groups that DOXA does not carry are not shown yet. An unknown list falls back to
`doxa` with a console warning. If a list's membership file cannot load, the map shows **no**
groups rather than DOXA's whole list under the wrong name. Composites pass `list` to every child.
The definitions live in `library/lists/lists.json`; `bun run lists` regenerates the membership files.
Full contract: [reference-universal-props.md](./reference-universal-props.md), section 5.
---
## Hide the Plugin Studio header
The Studio header is where you set the universal props (language, engine, token). **Hide header**
collapses it so the plugin takes the full height; a **Show header** button stays in the top corner
to bring it back. The choice is remembered in this browser.
---
## Embed under a strict Content-Security-Policy
No bundle needs `'unsafe-eval'` (translations compile without `eval`; `bun run check:no-eval`), and