Lizenzierung: MIT License und Dokumentation
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>
This commit is contained in:
@@ -0,0 +1,191 @@
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user