18c2108d81fb11723b643e1edde6a93208ab49f63882e82ae69a671923ef6d56
- Program.cs: --help/--version werden vor Config-Laden und Directories.Init geprüft (verhindert Crashes außerhalb eines Site-Verzeichnisses) - Builder.cs: Pre-flight-Check ob content/ existiert; bei Fehlen klare Fehlermeldung + Exit 1 statt unhandled Exception. Build() gibt bool zurück, Program.cs setzt Environment.ExitCode. - BuildConfig.cs: Default-Environments von work/review/staging/deploy auf development/staging/deploy bereinigt (konsistent mit CLI-Aliasen) - .gitignore: build_log.txt/run_log.txt und webstatic.example/dist/ ignoriert; entsprechende Artefakte aus Git entfernt - tests/README.md: Platzhalter für künftige Test-Strategie - plans/01-offensichtliche-fixes.md: Fix-Plan dokumentiert
GCBoK.WebStaticBuilder
Eigenständiger, quelloffener Static-Site-Generator der GitCover Commons für mehrsprachige, SEO-optimierte, compliance-freundliche Websites. Ersetzt den früheren C#-Builderskript der GCBoK-Website durch ein generisches, für KMU einsetzbares Werkzeug.
- Sprache: C# / .NET 10 (kompilierte Konsole)
- Lizenz: MIT
- Kein Python: einzige externe Abhängigkeit ist
npx pagefind(Suchindex, optional) - Funktionen: Markdown + YAML-Frontmatter → statisches HTML pro Sprache,
Navigation, SEO-Kopf (OpenGraph/JSON-LD),
sitemap.xml,robots.txt, Mermaid-Diagramme, client-seitige Volltextsuche (Pagefind), UI-Lokalisierung über{{ i18n.* }}, optionaler Machine-Translation-Helfer (Entwürfe).
Schnellstart
# Tool bauen
dotnet build -c Release
# Beispiel-Seite erzeugen und bauen
dotnet bin/Release/net10.0/webstatic.dll init mysite
cd mysite
dotnet ../../bin/Release/net10.0/webstatic.dll build --env development
# Lokal ansehen
dotnet ../../bin/Release/net10.0/webstatic.dll serve --port 8000
Umgebungen
--env |
baseUrl (Beispiel) | Zweck |
|---|---|---|
development |
http://localhost:8000 |
Lokale Entwicklung (work/preview/review) |
staging |
https://gcbok.gitcover.org |
Abnahme (brx5) |
deploy |
https://gcbok.org |
Production |
Aliase: --preview / --work / --review = development, --staging = staging, --deploy = deploy.
Konfiguration (webstatic.json)
CLI-Flags haben Vorrang vor webstatic.json, dieses vor eingebauten Defaults.
Siehe webstatic.example/webstatic.json und docs/getting-started.md.
Installation für KMU
./install.sh # -> /opt/GitCover/webstatic, Symlink /usr/local/bin/webstatic
Version & Update
webstatic --version # Assembly-Version + Git-Commit des Installations-Repos
webstatic update # Selbstaktualisierung (Clone-Installation): lokale
# Änderungen werden gestasht, git pull, gemerged, neu gebaut
webstatic update setzt eine Clone-Installation voraus (siehe install.sh,
Default WEBSTATIC_INSTALL_MODE=clone). Bei einer Copy-Installation erfolgt das
Update via erneutem ./install.sh.
Machine Translation (optional)
webstatic translate --check # fehlende Übersetzungen melden
export WEBSTATIC_TRANSLATOR_KEY=... # API-Key (Azure/DeepL)
webstatic translate --draft # Entwürfe nach .translation-drafts/
Entwürfe überschreiben niemals Quelldateien.
Verzeichnisstruktur
plans/ Produktplan & Folgepläne
docs/ Anleitungen (KMU, Admin)
diary/ Entwicklungs-Tagebuch
src/ C#-Quellcode (GCBoK.WebStaticBuilder)
tests/ (künftig) Unit/Integrationstests
webstatic.example/ Vorlage-Site für KMU
install.sh KMU-Installation
Languages
C#
90.9%
Shell
6.2%
HTML
1.5%
CSS
0.9%
JavaScript
0.5%