Ein leichtgewichtiger, PHP-basierter Dokumentations-Generator, der C#-Quellcode und XAML-Dateien analysiert, Metadaten extrahiert und ein interaktives Web-Interface zur Navigation bereitstellt. Im Gegensatz zu schwerfälligen Tools wie DocFX benötigt dieser Generator keine kompilierte DLL, sondern arbeitet rein auf Basis von Regex-Parsing.
- Deep Source Parsing: Extrahiert Klassen, Structs, Interfaces, Enums, Methoden, Properties und Felder.
- Code-Extraktion: Speichert den tatsächlichen Quellcode-Block für jedes Member direkt in der Dokumentation.
- XAML-Integration: Erkennt WPF/UWP/Xamarin-Views und verknüpft sie automatisch mit ihren Code-Behind-Klassen.
- XML-Doc Support: Liest
/// <summary>Kommentare aus und bereitet sie grafisch auf. - Interaktives Web-Interface:
- Hierarchische Projekt- und Namespace-Navigation.
- Live-Suche (AJAX) für schnelles Finden von Typen und Methoden.
- Dark Mode Support.
- Statistik-Dashboard (Lines of Code, Dateigrößen, Typen-Zähler).
- Scan: Das Skript
generate.phpdurchsucht rekursiv den Ordner/code. - Parsing: Mittels regulärer Ausdrücke werden die C#-Strukturen und Dokumentationskommentare erkannt.
- JSON-Export: Alle Informationen werden in einer hochkomprimierten
doc.jsongespeichert. - Frontend: Die
index.phplädt die JSON-Datei und stellt die interaktive Benutzeroberfläche bereit.
Stelle sicher, dass deine Projektstruktur wie folgt aussieht:
/your-web-root
├── generate.php # Der Parser
├── index.php # Das Web-Interface
├── style.css # Styling (muss vorhanden sein)
├── code/ # Hier dein C# Quellcode (Unterordner erlaubt)
└── doc.json # Wird automatisch generiert
Führe den Generator über die Kommandozeile aus:
php generate.phpDas Skript scannt nun alle .cs und .xaml Dateien und erstellt die doc.json.
Navigiere in deinem Browser zu der index.php. Du kannst nun:
- Durch Namespaces filtern.
- Die Suche nutzen, um direkt zu Methoden zu springen.
- Statistiken über die Größe deines Projekts einsehen.
Da das Tool auf Regex (Regular Expressions) statt auf einem echten Compiler-Modell (wie Roslyn) basiert, gibt es folgende Einschränkungen:
- Komplexität: Sehr komplexe, verschachtelte Generics oder exotische Attribute könnten das Parsing erschweren.
- Formatierung: Das Tool erwartet einen halbwegs standardkonformen C#-Schreibstil (z. B. Leerzeichen nach
class-Keywords). - Präprozessor-Direktiven:
#if DEBUGBlöcke werden ignoriert; der Parser sieht den gesamten Text. - Abhängigkeiten: Die
index.phpsetzt voraus, dasssearch.phpundclass.phpfür die Detailansicht und Suchfunktion existieren.
- PHP 8.0+ (wegen
str_starts_withund anderen modernen Funktionen). - Schreibberechtigung im Verzeichnis für die Erstellung der
doc.json.
| Typ | Beschreibung |
|---|---|
.cs |
Vollständige Analyse von Typen, Membern und XML-Docs. |
.xaml |
Erkennung von x:Class und Zuordnung zum Namespace/Typ. |
Die UI nutzt eine style.css. Für den Dark Mode wird die Klasse .dark-mode auf den <body> angewendet. Die Farben sind über CSS-Variablen steuerbar.