Untranslated English keeps its own direction in an RTL page

rega measured it at ?lang=ar: ".of 5,067 languages have…" and ".both key-gated" — English
runs inside an rtl block, so the browser moves their leading and trailing punctuation to
the wrong end. Thirty of them across four leaves, found by walking the template and
flagging every static English run with no dir anywhere in its ancestry.

Each run is wrapped in <bdi dir="ltr"> rather than giving the block a direction: these
paragraphs mix English prose with translated labels and numbers, and a dir on the
container would left-align the Arabic beside it. bdi isolates exactly the run and nothing
else.

The first pass broke the build and the second caught it: my tag regex ended a tag at the
first ">", so v-if="matches.length > 8" looked like text and the wrapper landed INSIDE the
attribute — v-if="matches.length > <bdi dir="ltr">8". check:sfc-parse failed, I patched
four sites by hand, and that left orphaned </bdi> closes. Reverting all four files and
redoing it with a quote-aware tokenizer was the cheaper fix than repairing my own repair:
30 runs, every open matched, 0 wrappers inside an attribute, SFC-PARSE and gates:pre 11/11
green.

Needs eyes: this is a bidi rendering fix and only a screenshot can confirm the punctuation
sits right. rega has the case at l17-7a7ca67b.
This commit is contained in:
Doxa Maps 2026-09-27 09:35:27 +00:00
parent a37ea4ffaf
commit 99aaaac782
12 changed files with 82 additions and 82 deletions

View file

@ -466,20 +466,20 @@ useShadowStyles(
</p>
<div v-if="nLang" class="gc-hero">
<b>{{ fmt(nNone) }}</b> of {{ fmt(nLang) }} languages have <b>no scripture and no film
found in the pools checked</b> — the languages of <b>{{ fmt(popNone) }}</b> people.
<b>{{ fmt(nNone) }}</b> of {{ fmt(nLang) }} languages have <b><bdi dir="ltr">no scripture and no film
found in the pools checked</bdi></b> — the languages of <b>{{ fmt(popNone) }}</b> people.
<template v-if="noCodeGroups">
<br><small>Counted BY LANGUAGE, so {{ fmt(noCodeGroups) }} people group{{ noCodeGroups === 1 ? '' : 's' }}
<br><small><bdi dir="ltr">Counted BY LANGUAGE, so {{ fmt(noCodeGroups) }} people group{{ noCodeGroups === 1 ? '' : 's' }}
with no ISO 639-3 code in the source — {{ fmt(noCodePeople) }} people — cannot appear here.
The "Where Nothing Was Found" table is keyed per people group and does include them.</small>
The "Where Nothing Was Found" table is keyed per people group and does include them.</bdi></small>
</template>
<!-- This said "four resource pools, including all audio, were never queried" until
Faith Comes By Hearing was added, then again when GRN was reached through 5fish.
A stale caveat misleads exactly as much as a stale number. -->
<br>Not found is not the same as not existing. Audio has been searched at Faith Comes By
<br><bdi dir="ltr">Not found is not the same as not existing. Audio has been searched at Faith Comes By
Hearing and at Global Recordings Network, the latter swept for every language in the gap
at the ten-second crawl delay they ask for. api.bible, YouVersion, the Digital
Bible Library and progress.bible all need credentials this build does not have.
Bible Library and progress.bible all need credentials this build does not have.</bdi>
</div>
<div class="gc-tabs">
@ -552,22 +552,22 @@ useShadowStyles(
<div v-if="picked" class="gc-pick">
<button type="button" @click="picked = null">{{ tr('gospel.sheet.close') }}</button>
<template v-if="picked.meta.iso">
<b>{{ picked.meta.name }}</b> · ISO 639-3 <b>{{ picked.meta.iso }}</b> ·
<b>{{ picked.meta.name }}</b> · ISO 639-3 <b>{{ picked.meta.iso }}</b> <bdi dir="ltr">·
{{ fmt(picked.meta.population) }} people in
{{ picked.meta.groups }} people group{{ picked.meta.groups === 1 ? '' : 's' }} ·
spoken in {{ Array.from(picked.meta.countries).join(', ') }}.
<br>Scripture found: {{ picked.meta.scripture ? 'yes' : 'not in pools checked' }} ·
spoken in {{ Array.from(picked.meta.countries).join(', ') }}.</bdi>
<br><bdi dir="ltr">Scripture found: {{ picked.meta.scripture ? 'yes' : 'not in pools checked' }} ·
Film found: {{ picked.meta.film ? 'yes' : 'not in pools checked' }} ·
Audio: unknown (pool not checked).
Audio: unknown (pool not checked).</bdi>
<template v-if="picked.meta.unmatchable">
<br>This code is outside the ISO 639-3 registry, so no pool can index it —
its resource status is unresolved by join, not measured.
<br><bdi dir="ltr">This code is outside the ISO 639-3 registry, so no pool can index it —
its resource status is unresolved by join, not measured.</bdi>
</template>
</template>
<template v-else>
<b>{{ picked.meta.country }}</b> — {{ picked.meta.none }} of
<b>{{ picked.meta.country }}</b> <bdi dir="ltr">— {{ picked.meta.none }} of
{{ picked.meta.total }} languages present here have nothing found in the
pools checked.
pools checked.</bdi>
</template>
</div>
</div>

View file

@ -389,11 +389,11 @@ useShadowStyles(
</p>
<div v-if="gap" class="gt-hero">
<b>{{ fmt(gap.groups) }}</b> people groups are <b>growing</b> with no scripture and no film
found in the pools checked — <b>{{ fmt(gap.population) }}</b> people,
<b>{{ fmt(gap.groups) }}</b> people groups are <b>growing</b> <bdi dir="ltr">with no scripture and no film
found in the pools checked —</bdi> <b>{{ fmt(gap.population) }}</b> people,
an estimated <b>{{ fmt(gap.deathsDay) }}</b> deaths per day.
<br>The estimate applies a national death rate to a sub-population; it is
order-of-magnitude, not a count.
<br><bdi dir="ltr">The estimate applies a national death rate to a sub-population; it is
order-of-magnitude, not a count.</bdi>
</div>
<div class="gt-tabs">

View file

@ -404,20 +404,20 @@ useShadowStyles(
<!-- The caveat is IN the UI, not buried in a data file. A reader acting on
this needs to know what "none found" does and does not mean. -->
<div class="caveat">
<b>What “no text” means.</b> It is the TEXT Scripture gap, and nothing wider: a row
<b>What “no text” means.</b> <bdi dir="ltr">It is the TEXT Scripture gap, and nothing wider: a row
pilled “no text” may still show audio Scripture, a film or a Bible video beside it, and
several do. Not found in the resource pools checked so far —
currently <b>eBible.org</b> ({{ fmt(stats.ebible_translations) }} translations across
currently</bdi> <b>eBible.org</b> <bdi dir="ltr">({{ fmt(stats.ebible_translations) }} translations across
{{ fmt(stats.ebible_languages) }} languages, public data), plus PNG.Bible, the JESUS
Film catalogue, Door43, and Faith Comes By Hearing for both text and audio Scripture. It does
<b>not</b> mean no scripture exists: Scripture Earth and Global Recordings Network are
Film catalogue, Door43, and Faith Comes By Hearing for both text and audio Scripture. It does</bdi>
<b>not</b> <bdi dir="ltr">mean no scripture exists: Scripture Earth and Global Recordings Network are
searched too, GRN swept for every language in the gap at the crawl delay they ask for;
api.bible, the Digital Bible Library, progress.bible and YouVersion need credentials
this build does not have. A pool nobody has queried shows as unknown, never as “no”.
Languages are joined to people groups by exact ISO&nbsp;639-3 code.
Languages are joined to people groups by exact ISO&nbsp;639-3 code.</bdi>
<br><br>
This page lists <b>published resource availability only</b>. It carries no information
about churches, believers or gatherings, by design.
This page lists <b><bdi dir="ltr">published resource availability only</bdi></b><bdi dir="ltr">. It carries no information
about churches, believers or gatherings, by design.</bdi>
</div>
</div>
</template>

View file

@ -2070,7 +2070,7 @@ useShadowStyles(
<span class="gm-qn">{{ m.name }}</span>
<span class="gm-ql">{{ m.lang || 'unnamed language' }} · {{ m.iso3 }}</span>
</button>
<div v-if="matches.length > 8" class="gm-qmore">Showing 8 of {{ fmt(matches.length) }} matches — keep typing to narrow.</div>
<div v-if="matches.length > 8" class="gm-qmore"><bdi dir="ltr">Showing 8 of {{ fmt(matches.length) }} matches — keep typing to narrow.</bdi></div>
</template>
</div>
@ -2405,7 +2405,7 @@ useShadowStyles(
target="_blank" rel="noopener noreferrer">
<span class="gm-pg-n">{{ g.name }}</span>
<span class="gm-pg-l">{{ fmt(g.pop) }} people · {{ g.iso3 }}<code class="gm-code">{{ g.code || 'no code' }}</code></span>
<span class="gm-pg-rel">nothing found, and nobody praying — open their prayer page ↗</span>
<span class="gm-pg-rel"><bdi dir="ltr">nothing found, and nobody praying — open their prayer page ↗</bdi></span>
</a>
</template>
@ -2414,8 +2414,8 @@ useShadowStyles(
<template v-else-if="gapBy === 'regions'">
<div v-for="r in gapRegions" :key="r.region" class="gm-pg">
<span class="gm-pg-n">{{ r.region }}</span>
<span class="gm-pg-l"><b>{{ r.pct }}%</b> of its {{ fmt(r.groups) }} groups have nothing
· {{ fmt(r.none) }} groups · {{ fmt(r.pop) }} people</span>
<span class="gm-pg-l"><b>{{ r.pct }}%</b> <bdi dir="ltr">of its {{ fmt(r.groups) }} groups have nothing
· {{ fmt(r.none) }} groups · {{ fmt(r.pop) }} people</bdi></span>
</div>
</template>
@ -2423,7 +2423,7 @@ useShadowStyles(
<button v-for="c in gapCountries" :key="c.iso3" type="button" class="gm-pg gm-pg-btn"
@click="closeGapList(); openCountry(c.iso3)">
<span class="gm-pg-n">{{ c.country }}</span>
<span class="gm-pg-l">{{ fmt(c.groups) }} groups with nothing · {{ fmt(c.pop) }} people<code class="gm-code">{{ c.iso3 }}</code></span>
<span class="gm-pg-l"><bdi dir="ltr">{{ fmt(c.groups) }} groups with nothing · {{ fmt(c.pop) }} people</bdi><code class="gm-code">{{ c.iso3 }}</code></span>
</button>
</template>
@ -2777,36 +2777,36 @@ useShadowStyles(
Mandarin are not mutually intelligible, they share a written standard — and it
changes no tier. The group still has nothing in its own variety. -->
<p v-if="selectedGroup.related" class="gm-rel">
<b>Nothing in {{ selectedGroup.language || 'this variety' }} itself</b> — but ISO 639-3
files it under the macrolanguage <code>{{ selectedGroup.related.m }}</code> together
with <b>{{ selectedGroup.related.l }}</b>, which does have resources here.
<b>Nothing in {{ selectedGroup.language || 'this variety' }} itself</b> <bdi dir="ltr">— but ISO 639-3
files it under the macrolanguage</bdi> <code>{{ selectedGroup.related.m }}</code> together
with <b>{{ selectedGroup.related.l }}</b><bdi dir="ltr">, which does have resources here.</bdi>
<br><br>
That is a statement about how the standard groups these codes, <em>not</em> a claim
<bdi dir="ltr">That is a statement about how the standard groups these codes,</bdi> <em>not</em> <bdi dir="ltr">a claim
that the two are mutually intelligible — often what they share is a written
standard rather than speech. It closes no gap and changes nothing above. It is here
because the largest "nothing found" entries on this map are varieties of this kind,
and a list read top-down would send you to them first.
and a list read top-down would send you to them first.</bdi>
</p>
<p v-if="selectedGroup.is_sign" class="gm-sign">
<b>{{ tOr('gospel.guide.isSignLanguage', 'This is a sign language.') }}</b> A Deaf group cannot be reached by a text
<b>{{ tOr('gospel.guide.isSignLanguage', 'This is a sign language.') }}</b> <bdi dir="ltr">A Deaf group cannot be reached by a text
translation, so eBible's silence here is not an absence of Scripture — it is a
text pool that was never the right place to look. What counts is Scripture
<em>filmed in this sign language</em>. Of {{ fmt(signTally.langs) }} sign languages
text pool that was never the right place to look. What counts is Scripture</bdi>
<em><bdi dir="ltr">filmed in this sign language</bdi></em><bdi dir="ltr">. Of {{ fmt(signTally.langs) }} sign languages
on this map, covering {{ fmt(signTally.people) }} people,
{{ signTally.both ? fmt(signTally.both) + ' have' : 'none yet has' }} both a film and
a text Scripture.
a text Scripture.</bdi>
<br><br>
<!-- Naming the pool that could still have it is the useful half. Measured: the
<bdi dir="ltr"><!-- Naming the pool that could still have it is the useful half. Measured: the
JESUS Film catalogue lists 14 sign languages and every one is already on
this map, and Faith Comes By Hearing carries none at all — so the open
catalogues are exhausted here, and this gap closes through an agreement
rather than more searching. -->
The open catalogues are <b>exhausted</b> for sign language: the JESUS Film lists
The open catalogues are</bdi> <b>exhausted</b> <bdi dir="ltr">for sign language: the JESUS Film lists
14 entries across 13 language codes and every one is already here, and Faith
Comes By Hearing carries none at all. What is unchecked is <b>Deaf Bible
Society</b> and <b>DOOR International</b>, both of which need a key or an
agreement — this gap closes by asking them, not by searching harder.
Comes By Hearing carries none at all. What is unchecked is</bdi> <b>Deaf Bible
Society</b> and <b>DOOR International</b><bdi dir="ltr">, both of which need a key or an
agreement — this gap closes by asking them, not by searching harder.</bdi>
</p>
<!-- ═══ AND HERE IS THE ONE WAY IN THAT EXISTS TODAY ════════════════════════════
@ -2872,7 +2872,7 @@ useShadowStyles(
<span class="gm-pg-l">{{ fmt(g.population) }} people · {{ g.countries }}</span>
</button>
<div v-if="sameLanguage.length > 12" class="gm-more">
Showing 12 of {{ sameLanguage.length }} groups sharing this language.
<bdi dir="ltr">Showing 12 of {{ sameLanguage.length }} groups sharing this language.</bdi>
</div>
</div>
@ -2958,7 +2958,7 @@ useShadowStyles(
<div class="gm-sec">
<div class="gm-sec-h">Gospel resources found ({{ withResources.length }})</div>
<div v-if="!withResources.length" class="gm-none">
Nothing found for any group here in the pools checked.
<bdi dir="ltr">Nothing found for any group here in the pools checked.</bdi>
</div>
<!-- NOT a <button> wrapper. The chips below are real <a href> links to the
resource itself, and HTML forbids interactive content inside a button —

View file

@ -694,7 +694,7 @@
"bundle": "gospel-resources",
"scriptUrl": "./gospel-resources/gospel-resources.js",
"output": "dx-maps/gospel-resources/gospel-resources.js",
"integrity": "sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c",
"integrity": "sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3",
"elements": [
"gospel-resources-map"
],
@ -714,7 +714,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/charts/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -728,7 +728,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -742,7 +742,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/gospel-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -756,7 +756,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/resources-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -770,7 +770,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
}
]

View file

@ -32,7 +32,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -32,7 +32,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -47,7 +47,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -32,7 +32,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -36,7 +36,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -694,7 +694,7 @@
"bundle": "gospel-resources",
"scriptUrl": "./gospel-resources/gospel-resources.js",
"output": "dx-maps/gospel-resources/gospel-resources.js",
"integrity": "sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c",
"integrity": "sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3",
"elements": [
"gospel-resources-map"
],
@ -714,7 +714,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/charts/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -728,7 +728,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -742,7 +742,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/gospel-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -756,7 +756,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/resources-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -770,7 +770,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-/6Fmni2LgS9VTO8oiRtLDP2swUtbHlDdfNN0+cijkdKk46OfjZvX8o7McEW5dO5c\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-rcjParURfYB0ZajMA/SiZ+xYPLJVh5BBtWDjLrTKawXrYVfzMaCUdtI/LOLRm5K3\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
}
]