Impressum und Datenschutzerklaerung ergaenzt, Footer-Links, SW-Cache v3

This commit is contained in:
till committed 2026-09-15 12:02:58 +02:00
1 parent 197376a584
commit 5612de3500
6 files changed
+294 -2

No files matched your search

+142
View File
@@ -0,0 +1,142 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="noindex" />
<meta name="theme-color" content="#faf7f2" />
<title>Datenschutzerklärung — clip2md</title>
<link rel="icon" href="icon.svg" type="image/svg+xml" />
<link rel="stylesheet" href="legal.css" />
<script>
try { var t = JSON.parse(localStorage.getItem('clip2md:theme')); if (t === 'dark') document.documentElement.setAttribute('data-theme','dark'); } catch (e) {}
</script>
</head>
<body>
<header class="legal-head">
<div class="inner">
<a class="back" href="/"><span class="wordmark">clip<b>2</b>md</span></a>
<nav>
<a href="impressum.html">Impressum</a>
<a href="datenschutz.html" aria-current="page">Datenschutz</a>
</nav>
</div>
</header>
<main class="legal">
<h1>Datenschutzerklärung</h1>
<p class="intro">
Der Text, den Sie auf dieser Seite einfügen, wird ausschließlich in Ihrem Browser
umgewandelt. Er wird nicht übertragen, nicht gespeichert und nicht ausgewertet. Es gibt
keine Cookies, keine Analyse-Werkzeuge, keine eingebundenen Dienste Dritter und keine
extern geladenen Schriftarten. Erhoben werden nur die technischen Zugriffsdaten, die beim
Abruf jeder Website anfallen.
</p>
<h2>1. Verantwortlicher</h2>
<p>
Till Heidrich – Content Creation<br />
Till Heidrich<br />
Rotdornweg 17, 21255 Tostedt, Deutschland<br />
E-Mail: <a href="mailto:info@tillheidrich.de">info@tillheidrich.de</a><br />
Telefon: <a href="tel:+4915773953819">+49 1577 3953819</a>
</p>
<p>Ein Datenschutzbeauftragter ist gesetzlich nicht zu bestellen.</p>
<h2>2. Verarbeitung der eingefügten Inhalte</h2>
<p>
Die Umwandlung von formatiertem Text in Markdown erfolgt vollständig clientseitig durch
JavaScript in Ihrem Browser. Die von Ihnen eingefügten Inhalte verlassen Ihr Gerät zu
keinem Zeitpunkt und werden beim Schließen oder Neuladen der Seite verworfen. Eine
Verarbeitung personenbezogener Daten im Sinne der DSGVO findet insoweit durch uns nicht
statt.
</p>
<p>
Das Speichern des Ergebnisses als <code>.md</code>-Datei sowie das Kopieren in die
Zwischenablage erfolgen ebenfalls lokal über die entsprechenden Browser-Schnittstellen.
Auch dabei werden keine Daten an uns übermittelt.
</p>
<h2>3. Lokale Speicherung Ihrer Einstellungen</h2>
<p>
Damit die Seite sich Ihre Vorlieben merkt, legt sie Werte im lokalen Speicher Ihres
Browsers ab (<span class="mono">localStorage</span>), etwa die gewählte Sprache, das
helle oder dunkle Erscheinungsbild und Ihre Konvertierungseinstellungen. Diese Werte
verbleiben auf Ihrem Gerät, werden nicht an uns übertragen und enthalten keine von Ihnen
eingefügten Inhalte. Es handelt sich nicht um Cookies. Sie können die Werte jederzeit über
die Einstellungen Ihres Browsers löschen.
</p>
<p>
Rechtsgrundlage für diese ausschließlich lokale Speicherung ist Ihr Wunsch nach einer
funktionsfähigen Bedienoberfläche; ein Zugriff unsererseits findet nicht statt.
</p>
<h2>4. Offline-Nutzung (Progressive Web App)</h2>
<p>
Die Seite registriert einen Service Worker, der die benötigten Programmdateien im
Zwischenspeicher Ihres Browsers ablegt. Dadurch funktioniert clip2md auch ohne
Internetverbindung. Zwischengespeichert werden ausschließlich Programmdateien dieser
Seite, niemals Ihre Inhalte. Sie können den Zwischenspeicher über die Website-Daten Ihres
Browsers entfernen.
</p>
<h2>5. Server-Logfiles</h2>
<p>
Beim Abruf dieser Seite werden durch den Hosting-Anbieter automatisch Daten in
Protokolldateien gespeichert:
</p>
<ul>
<li>IP-Adresse des anfragenden Geräts</li>
<li>Datum und Uhrzeit des Zugriffs</li>
<li>Name und URL der abgerufenen Datei</li>
<li>übertragene Datenmenge und Meldung über den Abruferfolg</li>
<li>verwendeter Browser und Betriebssystem</li>
<li>gegebenenfalls die zuvor besuchte Seite (Referrer)</li>
</ul>
<p>
Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO. Das berechtigte Interesse liegt im
technisch fehlerfreien Betrieb und in der Sicherheit des Angebots. Die Daten werden nach
spätestens sieben Tagen gelöscht und nicht mit anderen Datenquellen zusammengeführt.
</p>
<h2>6. Hosting</h2>
<p>
Diese Seite wird auf Servern der Hetzner Online GmbH, Industriestr. 25, 91710
Gunzenhausen, in Deutschland betrieben. Mit dem Anbieter besteht ein Vertrag über die
Auftragsverarbeitung nach Art. 28 DSGVO. Die Verarbeitung findet ausschließlich innerhalb
der Europäischen Union statt. Die Datenübertragung zu dieser Seite erfolgt verschlüsselt
über HTTPS.
</p>
<h2>7. Keine Cookies, kein Tracking</h2>
<p>
Diese Seite setzt keine Cookies und verwendet keine Analyse-, Werbe- oder
Reichweitenmessungsdienste. Es werden keine Inhalte von fremden Servern nachgeladen,
insbesondere keine Schriftarten und keine Skripte von Content-Delivery-Netzwerken. Eine
Einwilligungsabfrage ist deshalb nicht erforderlich.
</p>
<h2>8. Ihre Rechte</h2>
<p>
Sie haben das Recht auf Auskunft (Art. 15 DSGVO), Berichtigung (Art. 16), Löschung
(Art. 17), Einschränkung der Verarbeitung (Art. 18), Datenübertragbarkeit (Art. 20) sowie
das Recht, der Verarbeitung auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO zu widersprechen
(Art. 21). Wenden Sie sich dafür an die oben genannte Adresse.
</p>
<h2>9. Beschwerderecht</h2>
<p>
Sie können sich bei einer Datenschutz-Aufsichtsbehörde beschweren. Zuständig ist die
Landesbeauftragte für den Datenschutz Niedersachsen, Prinzenstraße 5, 30159 Hannover.
</p>
<h2>10. Stand</h2>
<p>Diese Datenschutzerklärung hat den Stand September 2026.</p>
<div class="legal-foot">
<a href="/">Zurück zum Werkzeug</a> · <a href="impressum.html">Impressum</a>
</div>
</main>
</body>
</html>
+77
View File
@@ -0,0 +1,77 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="noindex" />
<meta name="theme-color" content="#faf7f2" />
<title>Impressum — clip2md</title>
<link rel="icon" href="icon.svg" type="image/svg+xml" />
<link rel="stylesheet" href="legal.css" />
<script>
try { var t = JSON.parse(localStorage.getItem('clip2md:theme')); if (t === 'dark') document.documentElement.setAttribute('data-theme','dark'); } catch (e) {}
</script>
</head>
<body>
<header class="legal-head">
<div class="inner">
<a class="back" href="/"><span class="wordmark">clip<b>2</b>md</span></a>
<nav>
<a href="impressum.html" aria-current="page">Impressum</a>
<a href="datenschutz.html">Datenschutz</a>
</nav>
</div>
</header>
<main class="legal">
<h1>Impressum</h1>
<h2>Angaben gemäß § 5 DDG</h2>
<table class="legal-table">
<tbody>
<tr><th>Anbieter</th><td>Till Heidrich – Content Creation</td></tr>
<tr><th>Inhaber</th><td>Till Heidrich</td></tr>
<tr><th>Anschrift</th><td>Rotdornweg 17<br />21255 Tostedt<br />Deutschland</td></tr>
<tr><th>E-Mail</th><td><a href="mailto:info@tillheidrich.de">info@tillheidrich.de</a></td></tr>
<tr><th>Telefon</th><td><a href="tel:+4915773953819">+49 1577 3953819</a></td></tr>
</tbody>
</table>
<h2>Umsatzsteuer</h2>
<p>
Als Kleinunternehmer im Sinne von § 19 Abs. 1 UStG wird keine Umsatzsteuer
berechnet und daher auch keine Umsatzsteuer-Identifikationsnummer geführt.
</p>
<h2>Verantwortlich für den Inhalt nach § 18 Abs. 2 MStV</h2>
<p>Till Heidrich, Anschrift wie oben.</p>
<h2>Streitbeilegung</h2>
<p>
Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung bereit:
<a href="https://ec.europa.eu/consumers/odr/" rel="nofollow noopener">ec.europa.eu/consumers/odr</a>.
Zur Teilnahme an einem Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle
sind wir nicht verpflichtet und nicht bereit.
</p>
<h2>Haftung für Links</h2>
<p>
Dieses Angebot enthält Links zu externen Websites Dritter, auf deren Inhalte wir keinen
Einfluss haben. Für diese fremden Inhalte ist stets der jeweilige Anbieter verantwortlich.
Zum Zeitpunkt der Verlinkung waren keine Rechtsverstöße erkennbar. Bei Bekanntwerden von
Rechtsverletzungen werden wir derartige Links umgehend entfernen.
</p>
<h2>Urheberrecht und Lizenz</h2>
<p>
Der Quellcode von clip2md steht unter der MIT-Lizenz. Die eingebundenen Bibliotheken
(Turndown, Marked, DOMPurify) und die Schriftfamilie Geist stehen unter ihren jeweiligen
freien Lizenzen. Texte und Gestaltung dieser Seite unterliegen dem deutschen Urheberrecht.
</p>
<div class="legal-foot">
<a href="/">Zurück zum Werkzeug</a> · <a href="datenschutz.html">Datenschutzerklärung</a>
</div>
</main>
</body>
</html>
+4
View File
@@ -289,6 +289,9 @@
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
footer .legal-links { display: inline-flex; gap: 0.5rem; align-items: center; }
footer .legal-links a { color: var(--ink-3); text-decoration: none; }
footer .legal-links a:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
</style>
</head>
<body>
@@ -355,6 +358,7 @@
<span class="badge" id="srcBadge"><span class="led"></span><span id="srcText"></span></span>
<span class="spacer"></span>
<span data-i18n="privacy">client-side · nothing is uploaded</span>
<span class="legal-links"><a href="impressum.html">Impressum</a> &middot; <a href="datenschutz.html">Datenschutz</a></span>
</footer>
<!-- Settings -->
+66
View File
@@ -0,0 +1,66 @@
@font-face { font-family: "Geist"; src: url("vendor/fonts/Geist-Variable.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Geist Mono"; src: url("vendor/fonts/GeistMono-Variable.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
:root {
--paper: oklch(98.4% 0.006 80);
--surface: oklch(99.6% 0.003 80);
--line: oklch(89% 0.008 75);
--ink: oklch(26% 0.02 55);
--ink-2: oklch(44% 0.018 55);
--ink-3: oklch(58% 0.014 55);
--accent: oklch(56% 0.168 34);
--accent-hi: oklch(52% 0.18 33);
--r: 10px;
--font: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
--mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}
[data-theme="dark"] {
--paper: oklch(19% 0.008 60);
--surface: oklch(22% 0.01 60);
--line: oklch(30% 0.012 60);
--ink: oklch(93% 0.006 75);
--ink-2: oklch(72% 0.012 70);
--ink-3: oklch(60% 0.012 65);
--accent: oklch(70% 0.15 40);
--accent-hi: oklch(76% 0.14 42);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
margin: 0; background: var(--paper); color: var(--ink);
font-family: var(--font); font-size: 1rem; line-height: 1.62;
-webkit-font-smoothing: antialiased;
}
.legal-head { border-bottom: 1px solid var(--line); background: var(--surface); }
.legal-head .inner, main.legal { width: min(100% - 2.5rem, 46rem); margin-inline: auto; }
.legal-head .inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.9rem 0; }
.legal-head a.back { display: inline-flex; align-items: center; gap: 0.45rem; text-decoration: none; color: var(--ink); font-weight: 500; }
.legal-head .wordmark { font-family: var(--mono); font-size: 1.02rem; letter-spacing: -0.03em; }
.legal-head .wordmark b { color: var(--accent); }
.legal-head nav { display: flex; gap: 1.25rem; font-size: 0.875rem; }
.legal-head nav a { color: var(--ink-3); text-decoration: none; }
.legal-head nav a:hover, .legal-head nav a[aria-current="page"] { color: var(--accent); }
main.legal { padding: 3rem 0 5rem; }
h1 { font-size: clamp(1.9rem, 1.5rem + 1.6vw, 2.5rem); letter-spacing: -0.03em; line-height: 1.12; margin: 0 0 1.5rem; }
h2 { font-size: 1.0625rem; letter-spacing: -0.015em; margin: 2.4rem 0 0.6rem; }
p { margin: 0 0 1em; color: var(--ink-2); }
p.intro { color: var(--ink); }
ul { padding-left: 1.15rem; margin: 0 0 1em; color: var(--ink-2); }
li { margin-bottom: 0.32em; }
a { color: var(--accent); text-underline-offset: 3px; }
a:hover { color: var(--accent-hi); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 3px; }
code, .mono { font-family: var(--mono); font-size: 0.92em; }
table.legal-table { border-collapse: collapse; margin: 0 0 1em; }
table.legal-table th { text-align: left; font-weight: 500; color: var(--ink-3); padding: 0.22rem 1.6rem 0.22rem 0; vertical-align: top; white-space: nowrap; font-size: 0.9375rem; }
table.legal-table td { padding: 0.22rem 0; vertical-align: top; color: var(--ink-2); }
.legal-foot { border-top: 1px solid var(--line); margin-top: 3rem; padding-top: 1.25rem; font-size: 0.875rem; color: var(--ink-3); }
.legal-foot a { color: var(--ink-3); }
.legal-foot a:hover { color: var(--accent); }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; } }
+1 -1
View File
@@ -37,7 +37,7 @@ server {
}
location / {
try_files $uri $uri/ /index.html;
try_files $uri $uri.html $uri/ /index.html;
}
# Minimal hardening headers.
+4 -1
View File
@@ -1,8 +1,11 @@
/* clip2md service worker — offline shell cache. Bump CACHE on any asset change. */
var CACHE = 'clip2md-v2';
var CACHE = 'clip2md-v3';
var ASSETS = [
'./',
'./index.html',
'./impressum.html',
'./datenschutz.html',
'./legal.css',
'./icon.svg',
'./manifest.webmanifest',
'./vendor/turndown.js',