b29fa633cb
Projekt unter MIT License veröffentlicht: - LICENSE-Datei mit MIT-Lizenztext - LICENSES.md mit detaillierter Lizenzanalyse aller Dependencies - THIRD_PARTY_LICENSES.txt mit allen verwendeten Bibliotheken - README.md mit vollständiger Projektdokumentation - pyproject.toml mit Lizenz-Metadaten aktualisiert Lizenz-Übersicht: - PySide6: LGPL-3.0/GPL-2.0/GPL-3.0 (kompatibel mit MIT) - Pydantic, Polars, pyqtdarktheme: MIT - PyArrow: Apache 2.0 - Saxon-HE: MPL-2.0 (externes Tool) - Apache FOP: Apache 2.0 (externes Tool) Keine Einschränkungen durch Dependencies - MIT License möglich. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
192 lines
5.3 KiB
Markdown
192 lines
5.3 KiB
Markdown
# 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
|