diff --git a/README.md b/README.md index 0cae5374d..858d2621f 100644 --- a/README.md +++ b/README.md @@ -76,17 +76,20 @@ bun run dev # open the address it prints: that page is the P **2. Build.** The built maps are already in the repo. After a change, rebuild just that map, or all of them: ```bash -BUNDLE= bun x vite build # one map (seconds) -BUILD_ALLOW=1 bun run build # every map (~4 min); the output is public/dx-maps/ +BUNDLE= bun x vite build && bun run fix:sri # one map, then refresh its integrity hashes +BUILD_ALLOW=1 bun run build # every map (~4 min); the output is public/dx-maps/ ``` -When the DX Life site's repo sits next to this one (`../doxa-life`), the full build also copies the maps into +Skip `fix:sri` after a one-map build and the map's own page and any pasted snippet refuse the new file, because +they still carry the old integrity hash. When the DX Life site's repo sits next to this one (`../doxa-life`), the full build also copies the maps into its `public/`. That is the one path set in `vite.doxa-maps-build-config.json` (`dropin.dest`); nothing else on your computer is searched. No site there: the step says so and skips. `DOXA_DROPIN=off` turns it off, and `bun run dropin` copies on demand. **3. Embed a map.** Every map has its own embed script: its `embed.script` in `public/dx-maps/manifest.json` (an -`embed.iframe` too). A snippet is two parts, the map's script and its tag: +`embed.iframe` too). Paste it whole. It preloads the map engine, points the map at its data +(`window.MAP_APP_API_URL`), loads the map's script with its integrity hash, and places the map's tag. The two +lines at its core: ```html @@ -104,10 +107,10 @@ people groups of the world. When you work here, the goal is one of these: | Goal | The production maps that serve it | |---|---| -| **Reach a city** | Cities with Internet (`cities-internet`); Regions (`regions-dashboard`) and the country map (`country-map`) | -| **Mobilize for people groups** | Big Picture (`dashboard-plus-grid`); Research Map + Grid (`research-map-plus-grid`) | -| **Plan outreach** | Gospel Resources (`gospel-resources`): what exists in each language; Regions, by country | -| **Pray: packets and prayer resources** | UPG-100 (`my-upg-100-list`): prayer packets; Prayer Progress (`doxa-simple-map`) | +| **Reach a city** | Regions (`regions-dashboard`) and the country map (`country-map`): the people groups of each country. The production maps work by country and region; city-level planning (Prayer Walk Planner) is still experimental | +| **Mobilize for people groups** | Big Picture (`dashboard-plus-grid`); Simple Research (`research-map-plus-grid`) | +| **Plan outreach** | Gospel Resources (`gospel-resources`): what exists in each language; Cities with Internet (`cities-internet`): whether a group can be reached online | +| **Pray: packets and prayer resources** | UPG 100 List (`my-upg-100-list`), Regions and Simple Research: posters and prayer packets; Prayer Progress (`doxa-simple-map`) | - **Start with the skill:** [`skills/plugin-designer`](./skills/plugin-designer) teaches the patterns, the shared library and the checks. @@ -115,7 +118,8 @@ people groups of the world. When you work here, the goal is one of these: every other plugin. - **Land on `development`**, one change at a time through the lock, with `bun run gates:pre` passing. `main` is production and moves only on a publish. -- These 8 maps are in production. The experimental maps are frozen: leave them as they are. +- These 8 maps are in production. The other maps are experimental: leave them as they are unless your task is one + of them. *Click any ▸ to read more. Everything below is folded so you can scroll the pictures first.*