Driver decisions (cards BUILD-OUTPUT-IS-ONE-FOLDER, BUILD-PLUGIN-STUDIO-IS-THE-OUTPUT-FRONT-PAGE).
- public/ holds only <tree>/ and a generated README.md. The build no longer writes public/index.html,
public/assets/ or public/__gallery/; `rm -rf public && bun run build` recreates exactly these two.
- The Plugin Studio is <tree>/index.html (tree-base "."), replacing the staging-forge chooser; nothing
is written above the tree. check:staging-lang, which tested that chooser, is retired with it.
- Assets are gathered in a temp directory and the fetched allowlist staged into <tree>/assets/ as
before. fonts/, images/, brand/ and legacy/ existed ONLY in public/assets: they are sources and move
to data/ (git mv). Poster previews keep their tracked sources in plugin-designs/*/assets/previews
(all 378 verified present).
- __gallery/ is archived out of public/ (a copy kept in the umbrella's _qa-cycle/archive) and out of
the build; generate-gallery renders only on request, into a directory you name, never public/.
- Native shells load the output folder: capacitor webDir public/<tree> (cap copy needs an index.html
there), Tauri frontendDist + window url relative to it. internal/sync-app-shells.mjs keeps both in
step with the tree's name on every build, so the coming rename stays one config line; the Capacitor
start page resolves its leaf tree-relative.
- dropin.include now lists only extras (README.md): the tree is always shipped and never named twice;
excludes are tree-relative ({tree}/...). clean.mjs removes the old root entries from existing
checkouts; the build lock and public/.gitignore's rules move out of public/.
- check:wp-embed read the BUILT manifest from gates:pre, before the build, so a from-scratch build
could never pass; it runs in gates:post and reads the tree name from config.
- Stale bundles refreshed by the clean build (key-cities, template-bundle, wall-of-people-groups);
the CLI doc's quoted scripts re-synced; capability exemplars regenerated; the '#' note leaves
check:stale-sweep-claim's command (it was already in //scripts).
Proof: rm -rf public && bun run build -> public/ = README.md + doxa-maps/; check:sri, check:drop,
check:parse, check:public-hygiene, check:quoted-scripts, check:capability-exemplars PASS; all 57 pages
(the front page + 56 leaves) mount under /doxa-maps/ on this tree. check:facet-cascade is red as on main.
36 lines
2 KiB
Text
36 lines
2 KiB
Text
worldmap.svg — provenance
|
|
=========================
|
|
|
|
WHAT IT IS
|
|
The faint world-map watermark DX-life paints behind its people-group list. Their
|
|
UupgsList sets it inline on the list root (app/components/public/UupgsList.vue:451):
|
|
background-image: url(/assets/images/worldmap.svg), background-size 60%,
|
|
background-position top, min-height 400px. Measured on their live
|
|
/regions/cameroon: HTTP 200, 62,740 bytes over the wire, computed background-size
|
|
60% / position 50% 0% / repeat no-repeat.
|
|
|
|
WHERE IT CAME FROM
|
|
Copied byte-for-byte from the DX-life repository:
|
|
doxa-life/public/assets/images/worldmap.svg
|
|
Same organisation, copied so the regions clone matches their page. 311 KB on disk;
|
|
small against this tree's other assets, which run 644 KB to 42 MB.
|
|
|
|
WHY THERE IS NO LICENCE FILE BESIDE IT
|
|
Checked, rather than assumed. A full-file scan for copyright, licence, attribution,
|
|
author, creator, <title>, <desc>, <metadata>, rdf:/dc: nodes and the usual stock-library
|
|
names (Natural Earth, simplemaps, amCharts, Freepik, Shutterstock, OSM, Mapbox) returns
|
|
NOTHING. The file is a plain vector — 394 <path> elements, three groups, no <image> and
|
|
no <text> — and its ids are design-tool export names (Group_345,
|
|
data-name="Group 345"), i.e. authored by their designer rather than downloaded with
|
|
embedded credits. DX-life keeps no licence file alongside public/assets/images/ either;
|
|
they treat that folder as their own artwork.
|
|
So this is internal reuse of a first-party asset, not redistribution of a third-party
|
|
one. Recorded here because the alternative was leaving the judgement implicit.
|
|
|
|
Contrast with the vendored typefaces, which ARE third-party and therefore carry their
|
|
licence in the folder that serves them: public/assets/fonts/bebas-neue/LICENSE and
|
|
.../poppins/LICENSE, both the SIL Open Font License 1.1, as the OFL requires.
|
|
|
|
NOTE ON THE FILENAME
|
|
Extensionless on purpose. check:public-hygiene refuses a *.txt in a served folder, and
|
|
the font LICENSE files set that precedent.
|