Files

87 lines
4.0 KiB
Markdown
Raw Permalink Normal View History

---
type: Quickstart
title: DocuMentor Schnellstart
description: Einstiegspunkt in die Dokumentation. Überblick über DocuMentor, einer PySide6-Desktop-App für XSL-Transformationsverwaltung und PDF-Generierung.
tags: [xsl, pdf, pyside6, desktop-app, transformation]
---
# DocuMentor Schnellstart
**DocuMentor** ist eine PySide6-basierte Desktop-Anwendung zur Verwaltung und Validierung von XSL-Transformationen mit automatischer PDF-Generierung. Sie richtet sich an Entwickler, die kontinuierlich XSL-Stylesheets pflegen und die Auswirkungen auf generierte PDF-Dokumente nachvollziehen müssen.
## Was ist DocuMentor?
Der primäre Einsatz ist die Weiterentwicklung von PDF-Dokumenten in **Flexnow** (Prüfungsverwaltungs-Software). Die Basis bilden ca. 100 XSL-Dateien, die über `<xsl:import/>` und `<xsl:include/>` miteinander verknüpft sind. Änderungen an einer XSL-Datei können sich auf viele andere auswirken. DocuMentor hilft, diese Auswirkungen durch automatisierte Transformation und PDF-Vergleich zu kontrollieren.
### Kern-Features
- **Hierarchische Projektverwaltung** Baumstruktur für Transformations-Workflows mit verschachtelten Knoten
- **Asynchrone Batch-Verarbeitung** Große Mengen von XML-Dateien im Hintergrund mit Fortschrittsanzeige
- **Parallele Worker-Pools** Persistente JVM-Prozesse für Saxon (XSLT) und Apache FOP (PDF) eliminieren JVM-Startup-Overhead
- **Duplikatserkennung** Hash-basierte (blake2b) Erkennung identischer XML-Dateien
- **PDF-Vergleichsansicht** Drei-Panel-Ansicht (Referenz, Diff, Neu) mit Alpha-Blending und Zoom
- **PostgreSQL-Integration** Datenbankanbindung mit Polars/ConnectorX
- **XSL-Abhängigkeitsgraph** Visualisierung von `<xsl:import/>`- und `<xsl:include/>`-Beziehungen via vis.js
- **Plattformübergreifend** Linux, Windows, macOS
## Installation
### Voraussetzungen
- Python 3.13+
- [uv](https://github.com/astral-sh/uv) Paketmanager
- OpenJDK/JRE (für Saxon und Apache FOP)
### Abhängigkeiten
```bash
uv sync
```
### Externe Tools
| Tool | Zweck | Download |
|------|-------|----------|
| **Saxon-HE** | XSLT 3.0 Prozessor | [saxonica.com](https://www.saxonica.com/download/) |
| **Apache FOP** | PDF-Generierung aus XSL-FO | [xmlgraphics.apache.org](https://xmlgraphics.apache.org/fop/download.html) |
| **diff-pdf** | PDF-Vergleich | [GitHub](https://github.com/vslavik/diff-pdf) |
| **OpenJDK** | JVM für Saxon/FOP Worker-Pools | [Eclipse Temurin](https://adoptium.net) |
## Anwendung starten
```bash
uv run python src/main.py
```
Beim ersten Start öffnet sich der Einstellungsdialog, in dem die externen Tools (Java VM, Saxon JAR, Apache FOP, diff-pdf, XSL-Verzeichnis, PostgreSQL) konfiguriert werden.
## Typischer Workflow
1. Entwickler ändert XSL-Dateien
2. Transformation in DocuMentor starten
3. PDF-Diff begutachten: Wurden die richtigen PDFs geändert?
4. Prüfen: Entspricht die Änderung der Erwartung?
5. Ggf. zurück zu Schritt 1
## Konfigurationsorte
| Plattform | Pfad |
|-----------|------|
| Linux | `~/.config/DocuMentor/config.json` |
| Windows | `%APPDATA%\DocuMentor\config.json` |
| macOS | `~/Library/Application Support/DocuMentor/config.json` |
Projektdaten werden pro Projekt in `project.yaml` gespeichert.
## Wiki-Struktur
- [Architektur-Überblick](architecture/overview.md) PySide6-Mixin-Architektur, UI-Pattern, Thread-Modell, Konfigurationssystem
- [Transformations-Pipeline](workflows/transformation-pipeline.md) XML→FO→PDF→Diff, Worker-Pools, XSL-Abhängigkeitsgraph, Entscheidungslogik
- [Datenmodelle & Konfiguration](data-models.md) AppSettings, Project, ProjectData, TreeNode/XslFile/XmlFile, Hash-System, PostgreSQL
- [Build & Betrieb](operations.md) Build-Prozess, MSI/ZIP-Distribution, Tests, Code-Style, Lizenzen
## Backlog
- **Web-Seite** (`web/`): Statische HTML-Landingpage mit Datenschutz/Impressum nicht Teil der Anwendungslogik, bei Bedarf separat dokumentieren.
- **Skills** (`skills/`): Nur `write-connector` (OpenWiki-Skill), nicht projektspezifisch.