Dokumentationswerkzeuge
Die Dokumentation wird mit Docusaurus erstellt und befindet sich im Ordner documentation. Die Dokumentation wird auf GitHub Pages gehostet und ist nicht mehr im Docker-Container-Image enthalten.
Ordnerstruktur
documentation/
├── docs/ # Documentation markdown files (English source)
│ ├── api-reference/
│ ├── development/
│ ├── installation/
│ ├── migration/
│ ├── release-notes/
│ └── user-guide/
├── i18n/ # Translations (auto-generated by translation workflow)
│ ├── de/ # German
│ ├── es/ # Spanish
│ ├── fr/ # French
│ ├── hi-Latn/ # Hindi (Roman)
│ ├── pt-BR/ # Brazilian Portuguese
│ └── zh-Hans/ # Simplified Chinese
├── src/ # React components and pages
│ ├── components/ # Custom React components
│ ├── css/ # Custom styles
│ └── pages/ # Additional pages (e.g., 404)
├── static/ # Static assets (images, files)
├── docusaurus.config.ts # Docusaurus configuration
├── sidebars.ts # Sidebar navigation configuration
└── package.json # Dependencies and scripts
Internationalisierung (i18n)
Die Dokumentation nutzt das integrierte i18n-System von Docusaurus mit Englisch als Standard-Locale. Übersetzte Inhalte befinden sich in i18n/{locale}/docusaurus-plugin-content-docs/current/ und spiegeln die Struktur des Ordners docs/ wider.
- Quelldateien:
docs/**/*.md(Englisch) - Übersetzte Dateien:
i18n/{locale}/docusaurus-plugin-content-docs/current/**/*.md - UI-Übersetzungen:
i18n/{locale}/docusaurus-theme-classic/*.jsonund andere JSON-Dateien - Lokalisierte Screenshots:
i18n/{locale}/docusaurus-plugin-content-docs/current/**/assets, generiert durchpnpm take-screenhotsim Basisverzeichnis.
Der Befehl pnpm write-translations extrahiert UI-Texte (aus Docusaurus-Theme und benutzerdefinierten Komponenten) in JSON-Übersetzungsdateien. Das Skript pnpm translate (aus documentation/, delegiert zum Repository-Stamm) führt ai-i18n-tools aus, um Markdown-, JSON- und SVG-Dateien gemäß ai-i18n-tools.config.json zu übersetzen.
Bearbeiten Sie nur Dateien in docs/ und die Quell-JSON-Dateien in i18n/en/. Die übersetzten Markdown-Dateien in i18n/{other-locales}/ werden automatisch generiert und sollten nicht manuell bearbeitet werden.
Unterstützte Gebietsschemas
| Locale | Sprache | Verzeichnis |
|---|---|---|
en-GB | Englisch (Standard) | docs/ (Quelle) |
de | Deutsch | i18n/de/docusaurus-plugin-content-docs/current/ |
es | Spanisch | i18n/es/docusaurus-plugin-content-docs/current/ |
fr | Französisch | i18n/fr/docusaurus-plugin-content-docs/current/ |
hi-Latn | Hindi (Lateinisch) | i18n/hi-Latn/docusaurus-plugin-content-docs/current/ |
pt-BR | Brasilianisches Portugiesisch | i18n/pt-BR/docusaurus-plugin-content-docs/current/ |
zh-Hans | Vereinfachtes Chinesisch | i18n/zh-Hans/docusaurus-plugin-content-docs/current/ |
Dokumentation übersetzen
Die Dokumentation verwendet ein KI-gestütztes Übersetzungssystem, um sowohl Inhalte (Markdown-Dateien) als auch UI-Zeichenfolgen (aus Docusaurus und benutzerdefinierten Komponenten) zu übersetzen. Der Quellinhalt ist auf Englisch (docs/), und es werden Übersetzungen für Deutsch, Französisch, Spanisch, Brasilianisches Portugiesisch, Hindi (Lateinisch) und Vereinfachtes Chinesisch generiert.
Funktionsweise der Übersetzung
- Docusaurus UI-Texte:
pnpm write-translationsextrahiert Theme- und benutzerdefinierte Texte ini18n/en/*.json. - KI-Übersetzung (OpenRouter; Konfiguration in
ai-i18n-tools.config.jsonim Repository-Stamm): ausgehend vondocumentation/führtpnpm translatedas Skripti18n:translateim Stammverzeichnis aus (Übersetzung von UI-Texten, SVGs sowie Docusaurus-Markdown/JSON) indocumentation/i18n/undsrc/locales/gemäß Konfiguration. - Erstellung:
pnpm buildgeneriert statische HTML-Dateien für alle Sprachen unterdocumentation/build/.
Übersetzung ausführen
cd documentation
pnpm translate # Same as repo root: i18n:translate (ui + svg + docs)
pnpm translate:docs
pnpm translate:svg
pnpm translate:ui
pnpm translate:status
CLI-Flags werden von ai-i18n-tools definiert; führen Sie pnpm exec ai-i18n-tools --help im Repository-Stamm aus oder sehen Sie sich den Übersetzungsworkflow an.
Manuelle Übersetzungsüberschreibungen
Bearbeiten Sie documentation/glossary-user.csv (und löschen Sie optional veraltete Einträge unter .translation-cache/ im Repository-Stamm), und führen Sie dann den entsprechenden pnpm translate:*-Befehl erneut aus.
Häufige Befehle
Alle Befehle sollten aus dem Verzeichnis documentation heraus ausgeführt werden:
Entwicklung
Starten Sie den Entwicklungsserver mit Hot-Reload für ein bestimmtes Gebietsschema:
cd documentation
pnpm start:en # English (default)
pnpm start:fr # French
pnpm start:de # German
pnpm start:es # Spanish
pnpm start:pt-br # Brazilian Portuguese
Die Website ist verfügbar unter http://localhost:3000 (oder dem nächsten verfügbaren Port).
Erstellen
Erstellen Sie die Dokumentationswebsite für die Produktion:
cd documentation
pnpm build
Dies erzeugt statische HTML-Dateien im Verzeichnis documentation/build.
Produktions-Build bereitstellen
Zeigen Sie den Produktionsbuild lokal an:
cd documentation
pnpm serve
Dies stellt die erstellte Website aus dem Verzeichnis documentation/build bereit.
Weitere nützliche Befehle
pnpm clear– Docusaurus-Cache löschenpnpm typecheck– TypeScript-Typüberprüfung ausführenpnpm write-heading-ids– Explizite{#id}-Überschriftanker gemäß Docusaurus-Regeln in Markdown schreiben (ausdocumentation/ausführen, um stabile Links über Übersetzungen hinweg zu gewährleisten)
README.md generieren
Die Datei README.md des Projekts wird automatisch aus documentation/docs/intro.md generiert, um die README des GitHub-Repositorys mit der Docusaurus-Dokumentation synchron zu halten.
So generieren oder aktualisieren Sie die Datei README.md:
./scripts/generate-readme-from-intro.sh
Dieses Skript:
- Extrahiert die aktuelle Version aus
package.jsonund fügt ein Versionsbadge hinzu - Kopiert Inhalte aus
documentation/docs/intro.md - Konvertiert Docusaurus-Hinweise (Hinweis, Tipp, Warnung usw.) in GitHub-ähnliche Warnungen
- Konvertiert alle relativen Docusaurus-Links in absolute GitHub-Docs-URLs (
https://wsj-br.github.io/duplistatus/...) - Konvertiert Bildpfade von
/img/nachdocumentation/static/img/zur Kompatibilität mit GitHub - Entfernt den Migrations-IMPORTANT-Block und fügt einen Abschnitt „Migrationsinformationen“ mit einem Link zu den Docusaurus-Dokumenten hinzu
- Erstellt ein Inhaltsverzeichnis mithilfe von
doctoc - Generiert
README_dockerhub.mdmit Docker-Hub-kompatibler Formatierung (wandelt Bilder und Links in absolute URLs um, konvertiert GitHub-Hinweise in Emoji-basiertes Format) - Generiert GitHub-Releasehinweise (
RELEASE_NOTES_github_VERSION.md) ausdocumentation/docs/release-notes/VERSION.md(wandelt Links und Bilder in absolute URLs um)
README für Docker Hub aktualisieren
Das generate-readme-from-intro.sh-Skript generiert automatisch README_dockerhub.md mit Docker-Hub-kompatibler Formatierung. Es:
- Kopiert
README.mdnachREADME_dockerhub.md - Konvertiert relative Bildpfade in absolute GitHub-Roh-URLs
- Konvertiert relative Dokumentlinks in absolute GitHub-Blob-URLs
- Konvertiert GitHub-Style-Hinweise (
[!NOTE],[!WARNING], etc.) in Emoji-basiertes Format für bessere Docker-Hub-Kompatibilität - Stellt sicher, dass alle Bilder und Links auf Docker Hub korrekt funktionieren
GitHub-Versionshinweise generieren
Das generate-readme-from-intro.sh-Skript generiert automatisch GitHub-Releasehinweise beim Ausführen. Es:
- Liest die Releasehinweise aus
documentation/docs/release-notes/VERSION.md(wobei VERSION auspackage.jsonextrahiert wird) - Ändert den Titel von "# Version xxxx" zu "# Release Notes - Version xxxxx"
- Konvertiert relative Markdown-Links in absolute GitHub-Dokumentations-URLs (
https://wsj-br.github.io/duplistatus/...) - Konvertiert Bildpfade in GitHub-Roh-URLs (
https://raw.githubusercontent.com/wsj-br/duplistatus/main/documentation/static/img/...), damit sie in Release-Beschreibungen korrekt angezeigt werden - Verarbeitet relative Pfade mit
../-Präfix - Behält absolute URLs (http:// und https://) unverändert
- Erstellt
RELEASE_NOTES_github_VERSION.mdim Projektstammverzeichnis
Beispiel:
# This will generate both README.md and RELEASE_NOTES_github_VERSION.md
./scripts/generate-readme-from-intro.sh
Die generierte Releasehinweis-Datei kann direkt in die GitHub-Release-Beschreibung kopiert werden. Alle Links und Bilder funktionieren im Kontext des GitHub-Releases korrekt.
Screenshots für die Dokumentation aufnehmen
pnpm take-screenshots
Oder direkt ausführen: pnpm take-screenshots (bei Bedarf mit --env-file=.env für Umgebungsvariablen).
Dieses Skript nimmt automatisch Screenshots der Anwendung für Dokumentationszwecke auf. Es:
- Startet einen Headless-Browser (Playwright Chromium)
- Meldet sich als Admin und als regulärer Benutzer an
- Navigiert durch verschiedene Seiten (Dashboard, Serverdetails, Einstellungen usw.)
- Erstellt Screenshots mit verschiedenen Ansichtsfenstergrößen
- Speichert Screenshots in
documentation/static/assets/(Englisch) oderdocumentation/i18n/{locale}/docusaurus-plugin-content-docs/current/assets(andere Sprachvarianten)
Voraussetzungen:
- Der Entwicklungsserver muss auf
http://localhost:8666laufen - Der Playwright Chromium-Browser muss installiert sein (führen Sie
pnpm take-screenshots:installeinmal aus, wasplaywright install chromiumausführt) - Umgebungsvariablen müssen gesetzt sein, fügen Sie diese zu Ihrer
.env-Datei hinzu oder exportieren Sie sie:ADMIN_PASSWORD: Passwort für das Admin-KontoUSER_PASSWORD: Passwort für das reguläre Benutzerkonto
Optionen: --locale beschränkt Screenshots auf eine oder mehrere Sprachen (durch Kommas getrennt). Wenn es weggelassen wird, werden alle Sprachen erfasst. Gültige Sprachen: en-GB, de, fr, es, pt-BR, hi-Latn, zh-Hans. Verwenden Sie -h oder --help, um die Verwendung anzuzeigen.
Beispiel:
export ADMIN_PASSWORD="your-admin-password"
export USER_PASSWORD="your-user-password"
pnpm take-screenshots
# All locales (default):
pnpm take-screenshots
# Single locale:
pnpm take-screenshots --locale en-GB
# Multiple locales:
pnpm take-screenshots --locale en-GB,de,pt-BR
Bereitstellung der Dokumentation
Um die Dokumentation auf GitHub Pages bereitzustellen, müssen Sie ein persönliches GitHub-Zugriffstoken generieren. Gehen Sie zu GitHub Personal Access Tokens und erstellen Sie ein neues Token mit dem repo-Bereich.
Sobald Sie über das Token verfügen, speichern Sie es im Git-Anmeldeinformations-Store (z. B. mithilfe von git config credential.helper store oder dem Anmeldeinformations-Manager Ihres Systems).
Führen Sie dann den folgenden Befehl aus dem Verzeichnis documentation aus, um die Dokumentation auf GitHub Pages bereitzustellen:
pnpm run deploy
Dadurch wird die Dokumentation erstellt und in den Branch gh-pages des Repositorys gepusht, und die Dokumentation ist unter https://wsj-br.github.io/duplistatus/ verfügbar.
Arbeiten mit Dokumentation
Informationen zum vollständigen Übersetzungsworkflow (Glossarverwaltung, KI-Übersetzung, Cache-Verwaltung) finden Sie unter Übersetzungsworkflow.
Quelldateien
- Dokumentationsinhalt: Englische Markdown-Dateien in
documentation/docs/ - UI-Übersetzungen: Englische JSON-Dateien in
documentation/i18n/en/(automatisch generiert vonpnpm write-translations) - Seitenleisten-Navigation:
documentation/sidebars.ts - Docusaurus-Konfiguration:
documentation/docusaurus.config.ts - Benutzerdefinierte React-Komponenten:
documentation/src/components/ - Statische Assets:
documentation/static/ - Hauptstartseite:
documentation/docs/intro.md(Quelle zur Generierung vonREADME.md)
Neue Komponenten hinzufügen
- Erstellen Sie Ihre React-Komponente in
documentation/src/components/ - Exportieren Sie sie aus
documentation/src/theme/MDXComponents.js, um sie in MDX verfügbar zu machen - Wenn die Komponente übersetzbare UI-Texte enthält, führen Sie
pnpm write-translationsaus, um diese zu extrahieren - Führen Sie
pnpm translateaus, um die neuen Texte in alle Sprachen zu übersetzen
Neue Dokumentationsseiten hinzufügen
- Erstellen Sie eine neue
.md-Datei indocumentation/docs/(oder einem Unterverzeichnis) - Fügen Sie sie der Seitenleiste in
documentation/sidebars.tshinzu - Führen Sie
pnpm write-translationsaus, um die Struktur der Übersetzungsdateien zu aktualisieren - Führen Sie
pnpm write-heading-idsaus, um Überschriften-IDs (Anker) zu generieren - Führen Sie
pnpm translateaus, um die neue Seite in alle Sprachen zu übersetzen - Erstellen und testen:
pnpm build
Statische Assets
- Bilder: Platzieren Sie sie in
documentation/static/img/und verweisen Sie darauf mit/img/filename.pngin Markdown - Downloads/PDFs: Platzieren Sie sie in
documentation/static/und verweisen Sie darauf mit/filename.pdf - Sprachspezifische Assets: Wenn ein Asset sprachspezifisch sein muss (z. B. Screenshots), platzieren Sie es in
documentation/i18n/{locale}/docusaurus-plugin-content-docs/current/assets/
Erstellen und Testen
cd documentation
pnpm build # Builds all locales
pnpm serve # Preview the built site locally
pnpm start:en # Development server for English
pnpm start:pt-br # Development server for Portuguese
Testen Sie Ihre Änderungen immer mindestens im Standard-Englisch und einer weiteren Sprache, um sicherzustellen, dass die Übersetzungen korrekt angezeigt werden.