Gospel tables: translate the resource types, and let the leak gate see every locale
The gate could only ever read Arabic. Its rule — English prose declares itself with dir="ltr" — is right about the prose and wrong about the root: the embedded RTL fix sets direction on the plugin's own root element, so under ar the root was rtl and the walk ran, while under zh, ru and hi the root matched the prose test and the entire leaf was skipped. Measured on identical DOM in both locales: 1,359 elements walked and 589 carrying text either way, of which 1 sat in a prose subtree under ar and all 1,359 did under zh. It then reported that silence as "rendered no labels at all", which reads as a product failure and is not one. The Chinese leaf renders correctly, title and all. Silence is now NOT MEASURED, reported separately, and never counted as a pass. dir is honoured below the root and ignored on it; the comparison went from 488 key/locale pairs to 1,876. What that exposed was a translation that gave up halfway. Type is an enumerated label whose eight values the catalogue already translates, and the heading above it was translated while the column beneath stayed English. The map is derived from the catalogue rather than listed in the component, so a ninth resource type is covered the moment it is added; a hand-written list would have been one entry short and nothing would have failed. Both code paths localise, including the filtered view a pin or country click produces. Two values had no key because the catalogue spelled them differently from the data — Audio Scripture and Bible Stories, now translated in all eleven locales. Open Bible Stories stays English: it is a product name, as are the organisations in the Source column beside it.
This commit is contained in:
parent
42f48b7cf5
commit
32b4e5ec6c
21 changed files with 149 additions and 52 deletions
|
|
@ -48,6 +48,7 @@ try {
|
|||
browser = await chromium.launch()
|
||||
const en = Object.fromEntries(flat(cat('en')))
|
||||
const leaks = []
|
||||
const unmeasured = []
|
||||
let compared = 0
|
||||
|
||||
for (const leaf of LEAVES) {
|
||||
|
|
@ -77,26 +78,50 @@ try {
|
|||
* leak is a label that EQUALS the English value when a different translated value
|
||||
* exists. That is the same population a translated key is supposed to reach, and a
|
||||
* language name can no longer impersonate one. */
|
||||
/* ═══ THE ROOT'S dir IS THE LOCALE, NOT A PROSE DECLARATION — fourth correction ═════
|
||||
* The rule above ("English prose declares itself with dir=ltr") is right about the
|
||||
* PROSE and wrong about the ROOT, and that made this gate blind in every left-to-right
|
||||
* locale it was pointed at.
|
||||
*
|
||||
* The embedded-RTL fix sets direction on the plugin's OWN root element, as it should —
|
||||
* dir="rtl" under ar, dir="ltr" under zh, ru, hi and en. So under ar the root was not
|
||||
* prose and the walk ran normally; under every other locale the root itself matched the
|
||||
* prose test and the ENTIRE leaf was skipped as declared-English.
|
||||
* MEASURED on data-tables: identical DOM in both locales — 1,359 elements walked, 589
|
||||
* carrying their own text. Under ar, 1 element sat in a prose subtree. Under zh, all
|
||||
* 1,359 did, and the gate collected nothing.
|
||||
*
|
||||
* It then reported that silence as "rendered no labels at all", which reads as a product
|
||||
* failure. It is not: the zh leaf renders correctly, Chinese title and all — confirmed by
|
||||
* screenshot. This gate could only ever see Arabic, and said nothing about it.
|
||||
*
|
||||
* Prose is always marked INSIDE the leaf (a <p class="gm-note">, a caveat <div>, an
|
||||
* explanatory <span>); the root carries the locale's base direction and nothing else. So
|
||||
* dir is honoured below the root and ignored on it. */
|
||||
const labels = await page.evaluate(() => {
|
||||
const sr = document.querySelector('gospel-resources-map')?.shadowRoot
|
||||
if (!sr) return []
|
||||
const out = new Set()
|
||||
const walk = (node, inProse) => {
|
||||
const walk = (node, inProse, depth) => {
|
||||
for (const child of node.childNodes) {
|
||||
if (child.nodeType !== 1) continue
|
||||
if (child.tagName === 'STYLE' || child.tagName === 'SCRIPT') continue
|
||||
const prose = inProse || (child.getAttribute && child.getAttribute('dir') === 'ltr')
|
||||
const declares = depth > 0 && child.getAttribute && child.getAttribute('dir') === 'ltr'
|
||||
const prose = inProse || declares
|
||||
const own = [...child.childNodes].filter((n) => n.nodeType === 3)
|
||||
.map((n) => n.textContent.trim()).filter(Boolean).join(' ').trim()
|
||||
if (own && !prose) out.add(own)
|
||||
walk(child, prose)
|
||||
walk(child, prose, depth + 1)
|
||||
}
|
||||
}
|
||||
walk(sr, false)
|
||||
walk(sr, false, 0)
|
||||
return [...out]
|
||||
})
|
||||
await page.close()
|
||||
if (!labels.length) { leaks.push(leaf + ' ' + lc + ': rendered no labels at all'); continue }
|
||||
/* Silence is NOT MEASURED, never a leak: it means this gate could not see the leaf, which
|
||||
is a different thing from the leaf being wrong. Reporting it as a leak is what sent me
|
||||
looking for a rendering bug that did not exist. */
|
||||
if (!labels.length) { unmeasured.push(leaf + ' ' + lc + ': the walk collected no labels'); continue }
|
||||
const labelSet = new Set(labels)
|
||||
for (const [key, e] of Object.entries(en)) {
|
||||
const t = loc[key]
|
||||
|
|
@ -108,6 +133,12 @@ try {
|
|||
}
|
||||
|
||||
console.log(' compared ' + compared + ' key/locale pair(s) across ' + LEAVES.length + ' leaves and ' + LOCALES.length + ' locales')
|
||||
/* Reported before the verdict and separately from it: a leaf this gate could not read is not
|
||||
a leaf that passed, and the two must never be added together. */
|
||||
if (unmeasured.length) {
|
||||
console.error('GOSPEL-ENGLISH-LEAKS: NOT MEASURED — ' + unmeasured.length + ' leaf/locale pair(s):')
|
||||
for (const u of unmeasured) console.error(' ' + u)
|
||||
}
|
||||
if (leaks.length) {
|
||||
/* exitCode, NOT process.exit(). process.exit() terminates before pending stdout/stderr
|
||||
writes flush, and this gate proved it on itself: its first real run returned 1 with
|
||||
|
|
@ -116,8 +147,13 @@ try {
|
|||
console.error('GOSPEL-ENGLISH-LEAKS: FAIL — ' + leaks.length + ' translated key(s) rendering in English:')
|
||||
for (const l of leaks.slice(0, 12)) console.error(' ' + l)
|
||||
process.exitCode = 1
|
||||
} else if (unmeasured.length) {
|
||||
console.error('GOSPEL-ENGLISH-LEAKS: NOT MEASURED — no leak found, but ' + unmeasured.length +
|
||||
' pair(s) were never read, so this is not a pass.')
|
||||
process.exitCode = 2
|
||||
} else {
|
||||
console.log('GOSPEL-ENGLISH-LEAKS: PASS — every key with a translation renders in it.')
|
||||
console.log('GOSPEL-ENGLISH-LEAKS: PASS — every key with a translation renders in it, ' +
|
||||
'across ' + LEAVES.length + ' leaves and ' + LOCALES.length + ' locales.')
|
||||
}
|
||||
} finally {
|
||||
await browser?.close()
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "عرض للإنجيل",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "تدريب على التلمذة",
|
||||
"jesusFilm": "فيلم يسوع"
|
||||
"jesusFilm": "فيلم يسوع",
|
||||
"audioScripture": "الكتاب المقدس الصوتي",
|
||||
"bibleStoriesPlain": "قصص الكتاب المقدس"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "لا شيء",
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "Evangeliums-Darstellung",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "Jüngerschaftstraining",
|
||||
"jesusFilm": "JESUS Film"
|
||||
"jesusFilm": "JESUS Film",
|
||||
"audioScripture": "Audio-Bibeltext",
|
||||
"bibleStoriesPlain": "Bibelgeschichten"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "nichts gefunden",
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "Gospel presentation",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "Discipleship training",
|
||||
"jesusFilm": "JESUS Film"
|
||||
"jesusFilm": "JESUS Film",
|
||||
"audioScripture": "Audio Scripture",
|
||||
"bibleStoriesPlain": "Bible Stories"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "none found",
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "Presentación del evangelio",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "Formación de discipulado",
|
||||
"jesusFilm": "Película JESÚS"
|
||||
"jesusFilm": "Película JESÚS",
|
||||
"audioScripture": "Escrituras en audio",
|
||||
"bibleStoriesPlain": "Historias bíblicas"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "nada encontrado",
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "Présentation de l'Évangile",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "Formation au discipulat",
|
||||
"jesusFilm": "Film JÉSUS"
|
||||
"jesusFilm": "Film JÉSUS",
|
||||
"audioScripture": "Écritures en audio",
|
||||
"bibleStoriesPlain": "Histoires bibliques"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "rien trouvé",
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "सुसमाचार प्रस्तुति",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "शिष्यत्व प्रशिक्षण",
|
||||
"jesusFilm": "यीशु फ़िल्म"
|
||||
"jesusFilm": "यीशु फ़िल्म",
|
||||
"audioScripture": "ऑडियो पवित्र शास्त्र",
|
||||
"bibleStoriesPlain": "बाइबल की कहानियाँ"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "कुछ नहीं मिला",
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "Presentazione del Vangelo",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "Formazione al discepolato",
|
||||
"jesusFilm": "Film GESÙ"
|
||||
"jesusFilm": "Film GESÙ",
|
||||
"audioScripture": "Scritture in audio",
|
||||
"bibleStoriesPlain": "Storie bibliche"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "nulla trovato",
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "Apresentação do evangelho",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "Treinamento de discipulado",
|
||||
"jesusFilm": "Filme JESUS"
|
||||
"jesusFilm": "Filme JESUS",
|
||||
"audioScripture": "Escrituras em áudio",
|
||||
"bibleStoriesPlain": "Histórias bíblicas"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "nada encontrado",
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "Prezentarea Evangheliei",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "Instruire în ucenicie",
|
||||
"jesusFilm": "Filmul ISUS"
|
||||
"jesusFilm": "Filmul ISUS",
|
||||
"audioScripture": "Scripturi audio",
|
||||
"bibleStoriesPlain": "Povestiri biblice"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "nimic găsit",
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "Изложение Евангелия",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "Обучение ученичеству",
|
||||
"jesusFilm": "Фильм «Иисус»"
|
||||
"jesusFilm": "Фильм «Иисус»",
|
||||
"audioScripture": "Аудио с Писанием",
|
||||
"bibleStoriesPlain": "Библейские истории"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "ничего не найдено",
|
||||
|
|
|
|||
|
|
@ -85,7 +85,9 @@
|
|||
"gospelPresentation": "福音简介",
|
||||
"scriptureEarth": "Scripture Earth",
|
||||
"training": "门徒训练",
|
||||
"jesusFilm": "《耶稣传》"
|
||||
"jesusFilm": "《耶稣传》",
|
||||
"audioScripture": "音频圣经",
|
||||
"bibleStoriesPlain": "圣经故事"
|
||||
},
|
||||
"state": {
|
||||
"noneFound": "一无所获",
|
||||
|
|
|
|||
|
|
@ -153,6 +153,41 @@ const rawTable = computed(() => cache.value[current.value?.file] || null)
|
|||
const FILTERABLE = new Set(['doxa', 'links', 'nothing'])
|
||||
const table = computed(() => {
|
||||
const t = rawTable.value
|
||||
/**
|
||||
* ═══ THE COLUMN HEADINGS WERE TRANSLATED AND THE CELLS UNDER THEM WERE NOT ═══════════════
|
||||
*
|
||||
* "Type" is an ENUMERATED LABEL, not free data: every cell in it is one of eight fixed
|
||||
* values that the catalogue already translates into all eleven locales. Translating the
|
||||
* heading and leaving the column beneath it in English is the worst of both — it reads as
|
||||
* a translation that gave up halfway.
|
||||
*
|
||||
* DERIVED FROM THE CATALOGUE, NOT LISTED HERE. The map is built from EN_MESSAGES.gospel.res,
|
||||
* so a resource type added there is translated the moment it lands. A hand-written list of
|
||||
* the eight values is the same shape as the bug the surfaces gate exists for: it would be
|
||||
* one entry short the first time a ninth type appeared, and nothing would fail.
|
||||
*
|
||||
* ONLY the Type column, and only on an EXACT match. The Source column next to it holds
|
||||
* organisation names — Faith Comes By Hearing, eBible.org, Door43 — which are proper nouns
|
||||
* and stay as they are, the same decision already taken for "Open Bible Stories".
|
||||
*/
|
||||
const resValues = new Map()
|
||||
for (const [key, english] of Object.entries(EN_MESSAGES.gospel?.res || {})) {
|
||||
if (typeof english !== 'string') continue
|
||||
const v = tr('gospel.res.' + key)
|
||||
if (v && v !== 'gospel.res.' + key && v !== english) resValues.set(english, v)
|
||||
}
|
||||
const localiseValues = (tbl, rows) => {
|
||||
const typed = (tbl.columns || []).filter((c) => c.field === 'type').map((c) => c.field)
|
||||
if (!typed.length || !resValues.size) return rows
|
||||
return rows.map((r) => {
|
||||
let out = r
|
||||
for (const f of typed) {
|
||||
const hit = resValues.get(r[f])
|
||||
if (hit) out = { ...out, [f]: hit }
|
||||
}
|
||||
return out
|
||||
})
|
||||
}
|
||||
const localise = (tbl) => ({
|
||||
...tbl,
|
||||
columns: (tbl.columns || []).map((c) => {
|
||||
|
|
@ -160,6 +195,7 @@ const table = computed(() => {
|
|||
const v = tr(k)
|
||||
return v && v !== k ? { ...c, title: v } : c
|
||||
}),
|
||||
rows: localiseValues(tbl, tbl.rows || []),
|
||||
})
|
||||
if (!t || !hasFilter.value || !FILTERABLE.has(current.value?.id)) return t ? localise(t) : t
|
||||
const rows = (t.rows || []).filter((r) => {
|
||||
|
|
@ -207,7 +243,10 @@ const table = computed(() => {
|
|||
const v = tr(k)
|
||||
return v && v !== k ? { ...c, title: v } : c
|
||||
})
|
||||
return { ...t, meta: { ...t.meta, title }, columns, rows }
|
||||
/* THE FILTERED VIEW IS A SECOND PATH and it has to localise too. It builds its own columns
|
||||
and rows instead of calling localise(), so a fix applied only there leaks the moment a
|
||||
pin or a country is clicked — the state a mobiliser is actually in. */
|
||||
return { ...t, meta: { ...t.meta, title }, columns, rows: localiseValues(t, rows) }
|
||||
})
|
||||
const filterCount = computed(() => (table.value?.rows || []).length)
|
||||
const totalCount = computed(() => (rawTable.value?.rows || []).length)
|
||||
|
|
|
|||
12
public/doxa-maps/doxa-maps-spa/manifest.json
generated
12
public/doxa-maps/doxa-maps-spa/manifest.json
generated
|
|
@ -579,7 +579,7 @@
|
|||
"bundle": "gospel-resources",
|
||||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"output": "doxa-maps/gospel-resources/gospel-resources.js",
|
||||
"integrity": "sha384-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI",
|
||||
"integrity": "sha384-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH",
|
||||
"elements": [
|
||||
"gospel-resources-map"
|
||||
],
|
||||
|
|
@ -599,7 +599,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-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI\" 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-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH\" 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>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -613,7 +613,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-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI\" 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-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH\" 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>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -627,7 +627,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; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI\" 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; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH\" 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>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -641,7 +641,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-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI\" 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-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH\" 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>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -655,7 +655,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; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI\" 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; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH\" 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>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -26,7 +26,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-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI" crossorigin="anonymous"></script>
|
||||
<script src="../gospel-resources.js" integrity="sha384-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -26,7 +26,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-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI" crossorigin="anonymous"></script>
|
||||
<script src="../gospel-resources.js" integrity="sha384-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -40,7 +40,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-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI" crossorigin="anonymous"></script>
|
||||
<script src="../gospel-resources.js" integrity="sha384-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -26,7 +26,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-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI" crossorigin="anonymous"></script>
|
||||
<script src="../gospel-resources.js" integrity="sha384-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -29,7 +29,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-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI" crossorigin="anonymous"></script>
|
||||
<script src="../gospel-resources.js" integrity="sha384-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
12
public/doxa-maps/manifest.json
generated
12
public/doxa-maps/manifest.json
generated
|
|
@ -579,7 +579,7 @@
|
|||
"bundle": "gospel-resources",
|
||||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"output": "doxa-maps/gospel-resources/gospel-resources.js",
|
||||
"integrity": "sha384-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI",
|
||||
"integrity": "sha384-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH",
|
||||
"elements": [
|
||||
"gospel-resources-map"
|
||||
],
|
||||
|
|
@ -599,7 +599,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-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI\" 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-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH\" 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>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -613,7 +613,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-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI\" 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-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH\" 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>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -627,7 +627,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; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI\" 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; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH\" 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>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -641,7 +641,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-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI\" 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-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH\" 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>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -655,7 +655,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; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-83HLzn3UnHaNcFHHaWBEAKw9t2GOZ87+bGMZG0HoShOnvucyE+Ir5KUtKbFXI6hI\" 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; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-d+PYFi3VOBW6qCuJ+anfU9B1skxLyJVzWUqbALwwVB7QbInRXWAZ3SrhyXq3xFxH\" 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>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in a new issue