frontend/ci: Getrennte Footer-Links — Name -> Repo, Version -> Commit

Im Footer sind "Werkbaum" und die Versionsnummer jetzt zwei Links:
- "Werkbaum" -> Repo-Startseite (wie bisher).
- Versionsnummer (<a class="ver">) -> exakt der deployte Commit.

CI setzt beim Build sowohl den Versionstext als auch den href der
ver-Anchor: COMMIT_URL=.../commit/$(git rev-parse HEAD); zwei gezielte
seds (href + Text). Lokal zeigt die Version "1.0" und verlinkt die
Commits-Uebersicht als Fallback.

Verifiziert: YAML gueltig; Trockenlauf ersetzt href -> commit/<sha> und
Text -> 1.0.7, "Werkbaum"-Link unveraendert. Preview lokal: Name -> Repo,
Version -> /commits/main.

Doku: README (EN+DE) Deployment + DECISIONS D16 ergaenzt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-07-21 14:47:15 +02:00
co-authored by Claude Opus 4.8
parent 81bac87d80
commit 9438935c41
5 changed files with 24 additions and 14 deletions
+12 -8
View File
@@ -53,12 +53,14 @@ jobs:
# den MIT-Link im Footer). Die Editor-Quelle bleibt unverändert — die
# ../-Pfade werden nur auf der Kopie im Site-Ordner geradegezogen, weil
# sie von der Wurzel-URL aus sonst über die Site hinauszeigen würden.
# Zusätzlich wird die Versionsnummer im Footer gesetzt: Major.Minor aus
# der VERSION-Datei (per Bump-Commit gepflegt), die Micro-Stelle aus der
# Anzahl der Commits seit dem letzten VERSION-Bump — sie steigt also mit
# jedem Commit und beginnt nach einem Bump wieder bei 0. Aus „Werkbaum
# 1.0" im Footer-Quelltext wird so z. B. „Werkbaum 1.0.7" (siehe README,
# Abschnitt „Deployment"). Braucht die volle Historie (fetch-depth: 0).
# Zusätzlich werden im Footer gesetzt:
# - die Versionsnummer: Major.Minor aus der VERSION-Datei (per
# Bump-Commit gepflegt), die Micro-Stelle aus der Anzahl der Commits
# seit dem letzten VERSION-Bump — steigt also je Commit und beginnt
# nach einem Bump wieder bei 0 (z. B. 1.0.7).
# - der Link der Versionsnummer: zeigt exakt auf den deployten Commit
# (…/commit/<sha>). „Werkbaum" selbst verlinkt weiter die Repo-
# Startseite. Braucht die volle Historie (fetch-depth: 0).
- name: Site zusammenstellen
run: |
MAJORMINOR="$(tr -d '[:space:]' < VERSION)"
@@ -66,11 +68,13 @@ jobs:
[ -z "$BASE" ] && BASE="$(git rev-list --max-parents=0 HEAD | tail -1)"
MICRO="$(git rev-list --count "${BASE}..HEAD")" # Commits seit dem Bump
BUILD_VERSION="${MAJORMINOR}.${MICRO}"
echo "Footer-Version: ${BUILD_VERSION}"
COMMIT_URL="https://github.com/mhoennig/werkbaum/commit/$(git rev-parse HEAD)"
echo "Footer-Version: ${BUILD_VERSION} -> ${COMMIT_URL}"
mkdir -p site/docs/brand
sed -e 's#\.\./docs/brand/#docs/brand/#g' \
-e 's#\.\./LICENSE#LICENSE#g' \
-e "s#>Werkbaum [0-9][0-9.]*</a>#>Werkbaum ${BUILD_VERSION}</a>#" \
-e "s#\(<a class=\"ver\" href=\"\)[^\"]*#\1${COMMIT_URL}#" \
-e "s#\(<a class=\"ver\"[^>]*>\)[0-9.]\+</a>#\1${BUILD_VERSION}</a>#" \
frontend/index.html > site/index.html
cp docs/brand/* site/docs/brand/
cp LICENSE site/LICENSE
+4 -2
View File
@@ -65,8 +65,10 @@ Beim Zusammenstellen setzt der Workflow zudem die Versionsnummer im Footer:
gepflegt), die **Micro-Stelle** aus der Zahl der Commits seit diesem letzten
Bump — sie steigt also mit jedem Commit und beginnt nach einem Bump wieder bei
`0` (`Werkbaum 1.0.0`, `1.0.1`, … dann `VERSION` auf `1.1` bumpen → `1.1.0`). Es
wird nichts ins Repo zurückgeschrieben. Lokal geöffnet zeigt der Editor den
Platzhalter aus dem Quelltext (`Werkbaum 1.0`).
wird nichts ins Repo zurückgeschrieben. Im Footer verlinkt der Name **Werkbaum**
die Repo-Startseite, die **Versionsnummer** genau den zugehörigen Commit
(`…/commit/<sha>`). Lokal geöffnet zeigt der Editor den Platzhalter aus dem
Quelltext (`Werkbaum 1.0`).
**Einmalige Einrichtung:** In den Repo-Settings unter **Pages** als **Source**
„GitHub Actions" wählen. Das Repo muss dafür **öffentlich** sein (GitHub Pages
+4 -2
View File
@@ -67,8 +67,10 @@ While assembling the site, the workflow also stamps the version into the footer:
commit"), and the **micro** part is the number of commits since that last bump —
so it grows with every commit and resets to `0` right after a bump
(`Werkbaum 1.0.0`, `1.0.1`, … then bump `VERSION` to `1.1``1.1.0`). Nothing is
written back to the repo. Opened locally, the editor shows the source
placeholder (`Werkbaum 1.0`).
written back to the repo. In the footer the name **Werkbaum** links to the
repository, while the **version number** links to that exact commit
(`…/commit/<sha>`). Opened locally, the editor shows the source placeholder
(`Werkbaum 1.0`).
**One-time setup:** In the repo settings under **Pages**, select **Source** =
"GitHub Actions". The repo must be **public** for this (GitHub Pages via Actions
+3 -1
View File
@@ -131,7 +131,9 @@ reproduzierbar, monoton, ohne zurückgeschriebenen Commit/Tag und ohne
selbstauslösenden Deploy-Zyklus. Die Micro-Stelle beginnt nach jedem Bump wieder
bei 0 (SemVer-artig). Nötig ist ein vollständiger Klon (`fetch-depth: 0`), sonst
zählt der flache CI-Klon nur einen Commit. `1.0` bleibt die Version beim lokalen
Öffnen (Platzhalter im Quelltext).
Öffnen (Platzhalter im Quelltext). Im Footer sind Name und Nummer **getrennte
Links**: „Werkbaum" → Repo-Startseite, die Versionsnummer (`<a class="ver">`) →
exakt der deployte Commit (`…/commit/<sha>`, im Build via `git rev-parse HEAD`).
(Nummerierung: D15 war bereits für den kompakten Modus vergeben, daher D16.)
+1 -1
View File
@@ -650,7 +650,7 @@
</div>
</div>
<footer class="site-footer"><a href="https://github.com/mhoennig/werkbaum" target="_blank" rel="noopener">Werkbaum 1.0</a> © 2026 <a href="https://michael.hoennig.de" target="_blank" rel="noopener">Michael Hönnig</a> · <span class="vibe" title="Fable 5 and Opus 4.8">Vibe-Coded with Claude Code</span> <a href="../LICENSE" target="_blank" rel="noopener">MIT-License</a> · <a href="https://michael.hoennig.de/imprint.html" target="_blank" rel="noopener" data-i18n="imprint">Impressum</a></footer>
<footer class="site-footer"><a href="https://github.com/mhoennig/werkbaum" target="_blank" rel="noopener">Werkbaum</a>&nbsp;<a class="ver" href="https://github.com/mhoennig/werkbaum/commits/main" target="_blank" rel="noopener">1.0</a> © 2026 <a href="https://michael.hoennig.de" target="_blank" rel="noopener">Michael Hönnig</a> · <span class="vibe" title="Fable 5 and Opus 4.8">Vibe-Coded with Claude Code</span> <a href="../LICENSE" target="_blank" rel="noopener">MIT-License</a> · <a href="https://michael.hoennig.de/imprint.html" target="_blank" rel="noopener" data-i18n="imprint">Impressum</a></footer>
<script>
const INITIAL = `%% Project structure Sprint 14