- AppSettings: Menü-Update nach jedem app_settings.save() Aufruf - MainWindow: Prüfung der Projekt-Verzeichnis-Existenz beim Start - Nur gültige Projekte werden im Menü angezeigt - Ungültige Projekte werden ausgeblendet mit Logging-Warnung - Memory-Leak-Prävention durch korrektes Aufräumen alter Menüs
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 Paketmanager
Abhängigkeiten installieren
# 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)
- Apache FOP: PDF-Generierung aus XSL-FO (Download)
- diff-pdf: PDF-Vergleich (GitHub)
Verwendung
Anwendung starten
uv run python src/main.py
Projekt erstellen
- Legen Sie ein neues Projekt an
- Konfigurieren Sie Ihre Tools (Saxon, Apache FOP) in den Einstellungen
- Organisieren Sie XSL-Stylesheets und XML-Dateien in der Baumstruktur
- 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
# Code-Style prüfen
uv run ruff check
# Code formatieren
uv run ruff format
Tests
# 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 für detaillierte Entwicklerdokumentation.
Lizenz
DocuMentor ist unter der MIT 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
Externe Tools (separat zu installieren):
- Saxon-HE - Mozilla Public License 2.0
- Apache FOP - Apache License 2.0
Vollständige Lizenzanalyse: LICENSES.md
Beiträge
Beiträge sind willkommen! Bitte beachten Sie:
- Fork des Repositories
- Feature-Branch erstellen (
git checkout -b feature/amazing-feature) - Änderungen committen (
git commit -m 'Add amazing feature') - Branch pushen (
git push origin feature/amazing-feature) - Pull Request öffnen
Code-Konventionen
- Deutsche Sprache für UI-Texte und Kommentare
pathlib.Pathfü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
- Dokumentation: 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