Rename: GCBoK.WebStaticBuilder → GitCover.WebStaticBuilder

Das Tool stammt aus der GitCover OSS-Toolbox, nicht aus dem GCBoK-
Website-Projekt. Namespace, csproj-Dateiname, Assembly-Beschreibung,
install.sh, README, AGENTS, LICENSE, MEMORY, SKILLS, docs, plans, diary,
example-Site und alle Source-Dateien aktualisiert.

Legitime Bezüge auf die GCBoK-Website (als Anwendungsfall/Kunde) bleiben
erhalten ('GCBoK-Website', 'GCBoK bauen').
This commit is contained in:
2026-07-11 17:37:50 +02:00
parent ca34a5f866
commit 78063da79c
30 changed files with 56 additions and 56 deletions
+2 -2
View File
@@ -1,4 +1,4 @@
# GCBoK.WebStaticBuilder — Agent Skills # GitCover.WebStaticBuilder — Agent Skills
Quelle der Wahrheit für Agenten-Kollaboration an diesem Tool. Quelle der Wahrheit für Agenten-Kollaboration an diesem Tool.
@@ -15,7 +15,7 @@ dotnet bin/Release/net10.0/webstatic.dll serve --port 8000
``` ```
## Konventionen ## Konventionen
- Namespace `GCBoK.WebStaticBuilder`; `Program.cs` braucht `using GCBoK.WebStaticBuilder;`. - Namespace `GitCover.WebStaticBuilder`; `Program.cs` braucht `using GitCover.WebStaticBuilder;`.
- Package-Versionen explizit pinnen; `<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>` gesetzt. - Package-Versionen explizit pinnen; `<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>` gesetzt.
- Pfade generisch über `Directories` + `BuildConfig.Paths` (nie `www/` hartkodieren). - Pfade generisch über `Directories` + `BuildConfig.Paths` (nie `www/` hartkodieren).
- i18n via `{{ i18n.* }}` + `i18n.json` (Fallback EN). - i18n via `{{ i18n.* }}` + `i18n.json` (Fallback EN).
+3 -3
View File
@@ -1,4 +1,4 @@
# AGENTS — GCBoK.WebStaticBuilder # AGENTS — GitCover.WebStaticBuilder
Guidelines für KI-Agenten, die an diesem Tool (nicht an der GCBoK-Website) arbeiten. Guidelines für KI-Agenten, die an diesem Tool (nicht an der GCBoK-Website) arbeiten.
@@ -17,7 +17,7 @@ dotnet bin/Release/net10.0/webstatic.dll serve --port 8000 # lokale V
``` ```
## Konventionen ## Konventionen
- **Namespace:** `GCBoK.WebStaticBuilder` (jede `.cs` in `src/` deklariert ihn; `Program.cs` nutzt `using GCBoK.WebStaticBuilder;`). - **Namespace:** `GitCover.WebStaticBuilder` (jede `.cs` in `src/` deklariert ihn; `Program.cs` nutzt `using GitCover.WebStaticBuilder;`).
- **Packages:** `Markdig`, `YamlDotNet` (Versionen **explizit** gepinnt — CPM ist deaktiviert via `<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>`). - **Packages:** `Markdig`, `YamlDotNet` (Versionen **explizit** gepinnt — CPM ist deaktiviert via `<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>`).
- **Keine unversionierten `PackageReference`** (führt zu NU1015). - **Keine unversionierten `PackageReference`** (führt zu NU1015).
- **Config-Priorität:** CLI-Flags > `webstatic.json` > eingebaute Defaults (`BuildConfig.Defaults()`). - **Config-Priorität:** CLI-Flags > `webstatic.json` > eingebaute Defaults (`BuildConfig.Defaults()`).
@@ -42,7 +42,7 @@ Mismatch:
1. **`README.md`** — Block-Quote `> **Version: X.Y.Z**` direkt unter dem Titel 1. **`README.md`** — Block-Quote `> **Version: X.Y.Z**` direkt unter dem Titel
(kanonisch; per `git show origin/main:README.md` remote sichtbar) (kanonisch; per `git show origin/main:README.md` remote sichtbar)
2. **`GCBoK.WebStaticBuilder.csproj`** — `<Version>X.Y.Z</Version>` (Assembly) 2. **`GitCover.WebStaticBuilder.csproj`** — `<Version>X.Y.Z</Version>` (Assembly)
3. **`webstatic --version`** — gibt Assembly-Version aus, vergleicht mit README 3. **`webstatic --version`** — gibt Assembly-Version aus, vergleicht mit README
und remote Commit-Hash (`git ls-remote origin HEAD`) und remote Commit-Hash (`git ls-remote origin HEAD`)
@@ -5,11 +5,11 @@
<TargetFramework>net10.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<RootNamespace>GCBoK.WebStaticBuilder</RootNamespace> <RootNamespace>GitCover.WebStaticBuilder</RootNamespace>
<AssemblyName>webstatic</AssemblyName> <AssemblyName>webstatic</AssemblyName>
<Version>1.0.0</Version> <Version>1.0.0</Version>
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally> <ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
<Description>GCBoK.WebStaticBuilder — Static site generator for multilingual, SEO-friendly, compliance-friendly websites (OSS, MIT).</Description> <Description>GitCover.WebStaticBuilder — Static site generator for multilingual, SEO-friendly, compliance-friendly websites (OSS, MIT).</Description>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
+1 -1
View File
@@ -26,7 +26,7 @@ SOFTWARE.
This software uses the following third-party NuGet packages. Their license This software uses the following third-party NuGet packages. Their license
terms apply to the respective portions of the distributed binaries. The source terms apply to the respective portions of the distributed binaries. The source
code of GCBoK.WebStaticBuilder itself remains under the MIT license above. code of GitCover.WebStaticBuilder itself remains under the MIT license above.
### Markdig ### Markdig
+2 -2
View File
@@ -1,10 +1,10 @@
# MEMORY — GCBoK.WebStaticBuilder # MEMORY — GitCover.WebStaticBuilder
Persistentes Gedächtnis für das Tool-Projekt (nicht die GCBoK-Website). Persistentes Gedächtnis für das Tool-Projekt (nicht die GCBoK-Website).
## Status (2026-07-11) ## Status (2026-07-11)
- Phase 0 + 1 abgeschlossen: Tool eigenständig unter `/mnt/brx5/work/OSS/build_webstatic`, - Phase 0 + 1 abgeschlossen: Tool eigenständig unter `/mnt/brx5/work/OSS/build_webstatic`,
umbenannt zu `GCBoK.WebStaticBuilder`, Python/`build.csx` entfernt, Build verifiziert umbenannt zu `GitCover.WebStaticBuilder`, Python/`build.csx` entfernt, Build verifiziert
(webstatic.example baut de/en/vi mit i18n, Pagefind, Mermaid). (webstatic.example baut de/en/vi mit i18n, Pagefind, Mermaid).
- Phase 25 ausstehend (siehe plans/00-produkt-webstatic.md). - Phase 25 ausstehend (siehe plans/00-produkt-webstatic.md).
+5 -5
View File
@@ -1,7 +1,7 @@
# GCBoK.WebStaticBuilder # GitCover.WebStaticBuilder
> **Version: 1.0.0** — Diese Versionsnummer steht in `README.md` (kanonisch), > **Version: 1.0.0** — Diese Versionsnummer steht in `README.md` (kanonisch),
> in `GCBoK.WebStaticBuilder.csproj` (`<Version>`) und wird von `webstatic --version` > in `GitCover.WebStaticBuilder.csproj` (`<Version>`) und wird von `webstatic --version`
> ausgegeben. Alle drei Quellen müssen synchron gehalten werden. > ausgegeben. Alle drei Quellen müssen synchron gehalten werden.
Eigenständiger, quelloffener **Static-Site-Generator** der GitCover Commons für Eigenständiger, quelloffener **Static-Site-Generator** der GitCover Commons für
@@ -78,7 +78,7 @@ für jeden Release-Commit):
1. **`README.md`** — Block-Quote direkt unter dem Titel (kanonisch, per Remote 1. **`README.md`** — Block-Quote direkt unter dem Titel (kanonisch, per Remote
via `git show origin/main:README.md` sichtbar) via `git show origin/main:README.md` sichtbar)
2. **`GCBoK.WebStaticBuilder.csproj`** — `<Version>1.0.0</Version>` (Assembly) 2. **`GitCover.WebStaticBuilder.csproj`** — `<Version>1.0.0</Version>` (Assembly)
3. **`webstatic --version`** — gibt die Assembly-Version aus 3. **`webstatic --version`** — gibt die Assembly-Version aus
So kann vor einem Update sowohl lokal (im Installations-Repo) als auch remote So kann vor einem Update sowohl lokal (im Installations-Repo) als auch remote
@@ -99,7 +99,7 @@ git -C /opt/GitCover/webstatic show origin/main:README.md | head -3
```bash ```bash
webstatic --version webstatic --version
# GCBoK.WebStaticBuilder 1.0.0.0 # GitCover.WebStaticBuilder 1.0.0.0
# commit: 6ca8167 (local) # commit: 6ca8167 (local)
# remote: ff634a3 # remote: ff634a3
# #
@@ -137,7 +137,7 @@ Entwürfe überschreiben niemals Quelldateien.
plans/ Produktplan & Folgepläne plans/ Produktplan & Folgepläne
docs/ Anleitungen (KMU, Admin) docs/ Anleitungen (KMU, Admin)
diary/ Entwicklungs-Tagebuch diary/ Entwicklungs-Tagebuch
src/ C#-Quellcode (GCBoK.WebStaticBuilder) src/ C#-Quellcode (GitCover.WebStaticBuilder)
tests/ (künftig) Unit/Integrationstests tests/ (künftig) Unit/Integrationstests
webstatic.example/ Vorlage-Site für KMU webstatic.example/ Vorlage-Site für KMU
install.sh KMU-Installation install.sh KMU-Installation
+2 -2
View File
@@ -1,4 +1,4 @@
# SKILLS — GCBoK.WebStaticBuilder # SKILLS — GitCover.WebStaticBuilder
Fähigkeiten und wiederkehrende Arbeitsmuster für dieses Tool. Fähigkeiten und wiederkehrende Arbeitsmuster für dieses Tool.
@@ -9,7 +9,7 @@ Fähigkeiten und wiederkehrende Arbeitsmuster für dieses Tool.
## Häufige Fehler ## Häufige Fehler
- **NU1015** (keine Package-Version): CPM aktiv → Versionen in csproj pinnen + `<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>`. - **NU1015** (keine Package-Version): CPM aktiv → Versionen in csproj pinnen + `<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>`.
- **CS0103** in `Program.cs`: Typen aus `GCBoK.WebStaticBuilder` nicht sichtbar → `using GCBoK.WebStaticBuilder;` oben in `Program.cs`. - **CS0103** in `Program.cs`: Typen aus `GitCover.WebStaticBuilder` nicht sichtbar → `using GitCover.WebStaticBuilder;` oben in `Program.cs`.
- **CS8361** (Ternär in String-Interpolation): Tertiär-Ausdruck in `(...)` setzen oder vorab in Variable auslagern. - **CS8361** (Ternär in String-Interpolation): Tertiär-Ausdruck in `(...)` setzen oder vorab in Variable auslagern.
- **StringBuilder statt string** bei `Replace(...)`: Rückgabe von `BuildSectionsHtml` ist `string`. - **StringBuilder statt string** bei `Replace(...)`: Rückgabe von `BuildSectionsHtml` ist `string`.
+2 -2
View File
@@ -1,10 +1,10 @@
# Entwicklungs-Tagebuch — GCBoK.WebStaticBuilder # Entwicklungs-Tagebuch — GitCover.WebStaticBuilder
## 2026-07-11 — Phase 0/1: Eigenständiges Tool ## 2026-07-11 — Phase 0/1: Eigenständiges Tool
- Dev-Repo `/mnt/brx5/work/OSS/build_webstatic` aus `www/build` (Submodul `OSS/build_webstatic`) angelegt. - Dev-Repo `/mnt/brx5/work/OSS/build_webstatic` aus `www/build` (Submodul `OSS/build_webstatic`) angelegt.
- Python-Legacy (`build.py`, `i18n.py`, `sections.py`, `utils.py`, `simple_build.py`) und - Python-Legacy (`build.py`, `i18n.py`, `sections.py`, `utils.py`, `simple_build.py`) und
`build.csx` entfernt; Verzeichnisstruktur `plans/ docs/ diary/ src/ tests/ webstatic.example/` erstellt. `build.csx` entfernt; Verzeichnisstruktur `plans/ docs/ diary/ src/ tests/ webstatic.example/` erstellt.
- Umbenennung `GCBoK.Build``GCBoK.WebStaticBuilder` (csproj/Assembly `webstatic`). - Umbenennung `GitCover.WebStaticBuilder``GitCover.WebStaticBuilder` (csproj/Assembly `webstatic`).
- Config-Modell `BuildConfig` (CLI > webstatic.json > Defaults), generische Pfade (`Directories`), - Config-Modell `BuildConfig` (CLI > webstatic.json > Defaults), generische Pfade (`Directories`),
Umgebungen `work/review/staging/deploy` (Aliase `--preview/--staging/--deploy`). Umgebungen `work/review/staging/deploy` (Aliase `--preview/--staging/--deploy`).
- i18n: `i18n.py``I18n.cs` (JSON `i18n.json`), `{{ i18n.* }}`-Substitution + `{{ lang_links }}`. - i18n: `i18n.py``I18n.cs` (JSON `i18n.json`), `{{ i18n.* }}`-Substitution + `{{ lang_links }}`.
+1 -1
View File
@@ -1,6 +1,6 @@
# Getting Started (KMU) # Getting Started (KMU)
Diese Anleitung beschreibt, wie Sie mit **GCBoK.WebStaticBuilder** eine eigene, Diese Anleitung beschreibt, wie Sie mit **GitCover.WebStaticBuilder** eine eigene,
mehrsprachige, statische Website erstellen — ohne Server, Datenbank oder mehrsprachige, statische Website erstellen — ohne Server, Datenbank oder
JavaScript-Framework. JavaScript-Framework.
+7 -7
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# GCBoK.WebStaticBuilder — Installationsskript # GitCover.WebStaticBuilder — Installationsskript
# Installiert das Tool per-user (Default: ~/.local/share/GitCover/webstatic) und # Installiert das Tool per-user (Default: ~/.local/share/GitCover/webstatic) und
# legt einen ausfuehrbaren Wrapper `webstatic` nach ~/.local/bin. Idempotent. # legt einen ausfuehrbaren Wrapper `webstatic` nach ~/.local/bin. Idempotent.
# Kein sudo noetig (Spiegelbild des hermes-agent-Update-Konzepts: user-owned # Kein sudo noetig (Spiegelbild des hermes-agent-Update-Konzepts: user-owned
@@ -32,7 +32,7 @@ BIN_DIR="${WEBSTATIC_BIN_DIR:-${XDG_BIN_HOME:-$HOME/.local/bin}}"
BIN_LINK="$BIN_DIR/webstatic" BIN_LINK="$BIN_DIR/webstatic"
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo "== GCBoK.WebStaticBuilder Installer ==" echo "== GitCover.WebStaticBuilder Installer =="
echo "Modus: $INSTALL_MODE" echo "Modus: $INSTALL_MODE"
echo "Installationsziel: $INSTALL_DIR" echo "Installationsziel: $INSTALL_DIR"
echo "Launcher: $BIN_LINK" echo "Launcher: $BIN_LINK"
@@ -45,9 +45,9 @@ if [ "${1:-}" = "--update" ]; then
[ -n "$(git status --porcelain)" ] && git stash [ -n "$(git status --porcelain)" ] && git stash
git pull git pull
{ [ -n "$(git stash list)" ] && git stash pop; } || true { [ -n "$(git stash list)" ] && git stash pop; } || true
dotnet build "$INSTALL_DIR/GCBoK.WebStaticBuilder.csproj" -c Release -v minimal dotnet build "$INSTALL_DIR/GitCover.WebStaticBuilder.csproj" -c Release -v minimal
else else
dotnet build "$REPO_DIR/GCBoK.WebStaticBuilder.csproj" -c Release -v minimal dotnet build "$REPO_DIR/GitCover.WebStaticBuilder.csproj" -c Release -v minimal
rm -rf "$INSTALL_DIR/bin" rm -rf "$INSTALL_DIR/bin"
cp -r "$REPO_DIR/bin/Release/net10.0/." "$INSTALL_DIR/" cp -r "$REPO_DIR/bin/Release/net10.0/." "$INSTALL_DIR/"
fi fi
@@ -83,11 +83,11 @@ if [ "$INSTALL_MODE" = "clone" ]; then
echo "Remote 'origin' -> $SRC_REMOTE" echo "Remote 'origin' -> $SRC_REMOTE"
fi fi
fi fi
BUILD_PROJECT="$INSTALL_DIR/GCBoK.WebStaticBuilder.csproj" BUILD_PROJECT="$INSTALL_DIR/GitCover.WebStaticBuilder.csproj"
DLL="$INSTALL_DIR/bin/Release/net10.0/webstatic.dll" DLL="$INSTALL_DIR/bin/Release/net10.0/webstatic.dll"
else else
echo "== Copy-Modus: baue Release aus $REPO_DIR ==" echo "== Copy-Modus: baue Release aus $REPO_DIR =="
dotnet build "$REPO_DIR/GCBoK.WebStaticBuilder.csproj" -c Release -v minimal dotnet build "$REPO_DIR/GitCover.WebStaticBuilder.csproj" -c Release -v minimal
echo "== Kopiere nach $INSTALL_DIR ==" echo "== Kopiere nach $INSTALL_DIR =="
mkdir -p "$INSTALL_DIR" mkdir -p "$INSTALL_DIR"
rm -rf "$INSTALL_DIR/bin" "$INSTALL_DIR/webstatic.example" 2>/dev/null || true rm -rf "$INSTALL_DIR/bin" "$INSTALL_DIR/webstatic.example" 2>/dev/null || true
@@ -96,7 +96,7 @@ else
for f in LICENSE README.md docs plans AGENTS.md MEMORY.md SKILLS.md; do for f in LICENSE README.md docs plans AGENTS.md MEMORY.md SKILLS.md; do
[ -e "$REPO_DIR/$f" ] && cp -r "$REPO_DIR/$f" "$INSTALL_DIR/" 2>/dev/null || true [ -e "$REPO_DIR/$f" ] && cp -r "$REPO_DIR/$f" "$INSTALL_DIR/" 2>/dev/null || true
done done
BUILD_PROJECT="$REPO_DIR/GCBoK.WebStaticBuilder.csproj" BUILD_PROJECT="$REPO_DIR/GitCover.WebStaticBuilder.csproj"
DLL="$INSTALL_DIR/webstatic.dll" DLL="$INSTALL_DIR/webstatic.dll"
fi fi
+4 -4
View File
@@ -1,10 +1,10 @@
# GCBoK.WebStaticBuilder — Produktbeschreibung & Umsetzungsplan # GitCover.WebStaticBuilder — Produktbeschreibung & Umsetzungsplan
> Status: Implementierung (Phase 1 abgeschlossen, Build verifiziert). Eigenständiges OSS-Static-Site-Tool der GitCover Commons. > Status: Implementierung (Phase 1 abgeschlossen, Build verifiziert). Eigenständiges OSS-Static-Site-Tool der GitCover Commons.
> Lizenz: MIT. Sprachen: C# / .NET 10 (keine Python-Abhängigkeiten). > Lizenz: MIT. Sprachen: C# / .NET 10 (keine Python-Abhängigkeiten).
## 1. Zweck ## 1. Zweck
`GCBoK.WebStaticBuilder` (CLI-Befehl `webstatic`) ist ein schlanker, kompilierter Static-Site-Generator für mehrsprachige, SEO-optimierte, compliance-freundliche Websites. Er liest Markdown-Quellen mit YAML-Frontmatter, rendert sie pro Sprache zu statischem HTML, erzeugt Navigation, SEO-Kopf (OpenGraph/JSON-LD), Sitemap, robots.txt und einen client-seitigen Volltextindex (Pagefind) — ohne Server, Datenbank oder Build-Service. `GitCover.WebStaticBuilder` (CLI-Befehl `webstatic`) ist ein schlanker, kompilierter Static-Site-Generator für mehrsprachige, SEO-optimierte, compliance-freundliche Websites. Er liest Markdown-Quellen mit YAML-Frontmatter, rendert sie pro Sprache zu statischem HTML, erzeugt Navigation, SEO-Kopf (OpenGraph/JSON-LD), Sitemap, robots.txt und einen client-seitigen Volltextindex (Pagefind) — ohne Server, Datenbank oder Build-Service.
Das Tool ist die Verallgemeinerung des Builders, der die GCBoK-Website erzeugt, und soll es insbesondere **KMU-Anwendern** ermöglichen, eigene Websites nach derselben Funktionsweise zu erstellen. Das Tool ist die Verallgemeinerung des Builders, der die GCBoK-Website erzeugt, und soll es insbesondere **KMU-Anwendern** ermöglichen, eigene Websites nach derselben Funktionsweise zu erstellen.
@@ -74,7 +74,7 @@ build_webstatic/
plans/ # dieser Plan + Folgepläne plans/ # dieser Plan + Folgepläne
docs/ # Anleitungen (KMU, Admin) docs/ # Anleitungen (KMU, Admin)
diary/ # Entwicklungs-Tagebuch / Changelog diary/ # Entwicklungs-Tagebuch / Changelog
src/ # C#-Quellcode (GCBoK.WebStaticBuilder) src/ # C#-Quellcode (GitCover.WebStaticBuilder)
tests/ # (künftig) Unit/Integrationstests tests/ # (künftig) Unit/Integrationstests
webstatic.example/ # Vorlage-Site für KMU webstatic.example/ # Vorlage-Site für KMU
install.sh README.md LICENSE (MIT) AGENTS.md MEMORY.md SKILLS.md install.sh README.md LICENSE (MIT) AGENTS.md MEMORY.md SKILLS.md
@@ -86,7 +86,7 @@ build_webstatic/
## 13. Umsetzungsphasen ## 13. Umsetzungsphasen
- **Phase 0 — Dev-Setup:** `build_webstatic` auf `/mnt/brx5/work/OSS/build_webstatic` (kopiert aus `www/build`, Python/`build.csx` entfernt, Verzeichnisstruktur plans/docs/diary/src/tests). - **Phase 0 — Dev-Setup:** `build_webstatic` auf `/mnt/brx5/work/OSS/build_webstatic` (kopiert aus `www/build`, Python/`build.csx` entfernt, Verzeichnisstruktur plans/docs/diary/src/tests).
- **Phase 1 — Refactor (DONE):** Umbenennung `GCBoK.WebStaticBuilder`; Python entfernt; Config/Umgebungsmodell; i18n (`I18n.cs` + Platzhalter); MT-Helfer; Pagefind; `webstatic.example`; `install.sh`; Docs/LIZENZ. Build & Verify auf Beispielsite ✓. - **Phase 1 — Refactor (DONE):** Umbenennung `GitCover.WebStaticBuilder`; Python entfernt; Config/Umgebungsmodell; i18n (`I18n.cs` + Platzhalter); MT-Helfer; Pagefind; `webstatic.example`; `install.sh`; Docs/LIZENZ. Build & Verify auf Beispielsite ✓.
- **Phase 2 — Install & Verify:** `install.sh``/opt/GitCover/webstatic`; Standalone-Smoke-Test. - **Phase 2 — Install & Verify:** `install.sh``/opt/GitCover/webstatic`; Standalone-Smoke-Test.
- **Phase 3 — Website-Repo:** Submodul `www/build` entfernen; `www/build.sh` durch Bash ersetzen; alle Docs (AGENTS/MEMORY/SKILLS/CONTEXT/README/docs/DEPLOYMENT/oss/*/.hermes) auf neuen Pfad/Tool/Umgebungen/kein-Python aktualisieren; GCBoK-Preview-Build + Dead-Link-Check. - **Phase 3 — Website-Repo:** Submodul `www/build` entfernen; `www/build.sh` durch Bash ersetzen; alle Docs (AGENTS/MEMORY/SKILLS/CONTEXT/README/docs/DEPLOYMENT/oss/*/.hermes) auf neuen Pfad/Tool/Umgebungen/kein-Python aktualisieren; GCBoK-Preview-Build + Dead-Link-Check.
- **Phase 4 — Onboarding:** `init`/`serve`/`build` als KMU-Flow (Konzept finalisieren). - **Phase 4 — Onboarding:** `init`/`serve`/`build` als KMU-Flow (Konzept finalisieren).
+1 -1
View File
@@ -1,6 +1,6 @@
using System.Text.Json; using System.Text.Json;
namespace GCBoK.WebStaticBuilder; namespace GitCover.WebStaticBuilder;
/// <summary>Per-language configuration.</summary> /// <summary>Per-language configuration.</summary>
public class LanguageConfig public class LanguageConfig
+1 -1
View File
@@ -2,7 +2,7 @@ using System.Diagnostics;
using System.Text; using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
namespace GCBoK.WebStaticBuilder; namespace GitCover.WebStaticBuilder;
/// <summary>Main build orchestrator.</summary> /// <summary>Main build orchestrator.</summary>
public static class Builder public static class Builder
+1 -1
View File
@@ -2,7 +2,7 @@ using System.Text.RegularExpressions;
using YamlDotNet.Serialization; using YamlDotNet.Serialization;
using YamlDotNet.Serialization.NamingConventions; using YamlDotNet.Serialization.NamingConventions;
namespace GCBoK.WebStaticBuilder; namespace GitCover.WebStaticBuilder;
/// <summary>Content loading and YAML frontmatter parsing.</summary> /// <summary>Content loading and YAML frontmatter parsing.</summary>
public static class ContentLoader public static class ContentLoader
+1 -1
View File
@@ -1,4 +1,4 @@
namespace GCBoK.WebStaticBuilder; namespace GitCover.WebStaticBuilder;
/// <summary> /// <summary>
/// Resolved filesystem paths for a build, derived from <see cref="BuildConfig.Paths"/> /// Resolved filesystem paths for a build, derived from <see cref="BuildConfig.Paths"/>
+1 -1
View File
@@ -2,7 +2,7 @@ using System.Text.Json;
using System.Text.Json.Nodes; using System.Text.Json.Nodes;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
namespace GCBoK.WebStaticBuilder; namespace GitCover.WebStaticBuilder;
/// <summary> /// <summary>
/// UI localization. Loads an <c>i18n.json</c> dictionary and substitutes /// UI localization. Loads an <c>i18n.json</c> dictionary and substitutes
+1 -1
View File
@@ -5,7 +5,7 @@ using Markdig.Extensions.Tables;
using Markdig.Syntax; using Markdig.Syntax;
using Markdig.Syntax.Inlines; using Markdig.Syntax.Inlines;
namespace GCBoK.WebStaticBuilder; namespace GitCover.WebStaticBuilder;
/// <summary> /// <summary>
/// Renders a Markdig AST to ANSI-styled console output. No external /// Renders a Markdig AST to ANSI-styled console output. No external
+1 -1
View File
@@ -1,7 +1,7 @@
using Markdig; using Markdig;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
namespace GCBoK.WebStaticBuilder; namespace GitCover.WebStaticBuilder;
/// <summary>Markdown processing with Markdig and post-processing.</summary> /// <summary>Markdown processing with Markdig and post-processing.</summary>
public static class MarkdownProcessor public static class MarkdownProcessor
+1 -1
View File
@@ -1,6 +1,6 @@
using YamlDotNet.Serialization; using YamlDotNet.Serialization;
namespace GCBoK.WebStaticBuilder; namespace GitCover.WebStaticBuilder;
/// <summary>Metadata parsed from a Markdown file's YAML frontmatter.</summary> /// <summary>Metadata parsed from a Markdown file's YAML frontmatter.</summary>
public class PageMeta public class PageMeta
+5 -5
View File
@@ -1,7 +1,7 @@
using System.Diagnostics; using System.Diagnostics;
using System.Net; using System.Net;
using System.Text; using System.Text;
using GCBoK.WebStaticBuilder; using GitCover.WebStaticBuilder;
var argsList = args.ToList(); var argsList = args.ToList();
@@ -117,7 +117,7 @@ var env = cfg.Environments.TryGetValue(envName, out var e)
if (Val("--base-url") is { } bu2) env.BaseUrl = bu2; if (Val("--base-url") is { } bu2) env.BaseUrl = bu2;
if (Val("--cdn") is { } cdn2) env.Cdn = cdn2; if (Val("--cdn") is { } cdn2) env.Cdn = cdn2;
if (verbose) Console.WriteLine($"GCBoK.WebStaticBuilder — building (env={envName})"); if (verbose) Console.WriteLine($"GitCover.WebStaticBuilder — building (env={envName})");
var ok = Builder.Build(cfg, env, envName, verbose, dryRun); var ok = Builder.Build(cfg, env, envName, verbose, dryRun);
if (!ok) if (!ok)
{ {
@@ -128,7 +128,7 @@ Console.WriteLine("Build completed successfully.");
static void PrintHelp() static void PrintHelp()
{ {
Console.WriteLine(@"GCBoK.WebStaticBuilder — Statischer, mehrsprachiger Website-Generator Console.WriteLine(@"GitCover.WebStaticBuilder — Statischer, mehrsprachiger Website-Generator
Aufruf: Aufruf:
webstatic build [Optionen] Website bauen webstatic build [Optionen] Website bauen
@@ -249,7 +249,7 @@ static void UpdateSelf(bool verbose)
} }
} }
Console.WriteLine("== Baue Release =="); Console.WriteLine("== Baue Release ==");
RunProcess("dotnet", $"build \"{Path.Combine(repo, "GCBoK.WebStaticBuilder.csproj")}\" -c Release -v minimal", repo); RunProcess("dotnet", $"build \"{Path.Combine(repo, "GitCover.WebStaticBuilder.csproj")}\" -c Release -v minimal", repo);
Console.WriteLine("Update abgeschlossen."); Console.WriteLine("Update abgeschlossen.");
} }
@@ -413,7 +413,7 @@ static void PrintVersion(bool verbose)
{ {
var v = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; var v = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
var asmVersion = v?.ToString() ?? "0.0.0"; var asmVersion = v?.ToString() ?? "0.0.0";
Console.WriteLine($"GCBoK.WebStaticBuilder {asmVersion}"); Console.WriteLine($"GitCover.WebStaticBuilder {asmVersion}");
// README.md version check — canonical source is the block-quote // README.md version check — canonical source is the block-quote
// "> **Version: X.Y.Z**" directly under the title. // "> **Version: X.Y.Z**" directly under the title.
+1 -1
View File
@@ -1,6 +1,6 @@
using System.Text; using System.Text;
namespace GCBoK.WebStaticBuilder; namespace GitCover.WebStaticBuilder;
/// <summary>SEO header generation (title, meta, OpenGraph, Twitter, canonical, favicons).</summary> /// <summary>SEO header generation (title, meta, OpenGraph, Twitter, canonical, favicons).</summary>
public static class SeoHelper public static class SeoHelper
+1 -1
View File
@@ -1,4 +1,4 @@
namespace GCBoK.WebStaticBuilder; namespace GitCover.WebStaticBuilder;
/// <summary>Machine-translation provider (optional, requires an API key via environment).</summary> /// <summary>Machine-translation provider (optional, requires an API key via environment).</summary>
public interface ITranslator public interface ITranslator
+1 -1
View File
@@ -3,7 +3,7 @@ using System.Net.Http.Json;
using System.Text; using System.Text;
using System.Text.Json; using System.Text.Json;
namespace GCBoK.WebStaticBuilder; namespace GitCover.WebStaticBuilder;
/// <summary> /// <summary>
/// Machine-translation helper. Talks to Azure Translator or DeepL over REST /// Machine-translation helper. Talks to Azure Translator or DeepL over REST
+1 -1
View File
@@ -1,7 +1,7 @@
# tests/ # tests/
Dieses Verzeichnis ist für künftige Unit- und Integrationstests des Dieses Verzeichnis ist für künftige Unit- und Integrationstests des
GCBoK.WebStaticBuilder vorgesehen. Es ist derzeit leer. GitCover.WebStaticBuilder vorgesehen. Es ist derzeit leer.
Ein eigener Plan (`plans/02-tests.md`) wird die Test-Strategie festlegen Ein eigener Plan (`plans/02-tests.md`) wird die Test-Strategie festlegen
(xUnit, Test-Runner, Coverage-Ziele, Smoke-Test für `webstatic build`). (xUnit, Test-Runner, Coverage-Ziele, Smoke-Test für `webstatic build`).
+1 -1
View File
@@ -1,4 +1,4 @@
// GCBoK.WebStaticBuilder example theme script. // GitCover.WebStaticBuilder example theme script.
(function () { (function () {
var t = localStorage.getItem('gc-theme') || 'light'; var t = localStorage.getItem('gc-theme') || 'light';
document.documentElement.setAttribute('data-theme', t); document.documentElement.setAttribute('data-theme', t);
+1 -1
View File
@@ -9,6 +9,6 @@ render: true
navbar: false navbar: false
--- ---
# Willkommen bei GCBoK.WebStaticBuilder # Willkommen bei GitCover.WebStaticBuilder
Dies ist der Banner-Block (order 0), der auf der Startseite (Hero/Landing) eingebettet wird. Dies ist der Banner-Block (order 0), der auf der Startseite (Hero/Landing) eingebettet wird.
+1 -1
View File
@@ -11,7 +11,7 @@ navbar: true
## Einführung ## Einführung
Diese Seite wurde mit **GCBoK.WebStaticBuilder** erzeugt — einem statischen, mehrsprachigen Diese Seite wurde mit **GitCover.WebStaticBuilder** erzeugt — einem statischen, mehrsprachigen
Generator für compliance-freundliche Websites (MIT, OSS). Generator für compliance-freundliche Websites (MIT, OSS).
## Funktionen ## Funktionen
+1 -1
View File
@@ -11,7 +11,7 @@ navbar: true
## Über ## Über
GCBoK.WebStaticBuilder ist ein eigenständiges OSS-Tool der GitCover Commons. GitCover.WebStaticBuilder ist ein eigenständiges OSS-Tool der GitCover Commons.
Es erzeugt statische Websites ohne Server, Datenbank oder Build-Service. Es erzeugt statische Websites ohne Server, Datenbank oder Build-Service.
```mermaid ```mermaid
+1 -1
View File
@@ -13,4 +13,4 @@ navbar: false
Beispiel-Website · Ansprechpartner: webmaster@example.org Beispiel-Website · Ansprechpartner: webmaster@example.org
© 2026 Beispiel-Website. Erstellt mit GCBoK.WebStaticBuilder (MIT). © 2026 Beispiel-Website. Erstellt mit GitCover.WebStaticBuilder (MIT).
+3 -3
View File
@@ -11,7 +11,7 @@
}, },
"footer": { "footer": {
"col1_heading": "MEINE WEBSITE", "col1_heading": "MEINE WEBSITE",
"col1_line2": "Ein Beispiel für GCBoK.WebStaticBuilder", "col1_line2": "Ein Beispiel für GitCover.WebStaticBuilder",
"col4_imprint": "Impressum", "col4_imprint": "Impressum",
"bottom_copyright": "© 2026 Meine Website" "bottom_copyright": "© 2026 Meine Website"
} }
@@ -28,7 +28,7 @@
}, },
"footer": { "footer": {
"col1_heading": "MY WEBSITE", "col1_heading": "MY WEBSITE",
"col1_line2": "An example for GCBoK.WebStaticBuilder", "col1_line2": "An example for GitCover.WebStaticBuilder",
"col4_imprint": "Imprint", "col4_imprint": "Imprint",
"bottom_copyright": "© 2026 My Website" "bottom_copyright": "© 2026 My Website"
} }
@@ -45,7 +45,7 @@
}, },
"footer": { "footer": {
"col1_heading": "TRANG WEB CỦA TÔI", "col1_heading": "TRANG WEB CỦA TÔI",
"col1_line2": "Một ví dụ cho GCBoK.WebStaticBuilder", "col1_line2": "Một ví dụ cho GitCover.WebStaticBuilder",
"col4_imprint": "Thông tin pháp lý", "col4_imprint": "Thông tin pháp lý",
"bottom_copyright": "© 2026 Trang web của tôi" "bottom_copyright": "© 2026 Trang web của tôi"
} }