# DocuMentor **Professionelle XSL-Transformations-Verwaltung und PDF-Generierung** DocuMentor (ehemals xsl-validator) ist eine leistungsstarke PySide6-basierte Desktop-Anwendung zur Verwaltung und Validierung von XSL-Transformationen mit automatischer PDF-Generierung. Die Anwendung bietet eine intuitive GUI zur Konfiguration von Transformations-Toolchains (Saxon, Apache FOP, diff-pdf) und zur Verwaltung komplexer PDF-Generierungsprojekte mit PostgreSQL-Datenbankintegration. ## Features ### 🌳 Hierarchische Projektverwaltung - Organisieren Sie Ihre XSL-Transformationen in einer übersichtlichen Baumstruktur - Flexible Workflow-Definitionen mit verschachtelten Knoten - Projektspezifische Konfiguration mit `project.yaml` ### ⚡ Asynchrone Batch-Verarbeitung - Verarbeiten Sie große Mengen von XML-Dateien im Hintergrund - Fortschrittsanzeige für lange Transformationen - 4x schnellere XSLT-Transformationen durch Worker-Pool-Architektur ### 🔍 Intelligente Duplikatserkennung - Automatische Hash-basierte Erkennung von identischen XML-Dateien (Blake2b) - Verhindert Redundanzen und spart Speicherplatz - Asynchrone Hash-Berechnung im Hintergrund ### 📄 PDF-Vergleichsansicht - Drei-Panel-Ansicht (Referenz, Diff, Neu) - Alpha-Blending für visuellen Vergleich - Zoom- und Pan-Funktionalität ### 🗄️ PostgreSQL-Integration - Nahtlose Datenbankanbindung mit Polars und ConnectorX - Performante SQL-Abfragen und Datenverarbeitung - SSL-Modus-Unterstützung ### 🛠️ Konfigurierbare Toolchains - Flexible Verwaltung von Saxon, Apache FOP und diff-pdf - Versionierung von Tools - Plattformübergreifende Unterstützung (Linux, Windows, macOS) ### 🎨 Modernes UI - Dark-Theme-Unterstützung via `qdarktheme` - Drag-and-Drop für XML-Dateien - Responsive und intuitive Benutzeroberfläche ## Installation ### Voraussetzungen - Python 3.13 oder höher - [uv](https://github.com/astral-sh/uv) Paketmanager ### Abhängigkeiten installieren ```bash # Mit uv (empfohlen) uv sync # Oder mit pip pip install -e . ``` ### Externe Tools (optional) Für die volle Funktionalität benötigen Sie: - **Saxon-HE**: XSLT 3.0 Prozessor ([Download](https://www.saxonica.com/download/)) - **Apache FOP**: PDF-Generierung aus XSL-FO ([Download](https://xmlgraphics.apache.org/fop/download.html)) - **diff-pdf**: PDF-Vergleich ([GitHub](https://github.com/vslavik/diff-pdf)) ## Verwendung ### Anwendung starten ```bash uv run python src/main.py ``` ### Projekt erstellen 1. Legen Sie ein neues Projekt an 2. Konfigurieren Sie Ihre Tools (Saxon, Apache FOP) in den Einstellungen 3. Organisieren Sie XSL-Stylesheets und XML-Dateien in der Baumstruktur 4. Führen Sie Transformationen aus ### Konfiguration Die Anwendung speichert Konfigurationsdateien an folgenden Orten: - **Linux**: `~/.config/DocuMentor/config.json` - **Windows**: `%APPDATA%\DocuMentor\config.json` - **macOS**: `~/Library/Application Support/DocuMentor/config.json` Projektdaten werden in `project.yaml` im jeweiligen Projektverzeichnis gespeichert. ## Entwicklung ### Code-Qualität ```bash # Code-Style prüfen uv run ruff check # Code formatieren uv run ruff format ``` ### Tests ```bash # Hash-Implementierung testen uv run python test_hash_implementation.py # Duplikatserkennung testen uv run python test_xml_hash_duplicate_detection.py ``` ### Architektur - **PySide6**: Native Qt-basierte GUI - **Pydantic**: Typsichere Konfigurationsverwaltung - **Polars**: Lightning-fast DataFrame-Verarbeitung - **Blake2b**: Kryptographische Hash-Funktion für Integritätsprüfung Siehe [CLAUDE.md](CLAUDE.md) für detaillierte Entwicklerdokumentation. ## Lizenz DocuMentor ist unter der [MIT License](LICENSE) lizenziert. ### Third-Party-Lizenzen Diese Software verwendet folgende Open-Source-Bibliotheken: - **PySide6** - LGPL-3.0 OR GPL-2.0 OR GPL-3.0 - **Pydantic** - MIT License - **Polars** - MIT License - **pyqtdarktheme** - MIT License - Weitere siehe [THIRD_PARTY_LICENSES.txt](THIRD_PARTY_LICENSES.txt) Externe Tools (separat zu installieren): - **Saxon-HE** - Mozilla Public License 2.0 - **Apache FOP** - Apache License 2.0 Vollständige Lizenzanalyse: [LICENSES.md](LICENSES.md) ## Beiträge Beiträge sind willkommen! Bitte beachten Sie: 1. Fork des Repositories 2. Feature-Branch erstellen (`git checkout -b feature/amazing-feature`) 3. Änderungen committen (`git commit -m 'Add amazing feature'`) 4. Branch pushen (`git push origin feature/amazing-feature`) 5. Pull Request öffnen ### Code-Konventionen - Deutsche Sprache für UI-Texte und Kommentare - `pathlib.Path` für Dateipfade - Zeilenlänge: 120 Zeichen (Ruff-Konfiguration) - UI-Dateien (`*_ui.py`) werden automatisch generiert - nicht manuell bearbeiten! ## Support Bei Fragen, Problemen oder Feature-Requests: - GitHub Issues: [Issue Tracker](https://github.com/[your-repo]/issues) - Dokumentation: [docs/](docs/) ## Changelog ### Version 0.1.0 (2025-01) - ✅ Hierarchische Projektverwaltung - ✅ Asynchrone Batch-Verarbeitung - ✅ Blake2b-Hash-basierte Duplikatserkennung - ✅ PDF-Vergleichsansicht - ✅ PostgreSQL-Integration - ✅ Worker-Pool für 4x schnellere Transformationen - ✅ Dark-Theme-Unterstützung ## Autoren - [Ihr Name] - Initial work ## Danksagungen Vielen Dank an alle Entwickler der verwendeten Open-Source-Bibliotheken! --- **DocuMentor** - Professionelle XSL-Transformations-Verwaltung für anspruchsvolle Projekte