ci/pages: Latest-Build-Hinweis (Symbol + Tooltip) hinter dem Titel

Der Pages-Deploy ist der frischeste Entwicklungsstand und kann Fehler
enthalten; die stabile Instanz laeuft woanders. Damit nur diese
Veroeffentlichung markiert ist, injiziert der Workflow nach demselben Muster
wie Version/LICENSE — also NUR auf der Site-Kopie — hinter dem Titel (Anker
</h1>, im Bundle eindeutig) ein kleines Symbol mit zweisprachigem Tooltip
(<span class="build-badge">🚧</span>). Quelle bleibt unberuehrt: ein schlichter
`npm run build` erzeugt die Datei ohne Hinweis. Als Deploy-Metainfo bewusst
nicht im I18N-Objekt (D14). D16 fortgeschrieben.

Verifiziert gegen das echte dist-Bundle: Badge genau 1x, Version 1.0.x +
Commit-Link unveraendert, frontend/index.html traegt 0 Badges.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-07-22 05:43:39 +02:00
co-authored by Claude Opus 4.8
parent 6bfb4d1fad
commit b7bf9182ea
2 changed files with 21 additions and 0 deletions
+8
View File
@@ -75,8 +75,16 @@ jobs:
BUILD_VERSION="${MAJORMINOR}.${MICRO}"
COMMIT_URL="https://github.com/mhoennig/werkbaum/commit/$(git rev-parse HEAD)"
echo "Footer-Version: ${BUILD_VERSION} -> ${COMMIT_URL}"
# Latest-Build-Hinweis (Symbol + Tooltip) hinter dem Titel: kennzeichnet
# NUR diese Pages-Veröffentlichung als Entwicklungsstand. Wird bewusst
# erst hier auf der Site-Kopie injiziert (wie Version/LICENSE), damit die
# Quelle und jede andere Instanz (schlichter `npm run build`) ihn nicht
# tragen. Literale UTF-8-Zeichen (kein `#`/`&`, sonst kollidiert der
# sed-Delimiter); Anker `</h1>` ist im Bundle eindeutig.
BADGE='<span class="build-badge" role="img" aria-label="Latest build may be buggy" title="Aktueller Entwicklungsstand (latest build) kann noch Fehler enthalten · Latest development build may still be buggy" style="margin-left:.45em;font-size:.58em;vertical-align:middle;cursor:help;user-select:none;text-decoration:none">🚧</span>'
mkdir -p site
sed -e 's#\.\./LICENSE#LICENSE#g' \
-e "s#</h1>#${BADGE}</h1>#" \
-e "s#\(<a class=\"ver\" href=\"\)[^\"]*#\1${COMMIT_URL}#" \
-e "s#\(<a class=\"ver\"[^>]*>\)[0-9.]\+</a>#\1${BUILD_VERSION}</a>#" \
frontend/dist/index.html > site/index.html
+13
View File
@@ -135,6 +135,19 @@ zählt der flache CI-Klon nur einen Commit. `1.0` bleibt die Version beim lokale
Links**: „Werkbaum" → Repo-Startseite, die Versionsnummer (`<a class="ver">`) →
exakt der deployte Commit (`…/commit/<sha>`, im Build via `git rev-parse HEAD`).
**Latest-Build-Hinweis:** Der Pages-Deploy ist der jeweils frischeste
Entwicklungsstand und kann Fehler enthalten; die *eigentliche* (stabile) Instanz
läuft woanders. Damit nur diese Veröffentlichung als „latest build" markiert ist,
injiziert der Workflow — nach demselben Muster wie Version/LICENSE, also **nur auf
der Site-Kopie** — hinter dem Titel (`</h1>`, im Bundle eindeutiger Anker) ein
kleines Symbol mit Tooltip (`<span class="build-badge">🚧</span>`, zweisprachiger
`title`). Die Quelle bleibt unberührt: ein schlichter `npm run build` (z. B. für
die stabile Instanz) erzeugt die Datei **ohne** Hinweis. Bewusst nicht als
i18n-UI-Text im `I18N`-Objekt, weil es kein Produkt-Feature ist, sondern
Deploy-Metainformation genau dieser Pipeline (D14: die Quelle nicht um
Deploy-Spezifika erweitern). Umgesetzt mit literalen UTF-8-Zeichen im
`sed`-Replacement (kein `#`/`&`, sonst kollidiert der Delimiter).
(Nummerierung: D15 war bereits für den kompakten Modus vergeben, daher D16.)
## D17 — Kleiner Bildschirm: ein Bereich, kompakte Legende & Sprachwahl