Compare commits
6 Commits
1.6.3
..
47e98b88ef
| Author | SHA1 | Date | |
|---|---|---|---|
| 47e98b88ef | |||
| 799d3dc2ba | |||
| 938fc9bfeb | |||
| ea7fbaf8b8 | |||
| 9a2fb45802 | |||
| 1501f8208d |
@@ -142,46 +142,6 @@ Externe Tools (separat zu installieren):
|
|||||||
|
|
||||||
Vollständige Lizenzanalyse: [LICENSES.md](LICENSES.md)
|
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
|
## Danksagungen
|
||||||
|
|
||||||
Vielen Dank an alle Entwickler der verwendeten Open-Source-Bibliotheken!
|
Vielen Dank an alle Entwickler der verwendeten Open-Source-Bibliotheken!
|
||||||
|
|||||||
@@ -1,290 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="de">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>Datenschutzerklärung - DocuMentor</title>
|
|
||||||
<link rel="stylesheet" href="styles.css">
|
|
||||||
<style>
|
|
||||||
.legal-page {
|
|
||||||
padding: 8rem 0 4rem;
|
|
||||||
min-height: 100vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content {
|
|
||||||
max-width: 900px;
|
|
||||||
margin: 0 auto;
|
|
||||||
background: var(--surface);
|
|
||||||
padding: 3rem;
|
|
||||||
border-radius: 1rem;
|
|
||||||
border: 1px solid var(--surface-light);
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content h1 {
|
|
||||||
font-size: 2.5rem;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
background: var(--gradient);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-clip: text;
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content h2 {
|
|
||||||
font-size: 1.75rem;
|
|
||||||
margin-top: 2.5rem;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
color: var(--primary-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content h3 {
|
|
||||||
font-size: 1.25rem;
|
|
||||||
margin-top: 1.5rem;
|
|
||||||
margin-bottom: 0.75rem;
|
|
||||||
color: var(--text-primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content p {
|
|
||||||
color: var(--text-secondary);
|
|
||||||
line-height: 1.8;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content ul {
|
|
||||||
color: var(--text-secondary);
|
|
||||||
line-height: 1.8;
|
|
||||||
margin-left: 2rem;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content ul li {
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content a {
|
|
||||||
color: var(--primary-color);
|
|
||||||
text-decoration: none;
|
|
||||||
border-bottom: 1px solid transparent;
|
|
||||||
transition: border-color 0.3s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content a:hover {
|
|
||||||
border-bottom-color: var(--primary-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.back-link {
|
|
||||||
display: inline-block;
|
|
||||||
margin-bottom: 2rem;
|
|
||||||
color: var(--text-secondary);
|
|
||||||
text-decoration: none;
|
|
||||||
transition: color 0.3s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.back-link:hover {
|
|
||||||
color: var(--primary-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.last-updated {
|
|
||||||
color: var(--text-muted);
|
|
||||||
font-size: 0.875rem;
|
|
||||||
margin-bottom: 2rem;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<!-- Navigation -->
|
|
||||||
<nav class="navbar">
|
|
||||||
<div class="container">
|
|
||||||
<div class="nav-brand">
|
|
||||||
<h1><a href="index.html" style="text-decoration: none; color: inherit;">DocuMentor</a></h1>
|
|
||||||
</div>
|
|
||||||
<ul class="nav-menu">
|
|
||||||
<li><a href="index.html#features">Features</a></li>
|
|
||||||
<li><a href="index.html#workflow">Workflow</a></li>
|
|
||||||
<li><a href="index.html#technologie">Technologie</a></li>
|
|
||||||
<li><a href="index.html#download">Download</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<!-- Datenschutz Content -->
|
|
||||||
<section class="legal-page">
|
|
||||||
<div class="container">
|
|
||||||
<div class="legal-content">
|
|
||||||
<a href="index.html" class="back-link">← Zurück zur Startseite</a>
|
|
||||||
|
|
||||||
<h1>Datenschutzerklärung</h1>
|
|
||||||
<p class="last-updated">Stand: Januar 2025</p>
|
|
||||||
|
|
||||||
<h2>1. Datenschutz auf einen Blick</h2>
|
|
||||||
|
|
||||||
<h3>Allgemeine Hinweise</h3>
|
|
||||||
<p>
|
|
||||||
Die folgenden Hinweise geben einen einfachen Überblick darüber, was mit Ihren personenbezogenen
|
|
||||||
Daten passiert, wenn Sie DocuMentor nutzen. Personenbezogene Daten sind alle Daten, mit denen
|
|
||||||
Sie persönlich identifiziert werden können.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>DocuMentor als Desktop-Anwendung</h3>
|
|
||||||
<p>
|
|
||||||
DocuMentor ist eine Desktop-Anwendung, die lokal auf Ihrem Computer ausgeführt wird. Die
|
|
||||||
Anwendung sammelt, speichert oder überträgt keine personenbezogenen Daten an externe Server.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>2. Datenerfassung durch die Anwendung</h2>
|
|
||||||
|
|
||||||
<h3>Welche Daten werden erfasst?</h3>
|
|
||||||
<p>
|
|
||||||
DocuMentor speichert ausschließlich lokal auf Ihrem Computer:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>Anwendungskonfigurationen (Tool-Pfade, Einstellungen)</li>
|
|
||||||
<li>Projektdaten (XSL-Transformations-Workflows, XML-Dateien)</li>
|
|
||||||
<li>Datei-Hashwerte (Blake2b) zur Duplikatserkennung</li>
|
|
||||||
<li>Datenbankverbindungsinformationen (falls konfiguriert)</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3>Wo werden diese Daten gespeichert?</h3>
|
|
||||||
<p>
|
|
||||||
Alle Daten werden lokal in folgenden Verzeichnissen gespeichert:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li><strong>Linux:</strong> ~/.config/DocuMentor/</li>
|
|
||||||
<li><strong>Windows:</strong> %APPDATA%\DocuMentor\</li>
|
|
||||||
<li><strong>macOS:</strong> ~/Library/Application Support/DocuMentor/</li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
Zusätzlich werden projektspezifische Daten in dem von Ihnen gewählten Projektverzeichnis
|
|
||||||
als <code>project.yaml</code> gespeichert.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Keine Datenübertragung</h3>
|
|
||||||
<p>
|
|
||||||
DocuMentor überträgt keine Daten an externe Server oder Dritte. Die Anwendung funktioniert
|
|
||||||
vollständig offline. Eine Internetverbindung ist weder für die Installation noch für die
|
|
||||||
Nutzung erforderlich.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>3. Datenerfassung auf dieser Webseite</h2>
|
|
||||||
|
|
||||||
<h3>Server-Log-Dateien</h3>
|
|
||||||
<p>
|
|
||||||
Der Provider dieser Webseite erhebt und speichert automatisch Informationen in sogenannten
|
|
||||||
Server-Log-Dateien, die Ihr Browser automatisch an uns übermittelt. Dies sind:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>Browsertyp und Browserversion</li>
|
|
||||||
<li>Verwendetes Betriebssystem</li>
|
|
||||||
<li>Referrer URL</li>
|
|
||||||
<li>Hostname des zugreifenden Rechners</li>
|
|
||||||
<li>Uhrzeit der Serveranfrage</li>
|
|
||||||
<li>IP-Adresse</li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
Eine Zusammenführung dieser Daten mit anderen Datenquellen wird nicht vorgenommen.
|
|
||||||
Die Erfassung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO.
|
|
||||||
Der Webseitenbetreiber hat ein berechtigtes Interesse an der technisch fehlerfreien
|
|
||||||
Darstellung und der Optimierung seiner Webseite.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Keine Cookies</h3>
|
|
||||||
<p>
|
|
||||||
Diese Webseite verwendet keine Cookies. Es werden keine Tracking- oder Analytics-Dienste
|
|
||||||
eingesetzt.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>4. Datenbankverbindungen</h2>
|
|
||||||
|
|
||||||
<h3>PostgreSQL-Integration</h3>
|
|
||||||
<p>
|
|
||||||
DocuMentor bietet die Möglichkeit, sich mit PostgreSQL-Datenbanken zu verbinden. Die
|
|
||||||
Verbindungsinformationen (Server, Port, Benutzername, Passwort) werden ausschließlich
|
|
||||||
lokal in der Anwendungskonfiguration gespeichert.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Die Verbindung zur Datenbank erfolgt direkt von Ihrem Computer aus. DocuMentor fungiert
|
|
||||||
nicht als Vermittler und speichert keine Datenbankabfragen oder -ergebnisse außerhalb
|
|
||||||
Ihres lokalen Systems.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>5. Ihre Rechte</h2>
|
|
||||||
|
|
||||||
<h3>Recht auf Auskunft, Löschung und Berichtigung</h3>
|
|
||||||
<p>
|
|
||||||
Da alle Daten ausschließlich lokal auf Ihrem Computer gespeichert werden, haben Sie
|
|
||||||
jederzeit volle Kontrolle über diese Daten:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li><strong>Auskunft:</strong> Sie können jederzeit in die Konfigurationsdateien einsehen</li>
|
|
||||||
<li><strong>Löschung:</strong> Sie können die Anwendung und alle Konfigurationsdateien jederzeit löschen</li>
|
|
||||||
<li><strong>Berichtigung:</strong> Sie können alle gespeicherten Einstellungen jederzeit ändern</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3>Widerruf Ihrer Einwilligung zur Datenverarbeitung</h3>
|
|
||||||
<p>
|
|
||||||
Viele Datenverarbeitungsvorgänge sind nur mit Ihrer ausdrücklichen Einwilligung möglich.
|
|
||||||
Sie können eine bereits erteilte Einwilligung jederzeit widerrufen, indem Sie die
|
|
||||||
Anwendung deinstallieren und die Konfigurationsdateien löschen.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>6. Open Source</h2>
|
|
||||||
<p>
|
|
||||||
DocuMentor ist eine Open-Source-Software. Der Quellcode ist öffentlich einsehbar, sodass
|
|
||||||
Sie jederzeit überprüfen können, wie Ihre Daten verarbeitet werden.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>7. Kontakt</h2>
|
|
||||||
<p>
|
|
||||||
Bei Fragen zum Datenschutz oder zur Datenverarbeitung in DocuMentor können Sie sich
|
|
||||||
jederzeit an uns wenden. Die Kontaktdaten finden Sie im <a href="impressum.html">Impressum</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>8. Änderungen dieser Datenschutzerklärung</h2>
|
|
||||||
<p>
|
|
||||||
Wir behalten uns vor, diese Datenschutzerklärung anzupassen, damit sie stets den aktuellen
|
|
||||||
rechtlichen Anforderungen entspricht oder um Änderungen unserer Leistungen in der
|
|
||||||
Datenschutzerklärung umzusetzen. Für Ihren erneuten Besuch gilt dann die neue
|
|
||||||
Datenschutzerklärung.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div style="margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--surface-light);">
|
|
||||||
<p style="color: var(--text-muted); font-size: 0.875rem;">
|
|
||||||
Diese Datenschutzerklärung wurde erstellt für die Desktop-Anwendung DocuMentor
|
|
||||||
und die zugehörige Webseite.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Footer -->
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="container">
|
|
||||||
<div class="footer-content">
|
|
||||||
<div class="footer-section">
|
|
||||||
<h3>DocuMentor</h3>
|
|
||||||
<p>Professionelle XSL-Transformations-Verwaltung für anspruchsvolle Projekte.</p>
|
|
||||||
</div>
|
|
||||||
<div class="footer-section">
|
|
||||||
<h4>Rechtliches</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="impressum.html">Impressum</a></li>
|
|
||||||
<li><a href="datenschutz.html">Datenschutz</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="footer-section">
|
|
||||||
<h4>Ressourcen</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="index.html#features">Features</a></li>
|
|
||||||
<li><a href="index.html#download">Download</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="footer-bottom">
|
|
||||||
<p>© 2025 DocuMentor. Alle Rechte vorbehalten.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script src="script.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,299 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="de">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>Impressum - DocuMentor</title>
|
|
||||||
<link rel="stylesheet" href="styles.css">
|
|
||||||
<style>
|
|
||||||
.legal-page {
|
|
||||||
padding: 8rem 0 4rem;
|
|
||||||
min-height: 100vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content {
|
|
||||||
max-width: 900px;
|
|
||||||
margin: 0 auto;
|
|
||||||
background: var(--surface);
|
|
||||||
padding: 3rem;
|
|
||||||
border-radius: 1rem;
|
|
||||||
border: 1px solid var(--surface-light);
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content h1 {
|
|
||||||
font-size: 2.5rem;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
background: var(--gradient);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-clip: text;
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content h2 {
|
|
||||||
font-size: 1.75rem;
|
|
||||||
margin-top: 2.5rem;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
color: var(--primary-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content h3 {
|
|
||||||
font-size: 1.25rem;
|
|
||||||
margin-top: 1.5rem;
|
|
||||||
margin-bottom: 0.75rem;
|
|
||||||
color: var(--text-primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content p {
|
|
||||||
color: var(--text-secondary);
|
|
||||||
line-height: 1.8;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content ul {
|
|
||||||
color: var(--text-secondary);
|
|
||||||
line-height: 1.8;
|
|
||||||
margin-left: 2rem;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content ul li {
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content a {
|
|
||||||
color: var(--primary-color);
|
|
||||||
text-decoration: none;
|
|
||||||
border-bottom: 1px solid transparent;
|
|
||||||
transition: border-color 0.3s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.legal-content a:hover {
|
|
||||||
border-bottom-color: var(--primary-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.back-link {
|
|
||||||
display: inline-block;
|
|
||||||
margin-bottom: 2rem;
|
|
||||||
color: var(--text-secondary);
|
|
||||||
text-decoration: none;
|
|
||||||
transition: color 0.3s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.back-link:hover {
|
|
||||||
color: var(--primary-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.contact-box {
|
|
||||||
background: var(--background);
|
|
||||||
padding: 1.5rem;
|
|
||||||
border-radius: 0.5rem;
|
|
||||||
border-left: 4px solid var(--primary-color);
|
|
||||||
margin: 2rem 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.contact-box p {
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.placeholder-notice {
|
|
||||||
background: rgba(234, 179, 8, 0.1);
|
|
||||||
border: 1px solid var(--warning);
|
|
||||||
padding: 1rem;
|
|
||||||
border-radius: 0.5rem;
|
|
||||||
color: var(--warning);
|
|
||||||
margin: 2rem 0;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<!-- Navigation -->
|
|
||||||
<nav class="navbar">
|
|
||||||
<div class="container">
|
|
||||||
<div class="nav-brand">
|
|
||||||
<h1><a href="index.html" style="text-decoration: none; color: inherit;">DocuMentor</a></h1>
|
|
||||||
</div>
|
|
||||||
<ul class="nav-menu">
|
|
||||||
<li><a href="index.html#features">Features</a></li>
|
|
||||||
<li><a href="index.html#workflow">Workflow</a></li>
|
|
||||||
<li><a href="index.html#technologie">Technologie</a></li>
|
|
||||||
<li><a href="index.html#download">Download</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<!-- Impressum Content -->
|
|
||||||
<section class="legal-page">
|
|
||||||
<div class="container">
|
|
||||||
<div class="legal-content">
|
|
||||||
<a href="index.html" class="back-link">← Zurück zur Startseite</a>
|
|
||||||
|
|
||||||
<h1>Impressum</h1>
|
|
||||||
|
|
||||||
<div class="placeholder-notice">
|
|
||||||
<strong>Hinweis:</strong> Dies ist ein Platzhalter-Impressum. Bitte ersetzen Sie die folgenden
|
|
||||||
Informationen mit Ihren tatsächlichen Angaben gemäß den gesetzlichen Anforderungen.
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h2>Angaben gemäß § 5 TMG</h2>
|
|
||||||
|
|
||||||
<div class="contact-box">
|
|
||||||
<p><strong>[Ihr Name / Firmenname]</strong></p>
|
|
||||||
<p>[Straße und Hausnummer]</p>
|
|
||||||
<p>[PLZ] [Ort]</p>
|
|
||||||
<p>[Land]</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h2>Kontakt</h2>
|
|
||||||
|
|
||||||
<div class="contact-box">
|
|
||||||
<p><strong>Telefon:</strong> [Ihre Telefonnummer]</p>
|
|
||||||
<p><strong>E-Mail:</strong> <a href="mailto:[ihre-email]">[Ihre E-Mail-Adresse]</a></p>
|
|
||||||
<p><strong>Webseite:</strong> <a href="[ihre-webseite]">[Ihre Webseite]</a></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h2>Umsatzsteuer-ID</h2>
|
|
||||||
<p>
|
|
||||||
Umsatzsteuer-Identifikationsnummer gemäß § 27 a Umsatzsteuergesetz:<br>
|
|
||||||
<strong>[Ihre USt-IdNr.]</strong> (falls zutreffend)
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Wirtschafts-ID</h2>
|
|
||||||
<p>
|
|
||||||
<strong>[Ihre Wirtschafts-ID]</strong> (falls zutreffend)
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Verantwortlich für den Inhalt</h2>
|
|
||||||
<p>
|
|
||||||
Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV:
|
|
||||||
</p>
|
|
||||||
<div class="contact-box">
|
|
||||||
<p><strong>[Name des Verantwortlichen]</strong></p>
|
|
||||||
<p>[Adresse]</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h2>EU-Streitschlichtung</h2>
|
|
||||||
<p>
|
|
||||||
Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit:
|
|
||||||
<a href="https://ec.europa.eu/consumers/odr/" target="_blank" rel="noopener">
|
|
||||||
https://ec.europa.eu/consumers/odr/
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Unsere E-Mail-Adresse finden Sie oben im Impressum.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Verbraucherstreitbeilegung / Universalschlichtungsstelle</h2>
|
|
||||||
<p>
|
|
||||||
Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer
|
|
||||||
Verbraucherschlichtungsstelle teilzunehmen.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Haftung für Inhalte</h2>
|
|
||||||
<p>
|
|
||||||
Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach
|
|
||||||
den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter
|
|
||||||
jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen
|
|
||||||
oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den
|
|
||||||
allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst
|
|
||||||
ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden
|
|
||||||
von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Haftung für Links</h2>
|
|
||||||
<p>
|
|
||||||
Unser Angebot enthält Links zu externen Websites Dritter, auf deren Inhalte wir keinen
|
|
||||||
Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen.
|
|
||||||
Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der
|
|
||||||
Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf
|
|
||||||
mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung
|
|
||||||
nicht erkennbar.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete
|
|
||||||
Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen
|
|
||||||
werden wir derartige Links umgehend entfernen.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Urheberrecht</h2>
|
|
||||||
<p>
|
|
||||||
Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen
|
|
||||||
dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art
|
|
||||||
der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen
|
|
||||||
Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind
|
|
||||||
nur für den privaten, nicht kommerziellen Gebrauch gestattet.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die
|
|
||||||
Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche
|
|
||||||
gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden,
|
|
||||||
bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen
|
|
||||||
werden wir derartige Inhalte umgehend entfernen.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Open Source Software</h2>
|
|
||||||
<p>
|
|
||||||
DocuMentor ist eine Open-Source-Software. Der Quellcode ist unter einer Open-Source-Lizenz
|
|
||||||
verfügbar. Details zur Lizenzierung finden Sie im GitHub-Repository der Anwendung.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Verwendete Technologien</h2>
|
|
||||||
<p>
|
|
||||||
DocuMentor verwendet folgende Technologien und Bibliotheken:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>PySide6 (Qt für Python)</li>
|
|
||||||
<li>Pydantic (Datenvalidierung)</li>
|
|
||||||
<li>Saxon (XSLT-Prozessor)</li>
|
|
||||||
<li>Apache FOP (PDF-Generierung)</li>
|
|
||||||
<li>PostgreSQL (Datenbank, optional)</li>
|
|
||||||
<li>Polars (Datenverarbeitung)</li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
Für diese Technologien gelten die jeweiligen Lizenzbedingungen der Urheber.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div style="margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--surface-light);">
|
|
||||||
<p style="color: var(--text-muted); font-size: 0.875rem;">
|
|
||||||
Quelle: Erstellt für DocuMentor<br>
|
|
||||||
Stand: Januar 2025
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Footer -->
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="container">
|
|
||||||
<div class="footer-content">
|
|
||||||
<div class="footer-section">
|
|
||||||
<h3>DocuMentor</h3>
|
|
||||||
<p>Professionelle XSL-Transformations-Verwaltung für anspruchsvolle Projekte.</p>
|
|
||||||
</div>
|
|
||||||
<div class="footer-section">
|
|
||||||
<h4>Rechtliches</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="impressum.html">Impressum</a></li>
|
|
||||||
<li><a href="datenschutz.html">Datenschutz</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="footer-section">
|
|
||||||
<h4>Ressourcen</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="index.html#features">Features</a></li>
|
|
||||||
<li><a href="index.html#download">Download</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="footer-bottom">
|
|
||||||
<p>© 2025 DocuMentor. Alle Rechte vorbehalten.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script src="script.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
-310
@@ -1,310 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="de">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>DocuMentor - Professionelle XSL-Transformations-Verwaltung</title>
|
|
||||||
<link rel="stylesheet" href="styles.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<!-- Navigation -->
|
|
||||||
<nav class="navbar">
|
|
||||||
<div class="container">
|
|
||||||
<div class="nav-brand">
|
|
||||||
<h1>DocuMentor</h1>
|
|
||||||
</div>
|
|
||||||
<ul class="nav-menu">
|
|
||||||
<li><a href="#features">Features</a></li>
|
|
||||||
<li><a href="#workflow">Workflow</a></li>
|
|
||||||
<li><a href="#technologie">Technologie</a></li>
|
|
||||||
<li><a href="#download">Download</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<!-- Hero Section -->
|
|
||||||
<section class="hero">
|
|
||||||
<div class="container">
|
|
||||||
<div class="hero-content">
|
|
||||||
<h1 class="hero-title">Professionelle XSL-Transformations-Verwaltung</h1>
|
|
||||||
<p class="hero-subtitle">
|
|
||||||
DocuMentor ist Ihre leistungsstarke Desktop-Anwendung zur effizienten Verwaltung
|
|
||||||
und Validierung von XSL-Transformationen mit automatischer PDF-Generierung.
|
|
||||||
</p>
|
|
||||||
<div class="hero-buttons">
|
|
||||||
<a href="#download" class="btn btn-primary">Jetzt Herunterladen</a>
|
|
||||||
<a href="#features" class="btn btn-secondary">Mehr Erfahren</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="hero-image">
|
|
||||||
<div class="screenshot-placeholder">
|
|
||||||
<svg viewBox="0 0 800 600" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect width="800" height="600" fill="#1e293b" rx="8"/>
|
|
||||||
<rect x="20" y="20" width="760" height="50" fill="#334155" rx="4"/>
|
|
||||||
<circle cx="40" cy="45" r="8" fill="#ef4444"/>
|
|
||||||
<circle cx="70" cy="45" r="8" fill="#eab308"/>
|
|
||||||
<circle cx="100" cy="45" r="8" fill="#22c55e"/>
|
|
||||||
<rect x="20" y="90" width="250" height="490" fill="#334155" rx="4"/>
|
|
||||||
<rect x="290" y="90" width="490" height="150" fill="#334155" rx="4"/>
|
|
||||||
<rect x="290" y="260" width="490" height="320" fill="#334155" rx="4"/>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Features Section -->
|
|
||||||
<section id="features" class="features">
|
|
||||||
<div class="container">
|
|
||||||
<h2 class="section-title">Leistungsstarke Features</h2>
|
|
||||||
<p class="section-subtitle">Alles, was Sie für professionelle XSL-Transformationen benötigen</p>
|
|
||||||
|
|
||||||
<div class="features-grid">
|
|
||||||
<div class="feature-card">
|
|
||||||
<div class="feature-icon">
|
|
||||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
||||||
<path d="M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"/>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<h3>Hierarchische Projektverwaltung</h3>
|
|
||||||
<p>Organisieren Sie Ihre XSL-Transformationen in einer übersichtlichen Baumstruktur mit flexiblen Workflow-Definitionen.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="feature-card">
|
|
||||||
<div class="feature-icon">
|
|
||||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
||||||
<path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<h3>Asynchrone Batch-Verarbeitung</h3>
|
|
||||||
<p>Verarbeiten Sie große Mengen von XML-Dateien im Hintergrund mit Fortschrittsanzeige und optimaler Performance.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="feature-card">
|
|
||||||
<div class="feature-icon">
|
|
||||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
||||||
<path d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"/>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<h3>Intelligente Duplikatserkennung</h3>
|
|
||||||
<p>Automatische Hash-basierte Erkennung von identischen XML-Dateien verhindert Redundanzen und spart Speicherplatz.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="feature-card">
|
|
||||||
<div class="feature-icon">
|
|
||||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
||||||
<rect x="3" y="3" width="18" height="18" rx="2"/>
|
|
||||||
<path d="M9 3v18M15 3v18M3 9h18M3 15h18"/>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<h3>PDF-Vergleichsansicht</h3>
|
|
||||||
<p>Drei-Panel-Ansicht mit Referenz-, Diff- und Neu-PDF inkl. Alpha-Blending für präzise visuelle Vergleiche.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="feature-card">
|
|
||||||
<div class="feature-icon">
|
|
||||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
||||||
<path d="M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4"/>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<h3>PostgreSQL-Integration</h3>
|
|
||||||
<p>Nahtlose Datenbankanbindung mit Polars und ConnectorX für performante SQL-Abfragen und Datenverarbeitung.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="feature-card">
|
|
||||||
<div class="feature-icon">
|
|
||||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
||||||
<path d="M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"/>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<h3>Konfigurierbare Toolchains</h3>
|
|
||||||
<p>Flexible Verwaltung von Saxon, Apache FOP und diff-pdf mit Versionierung und plattformübergreifender Unterstützung.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="feature-card">
|
|
||||||
<div class="feature-icon">
|
|
||||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
||||||
<path d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12"/>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<h3>Drag & Drop-Unterstützung</h3>
|
|
||||||
<p>Intuitive Bedienung durch Drag-and-Drop für XML-Dateien mit automatischer Hash-Prüfung und Zuordnung.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="feature-card">
|
|
||||||
<div class="feature-icon">
|
|
||||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
||||||
<path d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<h3>Blake2b-Hash-Validierung</h3>
|
|
||||||
<p>Robuste Integritätsprüfung mit automatischer Hash-Berechnung für alle XML-Dateien im Hintergrund.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Workflow Section -->
|
|
||||||
<section id="workflow" class="workflow">
|
|
||||||
<div class="container">
|
|
||||||
<h2 class="section-title">Ihr Workflow mit DocuMentor</h2>
|
|
||||||
<div class="workflow-steps">
|
|
||||||
<div class="workflow-step">
|
|
||||||
<div class="step-number">1</div>
|
|
||||||
<h3>Projekt erstellen</h3>
|
|
||||||
<p>Legen Sie ein neues Projekt an und konfigurieren Sie Ihre Transformations-Tools (Saxon, Apache FOP).</p>
|
|
||||||
</div>
|
|
||||||
<div class="workflow-arrow">→</div>
|
|
||||||
<div class="workflow-step">
|
|
||||||
<div class="step-number">2</div>
|
|
||||||
<h3>Struktur aufbauen</h3>
|
|
||||||
<p>Organisieren Sie Ihre XSL-Stylesheets und XML-Dateien in der hierarchischen Baumstruktur.</p>
|
|
||||||
</div>
|
|
||||||
<div class="workflow-arrow">→</div>
|
|
||||||
<div class="workflow-step">
|
|
||||||
<div class="step-number">3</div>
|
|
||||||
<h3>Transformationen ausführen</h3>
|
|
||||||
<p>Führen Sie Batch-Transformationen aus und profitieren Sie von der Worker-Pool-Performance.</p>
|
|
||||||
</div>
|
|
||||||
<div class="workflow-arrow">→</div>
|
|
||||||
<div class="workflow-step">
|
|
||||||
<div class="step-number">4</div>
|
|
||||||
<h3>PDFs vergleichen</h3>
|
|
||||||
<p>Nutzen Sie die Drei-Panel-Ansicht für präzise Vergleiche zwischen Referenz und generierten PDFs.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Technology Section -->
|
|
||||||
<section id="technologie" class="technology">
|
|
||||||
<div class="container">
|
|
||||||
<h2 class="section-title">Moderne Technologie</h2>
|
|
||||||
<div class="tech-grid">
|
|
||||||
<div class="tech-item">
|
|
||||||
<h3>PySide6</h3>
|
|
||||||
<p>Native Qt-basierte Benutzeroberfläche für beste Performance und plattformübergreifende Kompatibilität</p>
|
|
||||||
</div>
|
|
||||||
<div class="tech-item">
|
|
||||||
<h3>Pydantic</h3>
|
|
||||||
<p>Typsichere Konfigurationsverwaltung mit automatischer Validierung und Serialisierung</p>
|
|
||||||
</div>
|
|
||||||
<div class="tech-item">
|
|
||||||
<h3>Saxon</h3>
|
|
||||||
<p>Industrie-Standard XSLT-Prozessor für höchste Transformations-Qualität</p>
|
|
||||||
</div>
|
|
||||||
<div class="tech-item">
|
|
||||||
<h3>Apache FOP</h3>
|
|
||||||
<p>Professionelle PDF-Generierung aus XSL-FO mit umfangreichen Formatierungsoptionen</p>
|
|
||||||
</div>
|
|
||||||
<div class="tech-item">
|
|
||||||
<h3>PostgreSQL</h3>
|
|
||||||
<p>Enterprise-Datenbankintegration mit Polars für schnelle Datenverarbeitung</p>
|
|
||||||
</div>
|
|
||||||
<div class="tech-item">
|
|
||||||
<h3>Blake2b</h3>
|
|
||||||
<p>Kryptographische Hash-Funktion für sichere Integritätsprüfung und Duplikatserkennung</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Key Benefits Section -->
|
|
||||||
<section class="benefits">
|
|
||||||
<div class="container">
|
|
||||||
<h2 class="section-title">Ihre Vorteile</h2>
|
|
||||||
<div class="benefits-grid">
|
|
||||||
<div class="benefit-item">
|
|
||||||
<div class="benefit-number">4x</div>
|
|
||||||
<p>Schnellere XSLT-Transformationen durch Worker-Pool-Architektur</p>
|
|
||||||
</div>
|
|
||||||
<div class="benefit-item">
|
|
||||||
<div class="benefit-number">100%</div>
|
|
||||||
<p>Automatische Duplikatserkennung verhindert redundante Dateien</p>
|
|
||||||
</div>
|
|
||||||
<div class="benefit-item">
|
|
||||||
<div class="benefit-number">∞</div>
|
|
||||||
<p>Unbegrenzte Projektgröße durch effiziente Hash-basierte Verwaltung</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Download Section -->
|
|
||||||
<section id="download" class="download">
|
|
||||||
<div class="container">
|
|
||||||
<h2 class="section-title">Jetzt Starten</h2>
|
|
||||||
<p class="section-subtitle">DocuMentor ist verfügbar für Windows, macOS und Linux</p>
|
|
||||||
<div class="download-buttons">
|
|
||||||
<div class="download-card">
|
|
||||||
<h3>Linux</h3>
|
|
||||||
<p>Ubuntu, Debian, Fedora, Arch</p>
|
|
||||||
<a href="#" class="btn btn-download">Download für Linux</a>
|
|
||||||
</div>
|
|
||||||
<div class="download-card">
|
|
||||||
<h3>Windows</h3>
|
|
||||||
<p>Windows 10/11</p>
|
|
||||||
<a href="#" class="btn btn-download">Download für Windows</a>
|
|
||||||
</div>
|
|
||||||
<div class="download-card">
|
|
||||||
<h3>macOS</h3>
|
|
||||||
<p>macOS 10.15+</p>
|
|
||||||
<a href="#" class="btn btn-download">Download für macOS</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="installation-note">
|
|
||||||
<h3>Installation</h3>
|
|
||||||
<div class="code-block">
|
|
||||||
<code>
|
|
||||||
# Installation mit uv Paketmanager<br>
|
|
||||||
uv sync<br>
|
|
||||||
<br>
|
|
||||||
# Anwendung starten<br>
|
|
||||||
uv run python src/main.py
|
|
||||||
</code>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Footer -->
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="container">
|
|
||||||
<div class="footer-content">
|
|
||||||
<div class="footer-section">
|
|
||||||
<h3>DocuMentor</h3>
|
|
||||||
<p>Professionelle XSL-Transformations-Verwaltung für anspruchsvolle Projekte.</p>
|
|
||||||
</div>
|
|
||||||
<div class="footer-section">
|
|
||||||
<h4>Ressourcen</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Dokumentation</a></li>
|
|
||||||
<li><a href="#">GitHub Repository</a></li>
|
|
||||||
<li><a href="#">Issue Tracker</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="footer-section">
|
|
||||||
<h4>Community</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Forum</a></li>
|
|
||||||
<li><a href="#">Support</a></li>
|
|
||||||
<li><a href="#">Changelog</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="footer-section">
|
|
||||||
<h4>Rechtliches</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="impressum.html">Impressum</a></li>
|
|
||||||
<li><a href="datenschutz.html">Datenschutz</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="footer-bottom">
|
|
||||||
<p>© 2025 DocuMentor. Alle Rechte vorbehalten.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<script src="script.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
-275
@@ -1,275 +0,0 @@
|
|||||||
// Smooth Scrolling für Navigation
|
|
||||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
|
||||||
anchor.addEventListener('click', function (e) {
|
|
||||||
e.preventDefault();
|
|
||||||
const target = document.querySelector(this.getAttribute('href'));
|
|
||||||
if (target) {
|
|
||||||
const navHeight = document.querySelector('.navbar').offsetHeight;
|
|
||||||
const targetPosition = target.getBoundingClientRect().top + window.pageYOffset - navHeight;
|
|
||||||
window.scrollTo({
|
|
||||||
top: targetPosition,
|
|
||||||
behavior: 'smooth'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Intersection Observer für Fade-In Animationen
|
|
||||||
const observerOptions = {
|
|
||||||
threshold: 0.1,
|
|
||||||
rootMargin: '0px 0px -50px 0px'
|
|
||||||
};
|
|
||||||
|
|
||||||
const observer = new IntersectionObserver((entries) => {
|
|
||||||
entries.forEach(entry => {
|
|
||||||
if (entry.isIntersecting) {
|
|
||||||
entry.target.classList.add('visible');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, observerOptions);
|
|
||||||
|
|
||||||
// Füge Fade-In Klassen zu Elementen hinzu
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
|
||||||
const animatedElements = document.querySelectorAll(
|
|
||||||
'.feature-card, .workflow-step, .tech-item, .benefit-item, .download-card'
|
|
||||||
);
|
|
||||||
|
|
||||||
animatedElements.forEach((el, index) => {
|
|
||||||
el.classList.add('fade-in');
|
|
||||||
el.style.transitionDelay = `${index * 0.1}s`;
|
|
||||||
observer.observe(el);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Navbar Scroll-Effekt
|
|
||||||
let lastScroll = 0;
|
|
||||||
const navbar = document.querySelector('.navbar');
|
|
||||||
|
|
||||||
window.addEventListener('scroll', () => {
|
|
||||||
const currentScroll = window.pageYOffset;
|
|
||||||
|
|
||||||
if (currentScroll <= 0) {
|
|
||||||
navbar.style.boxShadow = 'none';
|
|
||||||
} else {
|
|
||||||
navbar.style.boxShadow = '0 2px 10px rgba(0, 0, 0, 0.3)';
|
|
||||||
}
|
|
||||||
|
|
||||||
lastScroll = currentScroll;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Feature-Card Parallax-Effekt
|
|
||||||
document.querySelectorAll('.feature-card').forEach(card => {
|
|
||||||
card.addEventListener('mousemove', (e) => {
|
|
||||||
const rect = card.getBoundingClientRect();
|
|
||||||
const x = e.clientX - rect.left;
|
|
||||||
const y = e.clientY - rect.top;
|
|
||||||
|
|
||||||
const centerX = rect.width / 2;
|
|
||||||
const centerY = rect.height / 2;
|
|
||||||
|
|
||||||
const deltaX = (x - centerX) / centerX;
|
|
||||||
const deltaY = (y - centerY) / centerY;
|
|
||||||
|
|
||||||
card.style.transform = `perspective(1000px) rotateY(${deltaX * 5}deg) rotateX(${-deltaY * 5}deg) translateY(-5px)`;
|
|
||||||
});
|
|
||||||
|
|
||||||
card.addEventListener('mouseleave', () => {
|
|
||||||
card.style.transform = 'perspective(1000px) rotateY(0deg) rotateX(0deg) translateY(0)';
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Download-Button Analytics (Placeholder)
|
|
||||||
document.querySelectorAll('.btn-download').forEach(button => {
|
|
||||||
button.addEventListener('click', (e) => {
|
|
||||||
e.preventDefault();
|
|
||||||
const platform = e.target.closest('.download-card').querySelector('h3').textContent;
|
|
||||||
console.log(`Download initiated for: ${platform}`);
|
|
||||||
|
|
||||||
// Hier könnte eine echte Download-Logik oder Analytics-Tracking erfolgen
|
|
||||||
alert(`Download für ${platform} würde hier starten.\nBitte konfigurieren Sie die Download-Links in der index.html.`);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Mobile Navigation Toggle (für zukünftige Erweiterung)
|
|
||||||
const createMobileMenu = () => {
|
|
||||||
const navMenu = document.querySelector('.nav-menu');
|
|
||||||
const navbar = document.querySelector('.navbar .container');
|
|
||||||
|
|
||||||
// Erstelle Hamburger-Button nur auf mobilen Geräten
|
|
||||||
if (window.innerWidth <= 768) {
|
|
||||||
const existingToggle = document.querySelector('.nav-toggle');
|
|
||||||
if (existingToggle) return;
|
|
||||||
|
|
||||||
const toggle = document.createElement('button');
|
|
||||||
toggle.className = 'nav-toggle';
|
|
||||||
toggle.innerHTML = '☰';
|
|
||||||
toggle.style.cssText = `
|
|
||||||
background: none;
|
|
||||||
border: none;
|
|
||||||
color: var(--text-primary);
|
|
||||||
font-size: 1.5rem;
|
|
||||||
cursor: pointer;
|
|
||||||
padding: 0.5rem;
|
|
||||||
`;
|
|
||||||
|
|
||||||
toggle.addEventListener('click', () => {
|
|
||||||
navMenu.style.display = navMenu.style.display === 'flex' ? 'none' : 'flex';
|
|
||||||
if (navMenu.style.display === 'flex') {
|
|
||||||
navMenu.style.cssText = `
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
position: absolute;
|
|
||||||
top: 100%;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
background: var(--surface);
|
|
||||||
padding: 1rem;
|
|
||||||
border-top: 1px solid var(--surface-light);
|
|
||||||
`;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
navbar.appendChild(toggle);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Responsive Handling
|
|
||||||
window.addEventListener('resize', createMobileMenu);
|
|
||||||
createMobileMenu();
|
|
||||||
|
|
||||||
// Particle Background Animation (optional, dezent)
|
|
||||||
const createParticles = () => {
|
|
||||||
const hero = document.querySelector('.hero');
|
|
||||||
const particlesContainer = document.createElement('div');
|
|
||||||
particlesContainer.className = 'particles';
|
|
||||||
particlesContainer.style.cssText = `
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
overflow: hidden;
|
|
||||||
pointer-events: none;
|
|
||||||
opacity: 0.3;
|
|
||||||
`;
|
|
||||||
|
|
||||||
for (let i = 0; i < 20; i++) {
|
|
||||||
const particle = document.createElement('div');
|
|
||||||
particle.style.cssText = `
|
|
||||||
position: absolute;
|
|
||||||
width: 4px;
|
|
||||||
height: 4px;
|
|
||||||
background: var(--primary-color);
|
|
||||||
border-radius: 50%;
|
|
||||||
left: ${Math.random() * 100}%;
|
|
||||||
top: ${Math.random() * 100}%;
|
|
||||||
animation: float-particle ${5 + Math.random() * 10}s infinite ease-in-out;
|
|
||||||
animation-delay: ${Math.random() * 5}s;
|
|
||||||
`;
|
|
||||||
particlesContainer.appendChild(particle);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Füge Animation hinzu
|
|
||||||
if (!document.querySelector('#particle-animation')) {
|
|
||||||
const style = document.createElement('style');
|
|
||||||
style.id = 'particle-animation';
|
|
||||||
style.textContent = `
|
|
||||||
@keyframes float-particle {
|
|
||||||
0%, 100% {
|
|
||||||
transform: translate(0, 0);
|
|
||||||
}
|
|
||||||
25% {
|
|
||||||
transform: translate(20px, -20px);
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
transform: translate(-20px, -40px);
|
|
||||||
}
|
|
||||||
75% {
|
|
||||||
transform: translate(20px, -60px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
document.head.appendChild(style);
|
|
||||||
}
|
|
||||||
|
|
||||||
hero.style.position = 'relative';
|
|
||||||
hero.insertBefore(particlesContainer, hero.firstChild);
|
|
||||||
};
|
|
||||||
|
|
||||||
// Initialisiere Partikel nur auf Desktop
|
|
||||||
if (window.innerWidth > 768) {
|
|
||||||
createParticles();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Counter Animation für Benefits
|
|
||||||
const animateCounters = () => {
|
|
||||||
const counters = document.querySelectorAll('.benefit-number');
|
|
||||||
|
|
||||||
counters.forEach(counter => {
|
|
||||||
const target = counter.textContent;
|
|
||||||
|
|
||||||
// Prüfe ob es eine Zahl ist
|
|
||||||
if (!isNaN(parseInt(target))) {
|
|
||||||
const targetNum = parseInt(target);
|
|
||||||
const duration = 2000;
|
|
||||||
const increment = targetNum / (duration / 16);
|
|
||||||
let current = 0;
|
|
||||||
|
|
||||||
const updateCounter = () => {
|
|
||||||
current += increment;
|
|
||||||
if (current < targetNum) {
|
|
||||||
counter.textContent = Math.floor(current) + 'x';
|
|
||||||
requestAnimationFrame(updateCounter);
|
|
||||||
} else {
|
|
||||||
counter.textContent = target;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Starte Animation wenn Element sichtbar wird
|
|
||||||
const counterObserver = new IntersectionObserver((entries) => {
|
|
||||||
entries.forEach(entry => {
|
|
||||||
if (entry.isIntersecting) {
|
|
||||||
updateCounter();
|
|
||||||
counterObserver.unobserve(entry.target);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
counterObserver.observe(counter);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
animateCounters();
|
|
||||||
|
|
||||||
// Easter Egg: Konami Code
|
|
||||||
let konamiCode = [];
|
|
||||||
const konamiSequence = ['ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowLeft', 'ArrowRight', 'b', 'a'];
|
|
||||||
|
|
||||||
document.addEventListener('keydown', (e) => {
|
|
||||||
konamiCode.push(e.key);
|
|
||||||
konamiCode = konamiCode.slice(-10);
|
|
||||||
|
|
||||||
if (konamiCode.join(',') === konamiSequence.join(',')) {
|
|
||||||
document.body.style.animation = 'rainbow 2s infinite';
|
|
||||||
|
|
||||||
if (!document.querySelector('#rainbow-animation')) {
|
|
||||||
const style = document.createElement('style');
|
|
||||||
style.id = 'rainbow-animation';
|
|
||||||
style.textContent = `
|
|
||||||
@keyframes rainbow {
|
|
||||||
0% { filter: hue-rotate(0deg); }
|
|
||||||
100% { filter: hue-rotate(360deg); }
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
document.head.appendChild(style);
|
|
||||||
}
|
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
document.body.style.animation = '';
|
|
||||||
}, 5000);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log('%c🚀 DocuMentor', 'font-size: 24px; font-weight: bold; background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%); -webkit-background-clip: text; color: transparent;');
|
|
||||||
console.log('%cProfessionelle XSL-Transformations-Verwaltung', 'font-size: 14px; color: #94a3b8;');
|
|
||||||
-542
@@ -1,542 +0,0 @@
|
|||||||
/* Reset und Basis-Styles */
|
|
||||||
* {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
:root {
|
|
||||||
--primary-color: #3b82f6;
|
|
||||||
--primary-dark: #2563eb;
|
|
||||||
--secondary-color: #8b5cf6;
|
|
||||||
--background: #0f172a;
|
|
||||||
--surface: #1e293b;
|
|
||||||
--surface-light: #334155;
|
|
||||||
--text-primary: #f1f5f9;
|
|
||||||
--text-secondary: #cbd5e1;
|
|
||||||
--text-muted: #94a3b8;
|
|
||||||
--accent: #06b6d4;
|
|
||||||
--success: #22c55e;
|
|
||||||
--warning: #eab308;
|
|
||||||
--error: #ef4444;
|
|
||||||
--gradient: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
|
||||||
background-color: var(--background);
|
|
||||||
color: var(--text-primary);
|
|
||||||
line-height: 1.6;
|
|
||||||
overflow-x: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container {
|
|
||||||
max-width: 1200px;
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 0 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Navigation */
|
|
||||||
.navbar {
|
|
||||||
background-color: rgba(15, 23, 42, 0.95);
|
|
||||||
backdrop-filter: blur(10px);
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
z-index: 1000;
|
|
||||||
border-bottom: 1px solid var(--surface-light);
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar .container {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
padding: 1rem 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-brand h1 {
|
|
||||||
font-size: 1.5rem;
|
|
||||||
background: var(--gradient);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-clip: text;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-menu {
|
|
||||||
display: flex;
|
|
||||||
list-style: none;
|
|
||||||
gap: 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-menu a {
|
|
||||||
color: var(--text-secondary);
|
|
||||||
text-decoration: none;
|
|
||||||
font-weight: 500;
|
|
||||||
transition: color 0.3s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-menu a:hover {
|
|
||||||
color: var(--primary-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Hero Section */
|
|
||||||
.hero {
|
|
||||||
margin-top: 80px;
|
|
||||||
padding: 6rem 0;
|
|
||||||
background: linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, rgba(139, 92, 246, 0.1) 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.hero .container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 1fr;
|
|
||||||
gap: 4rem;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hero-title {
|
|
||||||
font-size: 3.5rem;
|
|
||||||
font-weight: 700;
|
|
||||||
line-height: 1.2;
|
|
||||||
margin-bottom: 1.5rem;
|
|
||||||
background: var(--gradient);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-clip: text;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hero-subtitle {
|
|
||||||
font-size: 1.25rem;
|
|
||||||
color: var(--text-secondary);
|
|
||||||
margin-bottom: 2rem;
|
|
||||||
line-height: 1.8;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hero-buttons {
|
|
||||||
display: flex;
|
|
||||||
gap: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn {
|
|
||||||
padding: 0.875rem 2rem;
|
|
||||||
border-radius: 0.5rem;
|
|
||||||
text-decoration: none;
|
|
||||||
font-weight: 600;
|
|
||||||
transition: all 0.3s;
|
|
||||||
display: inline-block;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-primary {
|
|
||||||
background: var(--gradient);
|
|
||||||
color: white;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-primary:hover {
|
|
||||||
transform: translateY(-2px);
|
|
||||||
box-shadow: 0 10px 25px rgba(59, 130, 246, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-secondary {
|
|
||||||
background: transparent;
|
|
||||||
color: var(--text-primary);
|
|
||||||
border: 2px solid var(--primary-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-secondary:hover {
|
|
||||||
background: var(--primary-color);
|
|
||||||
transform: translateY(-2px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.screenshot-placeholder {
|
|
||||||
width: 100%;
|
|
||||||
border-radius: 1rem;
|
|
||||||
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
|
|
||||||
overflow: hidden;
|
|
||||||
animation: float 6s ease-in-out infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes float {
|
|
||||||
0%, 100% { transform: translateY(0px); }
|
|
||||||
50% { transform: translateY(-20px); }
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Features Section */
|
|
||||||
.features {
|
|
||||||
padding: 6rem 0;
|
|
||||||
background-color: var(--background);
|
|
||||||
}
|
|
||||||
|
|
||||||
.section-title {
|
|
||||||
font-size: 2.5rem;
|
|
||||||
text-align: center;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
background: var(--gradient);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-clip: text;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section-subtitle {
|
|
||||||
text-align: center;
|
|
||||||
color: var(--text-secondary);
|
|
||||||
font-size: 1.125rem;
|
|
||||||
margin-bottom: 4rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.features-grid {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
|
||||||
gap: 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.feature-card {
|
|
||||||
background: var(--surface);
|
|
||||||
padding: 2rem;
|
|
||||||
border-radius: 1rem;
|
|
||||||
border: 1px solid var(--surface-light);
|
|
||||||
transition: all 0.3s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.feature-card:hover {
|
|
||||||
transform: translateY(-5px);
|
|
||||||
border-color: var(--primary-color);
|
|
||||||
box-shadow: 0 10px 30px rgba(59, 130, 246, 0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
.feature-icon {
|
|
||||||
width: 3rem;
|
|
||||||
height: 3rem;
|
|
||||||
margin-bottom: 1.5rem;
|
|
||||||
color: var(--primary-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.feature-icon svg {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.feature-card h3 {
|
|
||||||
font-size: 1.25rem;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
color: var(--text-primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.feature-card p {
|
|
||||||
color: var(--text-secondary);
|
|
||||||
line-height: 1.7;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Workflow Section */
|
|
||||||
.workflow {
|
|
||||||
padding: 6rem 0;
|
|
||||||
background: linear-gradient(135deg, rgba(59, 130, 246, 0.05) 0%, rgba(139, 92, 246, 0.05) 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.workflow-steps {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
gap: 1rem;
|
|
||||||
margin-top: 3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workflow-step {
|
|
||||||
flex: 1;
|
|
||||||
background: var(--surface);
|
|
||||||
padding: 2rem;
|
|
||||||
border-radius: 1rem;
|
|
||||||
text-align: center;
|
|
||||||
border: 1px solid var(--surface-light);
|
|
||||||
transition: all 0.3s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workflow-step:hover {
|
|
||||||
transform: translateY(-5px);
|
|
||||||
border-color: var(--primary-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.step-number {
|
|
||||||
width: 3rem;
|
|
||||||
height: 3rem;
|
|
||||||
background: var(--gradient);
|
|
||||||
border-radius: 50%;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
margin: 0 auto 1.5rem;
|
|
||||||
font-size: 1.5rem;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workflow-arrow {
|
|
||||||
font-size: 2rem;
|
|
||||||
color: var(--primary-color);
|
|
||||||
flex-shrink: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workflow-step h3 {
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
font-size: 1.25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workflow-step p {
|
|
||||||
color: var(--text-secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Technology Section */
|
|
||||||
.technology {
|
|
||||||
padding: 6rem 0;
|
|
||||||
background-color: var(--background);
|
|
||||||
}
|
|
||||||
|
|
||||||
.tech-grid {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
|
||||||
gap: 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tech-item {
|
|
||||||
background: var(--surface);
|
|
||||||
padding: 2rem;
|
|
||||||
border-radius: 1rem;
|
|
||||||
border-left: 4px solid var(--primary-color);
|
|
||||||
transition: all 0.3s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tech-item:hover {
|
|
||||||
border-left-color: var(--secondary-color);
|
|
||||||
transform: translateX(5px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.tech-item h3 {
|
|
||||||
color: var(--primary-color);
|
|
||||||
margin-bottom: 0.75rem;
|
|
||||||
font-size: 1.25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tech-item p {
|
|
||||||
color: var(--text-secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Benefits Section */
|
|
||||||
.benefits {
|
|
||||||
padding: 6rem 0;
|
|
||||||
background: linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, rgba(139, 92, 246, 0.1) 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.benefits-grid {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
|
||||||
gap: 2rem;
|
|
||||||
margin-top: 3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.benefit-item {
|
|
||||||
text-align: center;
|
|
||||||
padding: 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.benefit-number {
|
|
||||||
font-size: 4rem;
|
|
||||||
font-weight: 700;
|
|
||||||
background: var(--gradient);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-clip: text;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.benefit-item p {
|
|
||||||
font-size: 1.125rem;
|
|
||||||
color: var(--text-secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Download Section */
|
|
||||||
.download {
|
|
||||||
padding: 6rem 0;
|
|
||||||
background-color: var(--background);
|
|
||||||
}
|
|
||||||
|
|
||||||
.download-buttons {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
|
||||||
gap: 2rem;
|
|
||||||
margin: 3rem 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.download-card {
|
|
||||||
background: var(--surface);
|
|
||||||
padding: 2rem;
|
|
||||||
border-radius: 1rem;
|
|
||||||
text-align: center;
|
|
||||||
border: 1px solid var(--surface-light);
|
|
||||||
transition: all 0.3s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.download-card:hover {
|
|
||||||
border-color: var(--primary-color);
|
|
||||||
transform: translateY(-5px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.download-card h3 {
|
|
||||||
font-size: 1.5rem;
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.download-card p {
|
|
||||||
color: var(--text-muted);
|
|
||||||
margin-bottom: 1.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-download {
|
|
||||||
background: var(--gradient);
|
|
||||||
color: white;
|
|
||||||
border: none;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-download:hover {
|
|
||||||
transform: translateY(-2px);
|
|
||||||
box-shadow: 0 10px 25px rgba(59, 130, 246, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
.installation-note {
|
|
||||||
background: var(--surface);
|
|
||||||
padding: 2rem;
|
|
||||||
border-radius: 1rem;
|
|
||||||
margin-top: 3rem;
|
|
||||||
border: 1px solid var(--surface-light);
|
|
||||||
}
|
|
||||||
|
|
||||||
.installation-note h3 {
|
|
||||||
margin-bottom: 1.5rem;
|
|
||||||
color: var(--primary-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.code-block {
|
|
||||||
background: var(--background);
|
|
||||||
padding: 1.5rem;
|
|
||||||
border-radius: 0.5rem;
|
|
||||||
border: 1px solid var(--surface-light);
|
|
||||||
overflow-x: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.code-block code {
|
|
||||||
color: var(--accent);
|
|
||||||
font-family: 'Courier New', monospace;
|
|
||||||
font-size: 0.875rem;
|
|
||||||
line-height: 1.8;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Footer */
|
|
||||||
.footer {
|
|
||||||
background-color: var(--surface);
|
|
||||||
padding: 4rem 0 2rem;
|
|
||||||
border-top: 1px solid var(--surface-light);
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-content {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
|
||||||
gap: 3rem;
|
|
||||||
margin-bottom: 3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-section h3 {
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
background: var(--gradient);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
background-clip: text;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-section h4 {
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
color: var(--text-primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-section p {
|
|
||||||
color: var(--text-secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-section ul {
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-section ul li {
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-section ul li a {
|
|
||||||
color: var(--text-secondary);
|
|
||||||
text-decoration: none;
|
|
||||||
transition: color 0.3s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-section ul li a:hover {
|
|
||||||
color: var(--primary-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-bottom {
|
|
||||||
text-align: center;
|
|
||||||
padding-top: 2rem;
|
|
||||||
border-top: 1px solid var(--surface-light);
|
|
||||||
color: var(--text-muted);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Responsive Design */
|
|
||||||
@media (max-width: 768px) {
|
|
||||||
.hero .container {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
gap: 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hero-title {
|
|
||||||
font-size: 2.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workflow-steps {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workflow-arrow {
|
|
||||||
transform: rotate(90deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-menu {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.features-grid {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
.download-buttons {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Scroll Animations */
|
|
||||||
.fade-in {
|
|
||||||
opacity: 0;
|
|
||||||
transform: translateY(20px);
|
|
||||||
transition: opacity 0.6s, transform 0.6s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fade-in.visible {
|
|
||||||
opacity: 1;
|
|
||||||
transform: translateY(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Smooth Scrolling */
|
|
||||||
html {
|
|
||||||
scroll-behavior: smooth;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Selection */
|
|
||||||
::selection {
|
|
||||||
background-color: var(--primary-color);
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 38 KiB |
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 153 KiB |
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 605 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,951 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Datenschutz — DocuMentor</title>
|
||||||
|
<link rel="stylesheet" href="fonts/fonts.css">
|
||||||
|
<style>
|
||||||
|
/* ============================================================
|
||||||
|
RESET & BASE
|
||||||
|
============================================================ */
|
||||||
|
*, *::before, *::after {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--concrete-dark: #1a1a1a;
|
||||||
|
--concrete-mid: #2a2a2a;
|
||||||
|
--concrete-light: #3a3a3a;
|
||||||
|
--concrete-surface: #444444;
|
||||||
|
--warning-yellow: #f0c030;
|
||||||
|
--warning-yellow-dim: #e8b800;
|
||||||
|
--safety-orange: #e05020;
|
||||||
|
--steel-text: #b0b0b0;
|
||||||
|
--steel-bright: #d0d0d0;
|
||||||
|
--white: #f0efe8;
|
||||||
|
--grid-line: rgba(240, 192, 48, 0.07);
|
||||||
|
--grid-dot: rgba(240, 192, 48, 0.12);
|
||||||
|
--led-green: #30e060;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: 'Barlow', sans-serif;
|
||||||
|
background-color: var(--concrete-dark);
|
||||||
|
color: var(--steel-text);
|
||||||
|
line-height: 1.6;
|
||||||
|
overflow-x: hidden;
|
||||||
|
background-image:
|
||||||
|
repeating-linear-gradient(
|
||||||
|
0deg,
|
||||||
|
transparent,
|
||||||
|
transparent 2px,
|
||||||
|
rgba(255,255,255,0.008) 2px,
|
||||||
|
rgba(255,255,255,0.008) 4px
|
||||||
|
),
|
||||||
|
repeating-linear-gradient(
|
||||||
|
90deg,
|
||||||
|
transparent,
|
||||||
|
transparent 2px,
|
||||||
|
rgba(255,255,255,0.005) 2px,
|
||||||
|
rgba(255,255,255,0.005) 4px
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
body::before {
|
||||||
|
content: '';
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
pointer-events: none;
|
||||||
|
z-index: 0;
|
||||||
|
background-image:
|
||||||
|
radial-gradient(circle, var(--grid-dot) 1px, transparent 1px);
|
||||||
|
background-size: 40px 40px;
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
UTILITY
|
||||||
|
============================================================ */
|
||||||
|
.container {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 0 2rem;
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
section {
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
STENCIL SECTION LABELS
|
||||||
|
============================================================ */
|
||||||
|
.section-label {
|
||||||
|
font-family: 'Oswald', sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
letter-spacing: 0.3em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: var(--warning-yellow-dim);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 1rem;
|
||||||
|
margin-bottom: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-label::before {
|
||||||
|
content: attr(data-num);
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.65rem;
|
||||||
|
color: var(--concrete-surface);
|
||||||
|
border: 1px dashed var(--concrete-surface);
|
||||||
|
padding: 0.15rem 0.4rem;
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-title {
|
||||||
|
font-family: 'Oswald', sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 2.5rem;
|
||||||
|
color: var(--white);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.05em;
|
||||||
|
line-height: 1.1;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
HAZARD STRIPE
|
||||||
|
============================================================ */
|
||||||
|
.hazard-stripe {
|
||||||
|
height: 6px;
|
||||||
|
background: repeating-linear-gradient(
|
||||||
|
-45deg,
|
||||||
|
var(--warning-yellow),
|
||||||
|
var(--warning-yellow) 8px,
|
||||||
|
var(--concrete-dark) 8px,
|
||||||
|
var(--concrete-dark) 16px
|
||||||
|
);
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hazard-stripe-thin {
|
||||||
|
height: 3px;
|
||||||
|
background: repeating-linear-gradient(
|
||||||
|
-45deg,
|
||||||
|
var(--warning-yellow-dim),
|
||||||
|
var(--warning-yellow-dim) 5px,
|
||||||
|
var(--concrete-mid) 5px,
|
||||||
|
var(--concrete-mid) 10px
|
||||||
|
);
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
CORNER BRACKETS
|
||||||
|
============================================================ */
|
||||||
|
.corner-brackets {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.corner-brackets::before,
|
||||||
|
.corner-brackets::after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.corner-brackets::before {
|
||||||
|
top: -1px;
|
||||||
|
left: -1px;
|
||||||
|
border-top: 2px solid var(--warning-yellow-dim);
|
||||||
|
border-left: 2px solid var(--warning-yellow-dim);
|
||||||
|
}
|
||||||
|
|
||||||
|
.corner-brackets::after {
|
||||||
|
bottom: -1px;
|
||||||
|
right: -1px;
|
||||||
|
border-bottom: 2px solid var(--warning-yellow-dim);
|
||||||
|
border-right: 2px solid var(--warning-yellow-dim);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
RIVET DECORATIONS
|
||||||
|
============================================================ */
|
||||||
|
.riveted {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.riveted .rivet {
|
||||||
|
position: absolute;
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: radial-gradient(circle at 35% 35%, #555, #2a2a2a 60%, #1a1a1a);
|
||||||
|
box-shadow: inset 0 1px 1px rgba(255,255,255,0.15), 0 1px 2px rgba(0,0,0,0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.riveted .rivet-tl { top: 10px; left: 10px; }
|
||||||
|
.riveted .rivet-tr { top: 10px; right: 10px; }
|
||||||
|
.riveted .rivet-bl { bottom: 10px; left: 10px; }
|
||||||
|
.riveted .rivet-br { bottom: 10px; right: 10px; }
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
LED INDICATOR
|
||||||
|
============================================================ */
|
||||||
|
.led {
|
||||||
|
display: inline-block;
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-right: 6px;
|
||||||
|
vertical-align: middle;
|
||||||
|
box-shadow: 0 0 4px currentColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
.led-green {
|
||||||
|
background-color: var(--led-green);
|
||||||
|
color: var(--led-green);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
SCROLL REVEAL
|
||||||
|
============================================================ */
|
||||||
|
.reveal {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(30px);
|
||||||
|
transition: opacity 0.6s linear, transform 0.6s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal.visible {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translate(0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
NAVBAR
|
||||||
|
============================================================ */
|
||||||
|
.navbar {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
z-index: 1000;
|
||||||
|
background: rgba(26, 26, 26, 0.92);
|
||||||
|
backdrop-filter: blur(10px);
|
||||||
|
border-bottom: 1px solid rgba(240, 192, 48, 0.12);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-inner {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 2rem;
|
||||||
|
height: 56px;
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.5rem;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-brand-icon {
|
||||||
|
width: 28px;
|
||||||
|
height: 28px;
|
||||||
|
border: 2px solid var(--warning-yellow);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-family: 'Oswald', sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: var(--warning-yellow);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-brand-text {
|
||||||
|
font-family: 'Oswald', sans-serif;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
color: var(--white);
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-links {
|
||||||
|
display: flex;
|
||||||
|
gap: 2rem;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-links a {
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
color: var(--steel-text);
|
||||||
|
text-decoration: none;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.15em;
|
||||||
|
padding: 0.25rem 0;
|
||||||
|
border-bottom: 1px solid transparent;
|
||||||
|
transition: color 0.2s linear, border-color 0.2s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-links a:hover,
|
||||||
|
.navbar-links a.active {
|
||||||
|
color: var(--warning-yellow);
|
||||||
|
border-bottom-color: var(--warning-yellow);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-mobile-toggle {
|
||||||
|
display: none;
|
||||||
|
background: none;
|
||||||
|
border: 1px solid var(--concrete-surface);
|
||||||
|
color: var(--steel-text);
|
||||||
|
padding: 0.4rem 0.6rem;
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
cursor: pointer;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
PAGE HEADER
|
||||||
|
============================================================ */
|
||||||
|
.page-header {
|
||||||
|
padding-top: 56px;
|
||||||
|
background: linear-gradient(135deg, var(--concrete-dark) 0%, var(--concrete-mid) 50%, var(--concrete-dark) 100%);
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
inset: 0;
|
||||||
|
background-image:
|
||||||
|
linear-gradient(var(--grid-line) 1px, transparent 1px),
|
||||||
|
linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
|
||||||
|
background-size: 80px 80px;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header-inner {
|
||||||
|
padding: 3rem 0 2.5rem;
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header-tag {
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.7rem;
|
||||||
|
color: var(--concrete-surface);
|
||||||
|
letter-spacing: 0.2em;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header-title {
|
||||||
|
font-family: 'Oswald', sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 3rem;
|
||||||
|
color: var(--white);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.08em;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header-title span {
|
||||||
|
color: var(--warning-yellow);
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header-sub {
|
||||||
|
font-family: 'Barlow Condensed', sans-serif;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
color: var(--steel-text);
|
||||||
|
margin-top: 0.5rem;
|
||||||
|
letter-spacing: 0.04em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
LEGAL CONTENT
|
||||||
|
============================================================ */
|
||||||
|
.legal-section {
|
||||||
|
padding: 5rem 0;
|
||||||
|
background: var(--concrete-dark);
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-panel {
|
||||||
|
background: var(--concrete-mid);
|
||||||
|
border: 1px solid rgba(240, 192, 48, 0.12);
|
||||||
|
padding: 3rem;
|
||||||
|
max-width: 860px;
|
||||||
|
margin: 0 auto;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block {
|
||||||
|
margin-bottom: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block-label {
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.65rem;
|
||||||
|
color: var(--concrete-surface);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.2em;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block-label::before {
|
||||||
|
content: '';
|
||||||
|
display: inline-block;
|
||||||
|
width: 20px;
|
||||||
|
height: 1px;
|
||||||
|
background: var(--concrete-surface);
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block h2 {
|
||||||
|
font-family: 'Barlow Condensed', sans-serif;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 1.3rem;
|
||||||
|
color: var(--steel-bright);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.05em;
|
||||||
|
margin-bottom: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block p {
|
||||||
|
font-family: 'Barlow', sans-serif;
|
||||||
|
font-weight: 300;
|
||||||
|
font-size: 0.95rem;
|
||||||
|
color: var(--steel-text);
|
||||||
|
line-height: 1.7;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block a {
|
||||||
|
color: var(--warning-yellow-dim);
|
||||||
|
text-decoration: none;
|
||||||
|
border-bottom: 1px solid transparent;
|
||||||
|
transition: border-color 0.2s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block a:hover {
|
||||||
|
border-bottom-color: var(--warning-yellow-dim);
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block ul {
|
||||||
|
margin: 0.5rem 0 0.5rem 1.5rem;
|
||||||
|
font-family: 'Barlow', sans-serif;
|
||||||
|
font-weight: 300;
|
||||||
|
font-size: 0.95rem;
|
||||||
|
color: var(--steel-text);
|
||||||
|
line-height: 1.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block ul li {
|
||||||
|
margin-bottom: 0.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-divider {
|
||||||
|
height: 1px;
|
||||||
|
background: linear-gradient(90deg,
|
||||||
|
transparent 0%,
|
||||||
|
rgba(240, 192, 48, 0.15) 20%,
|
||||||
|
rgba(240, 192, 48, 0.15) 80%,
|
||||||
|
transparent 100%
|
||||||
|
);
|
||||||
|
margin: 2.5rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-address {
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: var(--steel-text);
|
||||||
|
line-height: 2;
|
||||||
|
padding: 1rem 1.25rem;
|
||||||
|
background: rgba(26, 26, 26, 0.6);
|
||||||
|
border: 1px dashed rgba(240, 192, 48, 0.1);
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-address strong {
|
||||||
|
color: var(--steel-bright);
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-note {
|
||||||
|
margin-top: 1.5rem;
|
||||||
|
padding: 1rem 1.25rem;
|
||||||
|
border-left: 3px solid var(--safety-orange);
|
||||||
|
background: rgba(224, 80, 32, 0.05);
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
color: var(--steel-text);
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-note strong {
|
||||||
|
color: var(--safety-orange);
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
FOOTER
|
||||||
|
============================================================ */
|
||||||
|
.footer {
|
||||||
|
padding: 3rem 0 2rem;
|
||||||
|
background: var(--concrete-dark);
|
||||||
|
border-top: 1px solid rgba(240, 192, 48, 0.08);
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-inner {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-brand {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-brand-icon {
|
||||||
|
width: 22px;
|
||||||
|
height: 22px;
|
||||||
|
border: 1.5px solid var(--warning-yellow-dim);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-family: 'Oswald', sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 0.7rem;
|
||||||
|
color: var(--warning-yellow-dim);
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-brand-text {
|
||||||
|
font-family: 'Oswald', sans-serif;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: var(--steel-text);
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-meta {
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.65rem;
|
||||||
|
color: var(--concrete-surface);
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-links {
|
||||||
|
display: flex;
|
||||||
|
gap: 1.5rem;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-links a {
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.7rem;
|
||||||
|
color: var(--steel-text);
|
||||||
|
text-decoration: none;
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
transition: color 0.2s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-links a:hover,
|
||||||
|
.footer-links a.active {
|
||||||
|
color: var(--warning-yellow);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
RESPONSIVE
|
||||||
|
============================================================ */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.navbar-links {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 56px;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
background: rgba(26, 26, 26, 0.97);
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 1rem 2rem;
|
||||||
|
gap: 0.75rem;
|
||||||
|
border-bottom: 1px solid rgba(240, 192, 48, 0.12);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-links.open {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-mobile-toggle {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header-title {
|
||||||
|
font-size: 2.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-panel {
|
||||||
|
padding: 2rem 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-inner {
|
||||||
|
flex-direction: column;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-links {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-meta {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 480px) {
|
||||||
|
.container {
|
||||||
|
padding: 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header-title {
|
||||||
|
font-size: 1.8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-panel {
|
||||||
|
padding: 1.5rem 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-inner {
|
||||||
|
padding: 0 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<!-- ============================================================
|
||||||
|
NAVBAR
|
||||||
|
============================================================ -->
|
||||||
|
<nav class="navbar">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<a href="index.html" class="navbar-brand">
|
||||||
|
<div class="navbar-brand-icon">D</div>
|
||||||
|
<span class="navbar-brand-text">DocuMentor</span>
|
||||||
|
</a>
|
||||||
|
<button class="navbar-mobile-toggle" id="navToggle">MENU</button>
|
||||||
|
<ul class="navbar-links" id="navLinks">
|
||||||
|
<li><a href="index.html#features">Features</a></li>
|
||||||
|
<li><a href="index.html#workflow">Workflow</a></li>
|
||||||
|
<li><a href="index.html#techstack">Technik</a></li>
|
||||||
|
<li><a href="index.html#download">Download</a></li>
|
||||||
|
<li><a href="datenschutz.html" class="active">Datenschutz</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<!-- ============================================================
|
||||||
|
PAGE HEADER
|
||||||
|
============================================================ -->
|
||||||
|
<div class="page-header">
|
||||||
|
<div class="hazard-stripe"></div>
|
||||||
|
<div class="container">
|
||||||
|
<div class="page-header-inner">
|
||||||
|
<div class="page-header-tag">
|
||||||
|
<span class="led led-green"></span>
|
||||||
|
SYSTEM AKTIV — DATENSCHUTZINFORMATIONEN
|
||||||
|
</div>
|
||||||
|
<h1 class="page-header-title">Daten<span>schutz</span></h1>
|
||||||
|
<p class="page-header-sub">Datenschutzerklärung gemäß DSGVO / BDSG</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hazard-stripe-thin"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- ============================================================
|
||||||
|
LEGAL CONTENT
|
||||||
|
============================================================ -->
|
||||||
|
<section class="legal-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-label reveal" data-num="DSE-01">Datenschutzerklärung</div>
|
||||||
|
<h2 class="section-title reveal" style="margin-bottom: 2rem;">Datenschutz</h2>
|
||||||
|
|
||||||
|
<div class="legal-panel corner-brackets riveted reveal">
|
||||||
|
<span class="rivet rivet-tl"></span>
|
||||||
|
<span class="rivet rivet-tr"></span>
|
||||||
|
<span class="rivet rivet-bl"></span>
|
||||||
|
<span class="rivet rivet-br"></span>
|
||||||
|
|
||||||
|
<!-- 1. Verantwortlicher -->
|
||||||
|
<div class="legal-block">
|
||||||
|
<div class="legal-block-label">§ 1 — VERANTWORTLICHER</div>
|
||||||
|
<h2>Verantwortlicher</h2>
|
||||||
|
<p>Verantwortlicher im Sinne der Datenschutz-Grundverordnung (DSGVO) und des Bundesdatenschutzgesetzes (BDSG) ist:</p>
|
||||||
|
<div class="legal-address" style="margin-top: 0.75rem;">
|
||||||
|
<strong>Vitali Graf</strong><br>
|
||||||
|
Kulenkampffallee 65b<br>
|
||||||
|
28213 Bremen<br>
|
||||||
|
Deutschland
|
||||||
|
E-Mail: <a href="mailto:info@vitaligraf.de">info@vitaligraf.de</a>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="legal-note" style="margin-top: 1rem;">
|
||||||
|
<strong>HINWEIS:</strong> Bitte Adresse vor Veröffentlichung ergänzen.
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="legal-divider"></div>
|
||||||
|
|
||||||
|
<!-- 2. Allgemeines -->
|
||||||
|
<div class="legal-block">
|
||||||
|
<div class="legal-block-label">§ 2 — GRUNDSATZ</div>
|
||||||
|
<h2>Allgemeines zur Datenverarbeitung</h2>
|
||||||
|
<p>
|
||||||
|
Diese Website ist eine statische Informationsseite über das Open-Source-Projekt
|
||||||
|
DocuMentor. Es werden <strong style="color: var(--steel-bright); font-weight: 400;">keine Cookies</strong>,
|
||||||
|
<strong style="color: var(--steel-bright); font-weight: 400;">keine Tracking-Skripte</strong> und
|
||||||
|
<strong style="color: var(--steel-bright); font-weight: 400;">keine Webanalyse-Dienste</strong> verwendet.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Alle Schriftarten werden lokal ausgeliefert. Es werden keine externen
|
||||||
|
Ressourcen von Drittanbietern geladen. Es findet keine Verarbeitung
|
||||||
|
personenbezogener Daten durch diese Website statt.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="legal-divider"></div>
|
||||||
|
|
||||||
|
<!-- 3. Server-Log -->
|
||||||
|
<div class="legal-block">
|
||||||
|
<div class="legal-block-label">§ 3 — SERVER-LOGDATEIEN</div>
|
||||||
|
<h2>Server-Logdateien</h2>
|
||||||
|
<p>
|
||||||
|
Beim Abruf dieser Website werden durch den Hosting-Anbieter automatisch
|
||||||
|
technische Zugriffsdaten in sogenannten Server-Logdateien erfasst.
|
||||||
|
Diese Daten werden nicht aktiv durch uns erhoben und umfassen:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Browsertyp und Browserversion</li>
|
||||||
|
<li>Verwendetes Betriebssystem</li>
|
||||||
|
<li>Referrer-URL (zuvor besuchte Seite)</li>
|
||||||
|
<li>Hostname des zugreifenden Rechners</li>
|
||||||
|
<li>Uhrzeit der Serveranfrage</li>
|
||||||
|
<li>IP-Adresse</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Die Rechtsgrundlage für diese technisch notwendige Verarbeitung ist
|
||||||
|
Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse am sicheren Betrieb
|
||||||
|
der Website). Die Daten werden nicht mit anderen Datenquellen zusammengeführt
|
||||||
|
und nach kurzer Zeit automatisch gelöscht.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="legal-divider"></div>
|
||||||
|
|
||||||
|
<!-- 4. Kontakt per E-Mail -->
|
||||||
|
<div class="legal-block">
|
||||||
|
<div class="legal-block-label">§ 4 — KONTAKTAUFNAHME</div>
|
||||||
|
<h2>Kontaktaufnahme per E-Mail</h2>
|
||||||
|
<p>
|
||||||
|
Wenn Sie uns per E-Mail kontaktieren, werden die übermittelten Daten
|
||||||
|
(E-Mail-Adresse, Inhalt Ihrer Nachricht sowie ggf. weitere von Ihnen
|
||||||
|
angegebene Daten) zur Bearbeitung Ihrer Anfrage und für den Fall von
|
||||||
|
Anschlussfragen gespeichert.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Die Verarbeitung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1
|
||||||
|
lit. b DSGVO, sofern Ihre Anfrage im Zusammenhang mit der Erfüllung
|
||||||
|
eines Vertrages steht oder zur Durchführung vorvertraglicher Maßnahmen
|
||||||
|
erforderlich ist. In allen übrigen Fällen beruht die Verarbeitung auf
|
||||||
|
unserem berechtigten Interesse an der effektiven Bearbeitung der an uns
|
||||||
|
gerichteten Anfragen (Art. 6 Abs. 1 lit. f DSGVO).
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Die Daten werden gelöscht, sobald Ihre Anfrage abschließend bearbeitet
|
||||||
|
wurde und keine gesetzlichen Aufbewahrungspflichten entgegenstehen.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="legal-divider"></div>
|
||||||
|
|
||||||
|
<!-- 5. Desktop-Anwendung -->
|
||||||
|
<div class="legal-block">
|
||||||
|
<div class="legal-block-label">§ 5 — DESKTOP-ANWENDUNG</div>
|
||||||
|
<h2>DocuMentor Desktop-Anwendung</h2>
|
||||||
|
<p>
|
||||||
|
Die DocuMentor-Anwendung selbst läuft ausschließlich lokal auf Ihrem
|
||||||
|
Rechner. Sie überträgt keine Daten an externe Server. Alle
|
||||||
|
Konfigurationsdaten und Projektdateien werden ausschließlich lokal
|
||||||
|
gespeichert:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Linux: <code style="font-family: 'Share Tech Mono', monospace; font-size: 0.85em; color: var(--warning-yellow-dim);">~/.config/DocuMentor/config.json</code></li>
|
||||||
|
<li>Windows: <code style="font-family: 'Share Tech Mono', monospace; font-size: 0.85em; color: var(--warning-yellow-dim);">%APPDATA%\DocuMentor\config.json</code></li>
|
||||||
|
<li>macOS: <code style="font-family: 'Share Tech Mono', monospace; font-size: 0.85em; color: var(--warning-yellow-dim);">~/Library/Application Support/DocuMentor/config.json</code></li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Datenbankverbindungen zu PostgreSQL werden nur auf ausdrückliche
|
||||||
|
Konfiguration durch den Nutzer hergestellt und ausschließlich für den
|
||||||
|
in der Anwendung angezeigten Zweck verwendet.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="legal-divider"></div>
|
||||||
|
|
||||||
|
<!-- 6. Betroffenenrechte -->
|
||||||
|
<div class="legal-block">
|
||||||
|
<div class="legal-block-label">§ 6 — IHRE RECHTE</div>
|
||||||
|
<h2>Ihre Rechte als betroffene Person</h2>
|
||||||
|
<p>Sie haben gegenüber uns folgende Rechte hinsichtlich Ihrer personenbezogenen Daten:</p>
|
||||||
|
<ul>
|
||||||
|
<li><strong style="color: var(--steel-bright); font-weight: 400;">Auskunftsrecht</strong> (Art. 15 DSGVO)</li>
|
||||||
|
<li><strong style="color: var(--steel-bright); font-weight: 400;">Recht auf Berichtigung</strong> (Art. 16 DSGVO)</li>
|
||||||
|
<li><strong style="color: var(--steel-bright); font-weight: 400;">Recht auf Löschung</strong> (Art. 17 DSGVO)</li>
|
||||||
|
<li><strong style="color: var(--steel-bright); font-weight: 400;">Recht auf Einschränkung der Verarbeitung</strong> (Art. 18 DSGVO)</li>
|
||||||
|
<li><strong style="color: var(--steel-bright); font-weight: 400;">Recht auf Datenübertragbarkeit</strong> (Art. 20 DSGVO)</li>
|
||||||
|
<li><strong style="color: var(--steel-bright); font-weight: 400;">Widerspruchsrecht</strong> (Art. 21 DSGVO)</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Zur Ausübung Ihrer Rechte wenden Sie sich bitte an:
|
||||||
|
<a href="mailto:info@vitaligraf.de">info@vitaligraf.de</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Sie haben zudem das Recht, sich bei einer Datenschutz-Aufsichtsbehörde
|
||||||
|
über die Verarbeitung Ihrer personenbezogenen Daten zu beschweren.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="legal-divider"></div>
|
||||||
|
|
||||||
|
<!-- 7. Aktualität -->
|
||||||
|
<div class="legal-block">
|
||||||
|
<div class="legal-block-label">§ 7 — AKTUALITÄT</div>
|
||||||
|
<h2>Aktualität dieser Datenschutzerklärung</h2>
|
||||||
|
<p>
|
||||||
|
Diese Datenschutzerklärung ist aktuell gültig und hat den Stand April 2026.
|
||||||
|
Durch die Weiterentwicklung dieser Website oder aufgrund geänderter
|
||||||
|
gesetzlicher bzw. behördlicher Vorgaben kann es notwendig werden,
|
||||||
|
diese Datenschutzerklärung zu ändern.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Die jeweils aktuelle Datenschutzerklärung kann jederzeit auf dieser
|
||||||
|
Seite abgerufen werden.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="hazard-stripe-thin"></div>
|
||||||
|
|
||||||
|
<!-- ============================================================
|
||||||
|
FOOTER
|
||||||
|
============================================================ -->
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-inner">
|
||||||
|
<div class="footer-brand">
|
||||||
|
<div class="footer-brand-icon">D</div>
|
||||||
|
<span class="footer-brand-text">DocuMentor</span>
|
||||||
|
</div>
|
||||||
|
<ul class="footer-links">
|
||||||
|
<li><a href="index.html#features">Features</a></li>
|
||||||
|
<li><a href="index.html#workflow">Workflow</a></li>
|
||||||
|
<li><a href="index.html#techstack">Technik</a></li>
|
||||||
|
<li><a href="index.html#download">Download</a></li>
|
||||||
|
<li><a href="impressum.html">Impressum</a></li>
|
||||||
|
<li><a href="datenschutz.html" class="active">Datenschutz</a></li>
|
||||||
|
</ul>
|
||||||
|
<div class="footer-meta">
|
||||||
|
SYSTEM // DOCUMENTOR // BUILD 2026.02<br>
|
||||||
|
PySide6 Desktop-Anwendung // Open Source
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function() {
|
||||||
|
const toggle = document.getElementById('navToggle');
|
||||||
|
const links = document.getElementById('navLinks');
|
||||||
|
if (toggle && links) {
|
||||||
|
toggle.addEventListener('click', function() {
|
||||||
|
links.classList.toggle('open');
|
||||||
|
toggle.textContent = links.classList.contains('open') ? 'CLOSE' : 'MENU';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
const reveals = document.querySelectorAll('.reveal');
|
||||||
|
const observer = new IntersectionObserver(function(entries) {
|
||||||
|
entries.forEach(function(entry) {
|
||||||
|
if (entry.isIntersecting) {
|
||||||
|
entry.target.classList.add('visible');
|
||||||
|
observer.unobserve(entry.target);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, { threshold: 0.12, rootMargin: '0px 0px -40px 0px' });
|
||||||
|
reveals.forEach(function(el) { observer.observe(el); });
|
||||||
|
})();
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
const navbar = document.querySelector('.navbar');
|
||||||
|
let ticking = false;
|
||||||
|
window.addEventListener('scroll', function() {
|
||||||
|
if (!ticking) {
|
||||||
|
requestAnimationFrame(function() {
|
||||||
|
navbar.style.borderBottomColor = window.scrollY > 80
|
||||||
|
? 'rgba(240, 192, 48, 0.25)'
|
||||||
|
: 'rgba(240, 192, 48, 0.12)';
|
||||||
|
ticking = false;
|
||||||
|
});
|
||||||
|
ticking = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,884 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Impressum — DocuMentor</title>
|
||||||
|
<link rel="stylesheet" href="fonts/fonts.css">
|
||||||
|
<style>
|
||||||
|
/* ============================================================
|
||||||
|
RESET & BASE
|
||||||
|
============================================================ */
|
||||||
|
*, *::before, *::after {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--concrete-dark: #1a1a1a;
|
||||||
|
--concrete-mid: #2a2a2a;
|
||||||
|
--concrete-light: #3a3a3a;
|
||||||
|
--concrete-surface: #444444;
|
||||||
|
--warning-yellow: #f0c030;
|
||||||
|
--warning-yellow-dim: #e8b800;
|
||||||
|
--safety-orange: #e05020;
|
||||||
|
--steel-text: #b0b0b0;
|
||||||
|
--steel-bright: #d0d0d0;
|
||||||
|
--white: #f0efe8;
|
||||||
|
--grid-line: rgba(240, 192, 48, 0.07);
|
||||||
|
--grid-dot: rgba(240, 192, 48, 0.12);
|
||||||
|
--blueprint-line: rgba(240, 192, 48, 0.15);
|
||||||
|
--led-green: #30e060;
|
||||||
|
--led-red: #e03030;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: 'Barlow', sans-serif;
|
||||||
|
background-color: var(--concrete-dark);
|
||||||
|
color: var(--steel-text);
|
||||||
|
line-height: 1.6;
|
||||||
|
overflow-x: hidden;
|
||||||
|
background-image:
|
||||||
|
repeating-linear-gradient(
|
||||||
|
0deg,
|
||||||
|
transparent,
|
||||||
|
transparent 2px,
|
||||||
|
rgba(255,255,255,0.008) 2px,
|
||||||
|
rgba(255,255,255,0.008) 4px
|
||||||
|
),
|
||||||
|
repeating-linear-gradient(
|
||||||
|
90deg,
|
||||||
|
transparent,
|
||||||
|
transparent 2px,
|
||||||
|
rgba(255,255,255,0.005) 2px,
|
||||||
|
rgba(255,255,255,0.005) 4px
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
body::before {
|
||||||
|
content: '';
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
pointer-events: none;
|
||||||
|
z-index: 0;
|
||||||
|
background-image:
|
||||||
|
radial-gradient(circle, var(--grid-dot) 1px, transparent 1px);
|
||||||
|
background-size: 40px 40px;
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
UTILITY
|
||||||
|
============================================================ */
|
||||||
|
.container {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 0 2rem;
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
section {
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
STENCIL SECTION LABELS
|
||||||
|
============================================================ */
|
||||||
|
.section-label {
|
||||||
|
font-family: 'Oswald', sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
letter-spacing: 0.3em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: var(--warning-yellow-dim);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 1rem;
|
||||||
|
margin-bottom: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-label::before {
|
||||||
|
content: attr(data-num);
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.65rem;
|
||||||
|
color: var(--concrete-surface);
|
||||||
|
border: 1px dashed var(--concrete-surface);
|
||||||
|
padding: 0.15rem 0.4rem;
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-title {
|
||||||
|
font-family: 'Oswald', sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 2.5rem;
|
||||||
|
color: var(--white);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.05em;
|
||||||
|
line-height: 1.1;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
HAZARD STRIPE
|
||||||
|
============================================================ */
|
||||||
|
.hazard-stripe {
|
||||||
|
height: 6px;
|
||||||
|
background: repeating-linear-gradient(
|
||||||
|
-45deg,
|
||||||
|
var(--warning-yellow),
|
||||||
|
var(--warning-yellow) 8px,
|
||||||
|
var(--concrete-dark) 8px,
|
||||||
|
var(--concrete-dark) 16px
|
||||||
|
);
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hazard-stripe-thin {
|
||||||
|
height: 3px;
|
||||||
|
background: repeating-linear-gradient(
|
||||||
|
-45deg,
|
||||||
|
var(--warning-yellow-dim),
|
||||||
|
var(--warning-yellow-dim) 5px,
|
||||||
|
var(--concrete-mid) 5px,
|
||||||
|
var(--concrete-mid) 10px
|
||||||
|
);
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
CORNER BRACKETS
|
||||||
|
============================================================ */
|
||||||
|
.corner-brackets {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.corner-brackets::before,
|
||||||
|
.corner-brackets::after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.corner-brackets::before {
|
||||||
|
top: -1px;
|
||||||
|
left: -1px;
|
||||||
|
border-top: 2px solid var(--warning-yellow-dim);
|
||||||
|
border-left: 2px solid var(--warning-yellow-dim);
|
||||||
|
}
|
||||||
|
|
||||||
|
.corner-brackets::after {
|
||||||
|
bottom: -1px;
|
||||||
|
right: -1px;
|
||||||
|
border-bottom: 2px solid var(--warning-yellow-dim);
|
||||||
|
border-right: 2px solid var(--warning-yellow-dim);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
RIVET DECORATIONS
|
||||||
|
============================================================ */
|
||||||
|
.riveted {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.riveted .rivet {
|
||||||
|
position: absolute;
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: radial-gradient(circle at 35% 35%, #555, #2a2a2a 60%, #1a1a1a);
|
||||||
|
box-shadow: inset 0 1px 1px rgba(255,255,255,0.15), 0 1px 2px rgba(0,0,0,0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.riveted .rivet-tl { top: 10px; left: 10px; }
|
||||||
|
.riveted .rivet-tr { top: 10px; right: 10px; }
|
||||||
|
.riveted .rivet-bl { bottom: 10px; left: 10px; }
|
||||||
|
.riveted .rivet-br { bottom: 10px; right: 10px; }
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
LED INDICATOR
|
||||||
|
============================================================ */
|
||||||
|
.led {
|
||||||
|
display: inline-block;
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-right: 6px;
|
||||||
|
vertical-align: middle;
|
||||||
|
box-shadow: 0 0 4px currentColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
.led-green {
|
||||||
|
background-color: var(--led-green);
|
||||||
|
color: var(--led-green);
|
||||||
|
}
|
||||||
|
|
||||||
|
.led-yellow {
|
||||||
|
background-color: var(--warning-yellow);
|
||||||
|
color: var(--warning-yellow);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
SCROLL REVEAL
|
||||||
|
============================================================ */
|
||||||
|
.reveal {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(30px);
|
||||||
|
transition: opacity 0.6s linear, transform 0.6s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reveal.visible {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translate(0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
NAVBAR
|
||||||
|
============================================================ */
|
||||||
|
.navbar {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
z-index: 1000;
|
||||||
|
background: rgba(26, 26, 26, 0.92);
|
||||||
|
backdrop-filter: blur(10px);
|
||||||
|
border-bottom: 1px solid rgba(240, 192, 48, 0.12);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-inner {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 2rem;
|
||||||
|
height: 56px;
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.5rem;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-brand-icon {
|
||||||
|
width: 28px;
|
||||||
|
height: 28px;
|
||||||
|
border: 2px solid var(--warning-yellow);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-family: 'Oswald', sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: var(--warning-yellow);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-brand-text {
|
||||||
|
font-family: 'Oswald', sans-serif;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
color: var(--white);
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-links {
|
||||||
|
display: flex;
|
||||||
|
gap: 2rem;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-links a {
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
color: var(--steel-text);
|
||||||
|
text-decoration: none;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.15em;
|
||||||
|
padding: 0.25rem 0;
|
||||||
|
border-bottom: 1px solid transparent;
|
||||||
|
transition: color 0.2s linear, border-color 0.2s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-links a:hover,
|
||||||
|
.navbar-links a.active {
|
||||||
|
color: var(--warning-yellow);
|
||||||
|
border-bottom-color: var(--warning-yellow);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-mobile-toggle {
|
||||||
|
display: none;
|
||||||
|
background: none;
|
||||||
|
border: 1px solid var(--concrete-surface);
|
||||||
|
color: var(--steel-text);
|
||||||
|
padding: 0.4rem 0.6rem;
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
cursor: pointer;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
PAGE HEADER
|
||||||
|
============================================================ */
|
||||||
|
.page-header {
|
||||||
|
padding-top: 56px;
|
||||||
|
background: linear-gradient(135deg, var(--concrete-dark) 0%, var(--concrete-mid) 50%, var(--concrete-dark) 100%);
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
inset: 0;
|
||||||
|
background-image:
|
||||||
|
linear-gradient(var(--grid-line) 1px, transparent 1px),
|
||||||
|
linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
|
||||||
|
background-size: 80px 80px;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header-inner {
|
||||||
|
padding: 3rem 0 2.5rem;
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header-tag {
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.7rem;
|
||||||
|
color: var(--concrete-surface);
|
||||||
|
letter-spacing: 0.2em;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header-title {
|
||||||
|
font-family: 'Oswald', sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 3rem;
|
||||||
|
color: var(--white);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.08em;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header-title span {
|
||||||
|
color: var(--warning-yellow);
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header-sub {
|
||||||
|
font-family: 'Barlow Condensed', sans-serif;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
color: var(--steel-text);
|
||||||
|
margin-top: 0.5rem;
|
||||||
|
letter-spacing: 0.04em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
LEGAL CONTENT
|
||||||
|
============================================================ */
|
||||||
|
.legal-section {
|
||||||
|
padding: 5rem 0;
|
||||||
|
background: var(--concrete-dark);
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-panel {
|
||||||
|
background: var(--concrete-mid);
|
||||||
|
border: 1px solid rgba(240, 192, 48, 0.12);
|
||||||
|
padding: 3rem;
|
||||||
|
max-width: 860px;
|
||||||
|
margin: 0 auto;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block {
|
||||||
|
margin-bottom: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block-label {
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.65rem;
|
||||||
|
color: var(--concrete-surface);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.2em;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block-label::before {
|
||||||
|
content: '';
|
||||||
|
display: inline-block;
|
||||||
|
width: 20px;
|
||||||
|
height: 1px;
|
||||||
|
background: var(--concrete-surface);
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block h2 {
|
||||||
|
font-family: 'Barlow Condensed', sans-serif;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 1.3rem;
|
||||||
|
color: var(--steel-bright);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.05em;
|
||||||
|
margin-bottom: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block p {
|
||||||
|
font-family: 'Barlow', sans-serif;
|
||||||
|
font-weight: 300;
|
||||||
|
font-size: 0.95rem;
|
||||||
|
color: var(--steel-text);
|
||||||
|
line-height: 1.7;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block a {
|
||||||
|
color: var(--warning-yellow-dim);
|
||||||
|
text-decoration: none;
|
||||||
|
border-bottom: 1px solid transparent;
|
||||||
|
transition: border-color 0.2s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-block a:hover {
|
||||||
|
border-bottom-color: var(--warning-yellow-dim);
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-divider {
|
||||||
|
height: 1px;
|
||||||
|
background: linear-gradient(90deg,
|
||||||
|
transparent 0%,
|
||||||
|
rgba(240, 192, 48, 0.15) 20%,
|
||||||
|
rgba(240, 192, 48, 0.15) 80%,
|
||||||
|
transparent 100%
|
||||||
|
);
|
||||||
|
margin: 2.5rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-address {
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: var(--steel-text);
|
||||||
|
line-height: 2;
|
||||||
|
padding: 1rem 1.25rem;
|
||||||
|
background: rgba(26, 26, 26, 0.6);
|
||||||
|
border: 1px dashed rgba(240, 192, 48, 0.1);
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-address strong {
|
||||||
|
color: var(--steel-bright);
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-note {
|
||||||
|
margin-top: 1.5rem;
|
||||||
|
padding: 1rem 1.25rem;
|
||||||
|
border-left: 3px solid var(--safety-orange);
|
||||||
|
background: rgba(224, 80, 32, 0.05);
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
color: var(--steel-text);
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-note strong {
|
||||||
|
color: var(--safety-orange);
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
SECTION DIVIDER
|
||||||
|
============================================================ */
|
||||||
|
.section-divider {
|
||||||
|
height: 1px;
|
||||||
|
background: linear-gradient(90deg,
|
||||||
|
transparent 0%,
|
||||||
|
rgba(240, 192, 48, 0.2) 20%,
|
||||||
|
rgba(240, 192, 48, 0.2) 80%,
|
||||||
|
transparent 100%
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
FOOTER
|
||||||
|
============================================================ */
|
||||||
|
.footer {
|
||||||
|
padding: 3rem 0 2rem;
|
||||||
|
background: var(--concrete-dark);
|
||||||
|
border-top: 1px solid rgba(240, 192, 48, 0.08);
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-inner {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-brand {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-brand-icon {
|
||||||
|
width: 22px;
|
||||||
|
height: 22px;
|
||||||
|
border: 1.5px solid var(--warning-yellow-dim);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-family: 'Oswald', sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: 0.7rem;
|
||||||
|
color: var(--warning-yellow-dim);
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-brand-text {
|
||||||
|
font-family: 'Oswald', sans-serif;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: var(--steel-text);
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-meta {
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.65rem;
|
||||||
|
color: var(--concrete-surface);
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-links {
|
||||||
|
display: flex;
|
||||||
|
gap: 1.5rem;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-links a {
|
||||||
|
font-family: 'Share Tech Mono', monospace;
|
||||||
|
font-size: 0.7rem;
|
||||||
|
color: var(--steel-text);
|
||||||
|
text-decoration: none;
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
transition: color 0.2s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-links a:hover,
|
||||||
|
.footer-links a.active {
|
||||||
|
color: var(--warning-yellow);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
RESPONSIVE
|
||||||
|
============================================================ */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.navbar-links {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 56px;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
background: rgba(26, 26, 26, 0.97);
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 1rem 2rem;
|
||||||
|
gap: 0.75rem;
|
||||||
|
border-bottom: 1px solid rgba(240, 192, 48, 0.12);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-links.open {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-mobile-toggle {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header-title {
|
||||||
|
font-size: 2.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-panel {
|
||||||
|
padding: 2rem 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-inner {
|
||||||
|
flex-direction: column;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-links {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-meta {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 480px) {
|
||||||
|
.container {
|
||||||
|
padding: 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header-title {
|
||||||
|
font-size: 1.8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-panel {
|
||||||
|
padding: 1.5rem 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-inner {
|
||||||
|
padding: 0 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<!-- ============================================================
|
||||||
|
NAVBAR
|
||||||
|
============================================================ -->
|
||||||
|
<nav class="navbar">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<a href="index.html" class="navbar-brand">
|
||||||
|
<div class="navbar-brand-icon">D</div>
|
||||||
|
<span class="navbar-brand-text">DocuMentor</span>
|
||||||
|
</a>
|
||||||
|
<button class="navbar-mobile-toggle" id="navToggle">MENU</button>
|
||||||
|
<ul class="navbar-links" id="navLinks">
|
||||||
|
<li><a href="index.html#features">Features</a></li>
|
||||||
|
<li><a href="index.html#workflow">Workflow</a></li>
|
||||||
|
<li><a href="index.html#techstack">Technik</a></li>
|
||||||
|
<li><a href="index.html#download">Download</a></li>
|
||||||
|
<li><a href="impressum.html" class="active">Impressum</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<!-- ============================================================
|
||||||
|
PAGE HEADER
|
||||||
|
============================================================ -->
|
||||||
|
<div class="page-header">
|
||||||
|
<div class="hazard-stripe"></div>
|
||||||
|
<div class="container">
|
||||||
|
<div class="page-header-inner">
|
||||||
|
<div class="page-header-tag">
|
||||||
|
<span class="led led-green"></span>
|
||||||
|
SYSTEM AKTIV — RECHTSHINWEISE
|
||||||
|
</div>
|
||||||
|
<h1 class="page-header-title">Im<span>pressum</span></h1>
|
||||||
|
<p class="page-header-sub">Angaben gemäß § 5 DDG</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hazard-stripe-thin"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- ============================================================
|
||||||
|
LEGAL CONTENT
|
||||||
|
============================================================ -->
|
||||||
|
<section class="legal-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-label reveal" data-num="IMP-01">Anbieterkennzeichnung</div>
|
||||||
|
<h2 class="section-title reveal" style="margin-bottom: 2rem;">Impressum</h2>
|
||||||
|
|
||||||
|
<div class="legal-panel corner-brackets riveted reveal">
|
||||||
|
<span class="rivet rivet-tl"></span>
|
||||||
|
<span class="rivet rivet-tr"></span>
|
||||||
|
<span class="rivet rivet-bl"></span>
|
||||||
|
<span class="rivet rivet-br"></span>
|
||||||
|
|
||||||
|
<!-- Verantwortlicher -->
|
||||||
|
<div class="legal-block">
|
||||||
|
<div class="legal-block-label">§ 5 DDG — ANBIETER</div>
|
||||||
|
<h2>Verantwortlicher</h2>
|
||||||
|
<div class="legal-address">
|
||||||
|
<strong>Vitali Graf</strong><br>
|
||||||
|
Kulenkampffallee 65b<br>
|
||||||
|
28213 Bremen<br>
|
||||||
|
Deutschland
|
||||||
|
</div>
|
||||||
|
<!-- <div class="legal-note" style="margin-top: 1rem;">
|
||||||
|
<strong>HINWEIS:</strong> Bitte Adresse vor Veröffentlichung ergänzen.
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="legal-divider"></div>
|
||||||
|
|
||||||
|
<!-- Kontakt -->
|
||||||
|
<div class="legal-block">
|
||||||
|
<div class="legal-block-label">KONTAKT</div>
|
||||||
|
<h2>Kontakt</h2>
|
||||||
|
<p>
|
||||||
|
E-Mail: <a href="mailto:info@vitaligraf.de">info@vitaligraf.de</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="legal-divider"></div>
|
||||||
|
|
||||||
|
<!-- Projekthinweis -->
|
||||||
|
<div class="legal-block">
|
||||||
|
<div class="legal-block-label">PROJEKT</div>
|
||||||
|
<h2>Hinweis zum Projekt</h2>
|
||||||
|
<p>
|
||||||
|
DocuMentor ist ein Open-Source-Softwareprojekt zur Verwaltung und Validierung von
|
||||||
|
XSL-Transformationen. Die Software wird ohne Gewähr bereitgestellt.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Der Quellcode steht unter einer Open-Source-Lizenz. Einzelheiten entnehmen Sie
|
||||||
|
bitte der beiliegenden Lizenzdatei im Repository.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="legal-divider"></div>
|
||||||
|
|
||||||
|
<!-- Haftungsausschluss -->
|
||||||
|
<div class="legal-block">
|
||||||
|
<div class="legal-block-label">HAFTUNG</div>
|
||||||
|
<h2>Haftungsausschluss</h2>
|
||||||
|
<p>
|
||||||
|
Die Inhalte dieser Website wurden mit größtmöglicher Sorgfalt erstellt.
|
||||||
|
Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte übernehme
|
||||||
|
ich jedoch keine Gewähr. Als Diensteanbieter bin ich gemäß § 7 DDG
|
||||||
|
für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen
|
||||||
|
verantwortlich.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Nach §§ 11 bis 13 DDG bin ich als Diensteanbieter nicht verpflichtet,
|
||||||
|
übermittelte oder gespeicherte fremde Informationen zu überwachen oder
|
||||||
|
nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="legal-divider"></div>
|
||||||
|
|
||||||
|
<!-- Urheberrecht -->
|
||||||
|
<div class="legal-block">
|
||||||
|
<div class="legal-block-label">URHEBERRECHT</div>
|
||||||
|
<h2>Urheberrecht</h2>
|
||||||
|
<p>
|
||||||
|
Die durch den Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten
|
||||||
|
unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung,
|
||||||
|
Verbreitung und jede Art der Verwertung außerhalb der Grenzen des
|
||||||
|
Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors
|
||||||
|
bzw. Erstellers.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Der Quellcode von DocuMentor ist unter den Bedingungen der zugehörigen
|
||||||
|
Open-Source-Lizenz frei verwendbar. Detailangaben hierzu finden Sie im
|
||||||
|
Repository.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<div class="hazard-stripe-thin"></div>
|
||||||
|
|
||||||
|
<!-- ============================================================
|
||||||
|
FOOTER
|
||||||
|
============================================================ -->
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-inner">
|
||||||
|
<div class="footer-brand">
|
||||||
|
<div class="footer-brand-icon">D</div>
|
||||||
|
<span class="footer-brand-text">DocuMentor</span>
|
||||||
|
</div>
|
||||||
|
<ul class="footer-links">
|
||||||
|
<li><a href="index.html#features">Features</a></li>
|
||||||
|
<li><a href="index.html#workflow">Workflow</a></li>
|
||||||
|
<li><a href="index.html#techstack">Technik</a></li>
|
||||||
|
<li><a href="index.html#download">Download</a></li>
|
||||||
|
<li><a href="impressum.html" class="active">Impressum</a></li>
|
||||||
|
<li><a href="datenschutz.html">Datenschutz</a></li>
|
||||||
|
</ul>
|
||||||
|
<div class="footer-meta">
|
||||||
|
SYSTEM // DOCUMENTOR // BUILD 2026.02<br>
|
||||||
|
PySide6 Desktop-Anwendung // Open Source
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
(function() {
|
||||||
|
const toggle = document.getElementById('navToggle');
|
||||||
|
const links = document.getElementById('navLinks');
|
||||||
|
if (toggle && links) {
|
||||||
|
toggle.addEventListener('click', function() {
|
||||||
|
links.classList.toggle('open');
|
||||||
|
toggle.textContent = links.classList.contains('open') ? 'CLOSE' : 'MENU';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
const reveals = document.querySelectorAll('.reveal');
|
||||||
|
const observer = new IntersectionObserver(function(entries) {
|
||||||
|
entries.forEach(function(entry) {
|
||||||
|
if (entry.isIntersecting) {
|
||||||
|
entry.target.classList.add('visible');
|
||||||
|
observer.unobserve(entry.target);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, { threshold: 0.12, rootMargin: '0px 0px -40px 0px' });
|
||||||
|
reveals.forEach(function(el) { observer.observe(el); });
|
||||||
|
})();
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
const navbar = document.querySelector('.navbar');
|
||||||
|
let ticking = false;
|
||||||
|
window.addEventListener('scroll', function() {
|
||||||
|
if (!ticking) {
|
||||||
|
requestAnimationFrame(function() {
|
||||||
|
navbar.style.borderBottomColor = window.scrollY > 80
|
||||||
|
? 'rgba(240, 192, 48, 0.25)'
|
||||||
|
: 'rgba(240, 192, 48, 0.12)';
|
||||||
|
ticking = false;
|
||||||
|
});
|
||||||
|
ticking = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
+17
-15
@@ -3,7 +3,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>DocuMentor — Industrielle XSL-Transformationskontrolle</title>
|
<title>DocuMentor — XSL-Transformationen sicher im Griff</title>
|
||||||
<link rel="stylesheet" href="fonts/fonts.css">
|
<link rel="stylesheet" href="fonts/fonts.css">
|
||||||
<style>
|
<style>
|
||||||
/* ============================================================
|
/* ============================================================
|
||||||
@@ -1573,7 +1573,7 @@
|
|||||||
SYSTEM AKTIV — XSL TRANSFORMATIONS-KONTROLLE v2.0
|
SYSTEM AKTIV — XSL TRANSFORMATIONS-KONTROLLE v2.0
|
||||||
</div>
|
</div>
|
||||||
<h1 class="hero-title">Docu<span>Mentor</span></h1>
|
<h1 class="hero-title">Docu<span>Mentor</span></h1>
|
||||||
<p class="hero-tagline">Industrielle XSL-Transformationskontrolle</p>
|
<p class="hero-tagline">XSL-Transformationen sicher im Griff</p>
|
||||||
<p class="hero-desc">
|
<p class="hero-desc">
|
||||||
Desktop-Anwendung zur Verwaltung und Validierung von XSL-Transformationen.
|
Desktop-Anwendung zur Verwaltung und Validierung von XSL-Transformationen.
|
||||||
Erkennen Sie jede Auswirkung Ihrer XSL-Änderungen — bevor es zu spät ist.
|
Erkennen Sie jede Auswirkung Ihrer XSL-Änderungen — bevor es zu spät ist.
|
||||||
@@ -1824,24 +1824,24 @@
|
|||||||
<p class="section-subtitle reveal">Bewährte Industriekomponenten für maximale Zuverlässigkeit.</p>
|
<p class="section-subtitle reveal">Bewährte Industriekomponenten für maximale Zuverlässigkeit.</p>
|
||||||
|
|
||||||
<div class="tech-grid reveal from-bottom">
|
<div class="tech-grid reveal from-bottom">
|
||||||
<div class="tech-category">Kern</div>
|
<!-- <div class="tech-category">Kern</div>
|
||||||
<div class="tech-badge"><span class="led led-green"></span> Python 3</div>
|
<div class="tech-badge"><span class="led led-green"></span> Python 3</div>
|
||||||
<div class="tech-badge"><span class="led led-green"></span> PySide6 / Qt</div>
|
<div class="tech-badge"><span class="led led-green"></span> PySide6 / Qt</div>
|
||||||
<div class="tech-badge"><span class="led led-green"></span> Pydantic</div>
|
<div class="tech-badge"><span class="led led-green"></span> Pydantic</div> -->
|
||||||
|
|
||||||
<div class="tech-category">Transformation</div>
|
<!-- <div class="tech-category">Transformation</div> -->
|
||||||
<div class="tech-badge"><span class="led led-yellow"></span> Saxon XSLT</div>
|
<div class="tech-badge"><span class="led led-yellow"></span> Saxon XSLT</div>
|
||||||
<div class="tech-badge"><span class="led led-yellow"></span> Apache FOP</div>
|
<div class="tech-badge"><span class="led led-yellow"></span> Apache FOP</div>
|
||||||
<div class="tech-badge"><span class="led led-yellow"></span> diff-pdf</div>
|
<div class="tech-badge"><span class="led led-yellow"></span> diff-pdf</div>
|
||||||
|
|
||||||
<div class="tech-category">Daten</div>
|
<!-- <div class="tech-category">Daten</div>
|
||||||
<div class="tech-badge"><span class="led led-orange"></span> PostgreSQL</div>
|
<div class="tech-badge"><span class="led led-orange"></span> PostgreSQL</div>
|
||||||
<div class="tech-badge"><span class="led led-orange"></span> Polars</div>
|
<div class="tech-badge"><span class="led led-orange"></span> Polars</div>
|
||||||
<div class="tech-badge"><span class="led led-orange"></span> ConnectorX</div>
|
<div class="tech-badge"><span class="led led-orange"></span> ConnectorX</div>
|
||||||
|
|
||||||
<div class="tech-category">Werkzeuge</div>
|
<div class="tech-category">Werkzeuge</div>
|
||||||
<div class="tech-badge"><span class="led led-green"></span> blake2b</div>
|
<div class="tech-badge"><span class="led led-green"></span> blake2b</div>
|
||||||
<div class="tech-badge"><span class="led led-green"></span> PyInstaller</div>
|
<div class="tech-badge"><span class="led led-green"></span> PyInstaller</div> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@@ -1873,8 +1873,8 @@
|
|||||||
<span class="download-card-badge">EMPFOHLEN</span>
|
<span class="download-card-badge">EMPFOHLEN</span>
|
||||||
</div>
|
</div>
|
||||||
<p class="download-card-desc">Windows-Installer mit automatischer Einrichtung. Erstellt Startmenü-Einträge und ermöglicht saubere Deinstallation über die Systemsteuerung.</p>
|
<p class="download-card-desc">Windows-Installer mit automatischer Einrichtung. Erstellt Startmenü-Einträge und ermöglicht saubere Deinstallation über die Systemsteuerung.</p>
|
||||||
<span class="download-card-meta">DocuMentor-2.0-win64.msi — ca. 85 MB</span>
|
<span class="download-card-meta">DocuMentor-1.6.3.msi — ca. 255 MB</span>
|
||||||
<a href="#" class="btn-download">▼ MSI herunterladen</a>
|
<a href="https://code.vitaligraf.de/info/xsl-validator/releases/download/1.6.3/DocuMentor-1.6.3.msi" class="btn-download">▼ MSI herunterladen</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="download-card corner-brackets">
|
<div class="download-card corner-brackets">
|
||||||
<div class="download-card-header">
|
<div class="download-card-header">
|
||||||
@@ -1882,15 +1882,15 @@
|
|||||||
<span class="download-card-badge">PORTABEL</span>
|
<span class="download-card-badge">PORTABEL</span>
|
||||||
</div>
|
</div>
|
||||||
<p class="download-card-desc">Portable Version ohne Installation. Entpacken und direkt starten — ideal für eingeschränkte Umgebungen ohne Administratorrechte.</p>
|
<p class="download-card-desc">Portable Version ohne Installation. Entpacken und direkt starten — ideal für eingeschränkte Umgebungen ohne Administratorrechte.</p>
|
||||||
<span class="download-card-meta">DocuMentor-2.0-win64-portable.zip — ca. 80 MB</span>
|
<span class="download-card-meta">DocuMentor-1.6.3.zip — ca. 315 MB</span>
|
||||||
<a href="#" class="btn-download">▼ ZIP herunterladen</a>
|
<a href="https://code.vitaligraf.de/info/xsl-validator/releases/download/1.6.3/DocuMentor-1.6.3.zip" class="btn-download">▼ ZIP herunterladen</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 2. Hinweis Windows -->
|
<!-- 2. Hinweis Windows -->
|
||||||
<div class="requirements-note">
|
<div class="requirements-note">
|
||||||
<strong>HINWEIS:</strong> Die Windows-Pakete enthalten alle Abhängigkeiten inklusive Python-Runtime. Lediglich eine <strong>Java Runtime</strong> (für Saxon) muss separat installiert werden. Für die volle Performance der Pool-Worker wird ein <strong>Java JDK</strong> (statt nur JRE) empfohlen.
|
<strong>HINWEIS:</strong> Die Windows-Pakete enthalten alle Abhängigkeiten inklusive Python-Runtime. Lediglich eine <strong>Java Runtime</strong> (für Saxon und Apache FOP) muss separat installiert werden. Für die volle Performance der Pool-Worker wird ein <strong>Java JDK</strong> (statt nur JRE) empfohlen.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 3. Quellcode -->
|
<!-- 3. Quellcode -->
|
||||||
@@ -1901,7 +1901,7 @@
|
|||||||
<div class="install-step-num">01</div>
|
<div class="install-step-num">01</div>
|
||||||
<div class="install-step-content">
|
<div class="install-step-content">
|
||||||
<div class="install-step-label">Repository klonen</div>
|
<div class="install-step-label">Repository klonen</div>
|
||||||
<div class="code-block"><span class="prompt">$ </span>git clone https://github.com/your-org/xsl-validator.git</div>
|
<div class="code-block"><span class="prompt">$ </span>git clone https://code.vitaligraf.de/info/xsl-validator.git</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="install-step">
|
<div class="install-step">
|
||||||
@@ -1922,7 +1922,7 @@
|
|||||||
|
|
||||||
<!-- 4. Hinweis Quellcode -->
|
<!-- 4. Hinweis Quellcode -->
|
||||||
<div class="requirements-note">
|
<div class="requirements-note">
|
||||||
<strong>HINWEIS:</strong> Erfordert Python 3.13+, Java Runtime (für Saxon) und den Paketmanager <strong>uv</strong>. Für die volle Performance der Pool-Worker wird ein <strong>Java JDK</strong> (statt nur JRE) empfohlen.
|
<strong>HINWEIS:</strong> Erfordert Python 3.13+, Java Runtime (für Saxon und Apache FOP) und den Paketmanager <strong>uv</strong>. Für die volle Performance der Pool-Worker wird ein <strong>Java JDK</strong> (statt nur JRE) empfohlen.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1945,9 +1945,11 @@
|
|||||||
<li><a href="#workflow">Workflow</a></li>
|
<li><a href="#workflow">Workflow</a></li>
|
||||||
<li><a href="#techstack">Technik</a></li>
|
<li><a href="#techstack">Technik</a></li>
|
||||||
<li><a href="#download">Download</a></li>
|
<li><a href="#download">Download</a></li>
|
||||||
|
<li><a href="impressum.html">Impressum</a></li>
|
||||||
|
<li><a href="datenschutz.html">Datenschutz</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="footer-meta">
|
<div class="footer-meta">
|
||||||
SYSTEM // DOCUMENTOR // BUILD 2026.02<br>
|
SYSTEM // DOCUMENTOR // BUILD 1.6.3<br>
|
||||||
PySide6 Desktop-Anwendung // Open Source
|
PySide6 Desktop-Anwendung // Open Source
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user