diff --git a/Dockerfile b/Dockerfile index 7cbe9f6..242cefb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ FROM nginx:1.27-alpine # Static single-page app — no build step. COPY nginx.conf /etc/nginx/conf.d/default.conf COPY security-headers.conf /etc/nginx/security-headers.conf -COPY index.html clean.js impressum.html datenschutz.html legal.css icon-mono.svg manifest.webmanifest sw.js icon.svg icon-192.png icon-512.png icon-maskable-512.png apple-touch-icon.png /usr/share/nginx/html/ +COPY index.html clean.js impressum.html datenschutz.html imprint.html privacy.html legal.css icon-mono.svg manifest.webmanifest sw.js icon.svg icon-192.png icon-512.png icon-maskable-512.png apple-touch-icon.png /usr/share/nginx/html/ COPY vendor/ /usr/share/nginx/html/vendor/ EXPOSE 80 diff --git a/datenschutz.html b/datenschutz.html index 9ca6e5e..148f666 100644 --- a/datenschutz.html +++ b/datenschutz.html @@ -8,6 +8,8 @@ Datenschutzerklärung — clip2md + + @@ -18,6 +20,7 @@ @@ -26,6 +29,7 @@

Datenschutzerklärung

+

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 diff --git a/imprint.html b/imprint.html new file mode 100644 index 0000000..52f5287 --- /dev/null +++ b/imprint.html @@ -0,0 +1,85 @@ + + + + + + + +Legal notice — clip2md + + + + + + + +

+ clip2md + +
+ +
+ Legal +

Legal notice

+
+

This is a translation provided for convenience. The German version (Impressum) is legally binding.

+ +

Information pursuant to § 5 DDG (German Digital Services Act)

+ + + + + + + + + + +

VAT

+

+ As a small business within the meaning of § 19 (1) of the German VAT Act (UStG), no VAT is + charged and therefore no VAT identification number is held. +

+ +

Responsible for content pursuant to § 18 (2) MStV

+

Till Heidrich, address as above.

+ +

Dispute resolution

+

+ The European Commission provides a platform for online dispute resolution: + ec.europa.eu/consumers/odr. + We are neither obliged nor willing to take part in dispute resolution proceedings before a + consumer arbitration board. +

+ +

Liability for links

+

+ This site contains links to external third-party websites whose content we cannot influence. + The respective provider is always responsible for that content. No legal violations were + apparent at the time of linking. Should we become aware of any, we will remove such links + immediately. +

+ +

Copyright and licence

+

+ The source code of clip2md is released under the MIT licence. The bundled libraries + (Turndown, Marked, DOMPurify, Mozilla Readability; MIT or Apache licence) and the typefaces + Space Grotesk and Space Mono (SIL Open Font License) are subject to their respective free + licences. Texts and design of this site are protected by German copyright law. +

+ +
+ +
+ + diff --git a/legal.css b/legal.css index 7f1b18b..1d28d8a 100644 --- a/legal.css +++ b/legal.css @@ -62,3 +62,12 @@ table.legal-table td { padding: 0.3rem 0; vertical-align: top; overflow-wrap: an } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: .001ms !important; animation-duration: .001ms !important; } } .card > :first-child { margin-top: 18px; } +.topbar nav a.lang { font-family: var(--mono); font-size: 0.72rem; letter-spacing: .06em; border: 1px solid var(--line); margin-left: 4px; } +.topbar nav a.lang:hover { color: var(--accent); border-color: var(--accent); background: transparent; } +@media (max-width: 560px) { + .topbar { gap: 8px; padding-left: 12px; padding-right: 12px; } + .brand { font-size: 1.05rem; } + .topbar nav { flex-wrap: nowrap; gap: 2px; } + .topbar nav a { padding: 0 8px; font-size: 0.8rem; } + .topbar nav a.lang { padding: 0 7px; margin-left: 2px; } +} diff --git a/privacy.html b/privacy.html new file mode 100644 index 0000000..da621b9 --- /dev/null +++ b/privacy.html @@ -0,0 +1,184 @@ + + + + + + + +Privacy policy — clip2md + + + + + + + +
+ clip2md + +
+ +
+ Legal +

Privacy policy

+
+

This is a translation provided for convenience. The German version (Datenschutzerklärung) is legally binding.

+ +

+ The text you paste on this site is converted exclusively in your browser. It is not + transmitted, stored or analysed. There are no cookies, no analytics, no embedded third-party + services and no externally loaded fonts. Only the technical access data that arises whenever a + website is requested is collected. +

+ +

1. Controller

+

+ Till Heidrich – Content Creation
+ Till Heidrich
+ Rotdornweg 17, 21255 Tostedt, Germany
+ Email: info@tillheidrich.de
+ Phone: +49 1577 3953819 +

+

There is no legal requirement to appoint a data protection officer.

+ +

2. Processing of pasted content

+

+ Converting formatted text into Markdown happens entirely client-side, by JavaScript in your + browser. Content you paste never leaves your device and is discarded when you close or reload + the page. To that extent, we do not process any personal data within the meaning of the GDPR. +

+

+ Saving the result as a .md file and copying it to the clipboard also happen locally + through the corresponding browser interfaces. No data is sent to us. +

+

+ The “Paste” button reads your device's clipboard. This only happens when you press the button + and, depending on the browser, only after you have given permission. As with pasting via the + keyboard, the content is converted locally only. On smartphones, “Save” hands the file to your + operating system's share sheet; where you pass it on from there is up to you. +

+

+ Cleaning up pasted web pages and formatting Reddit threads also run entirely in your browser. + The optional “Open in Obsidian” button places the text on the clipboard and hands it to the + Obsidian app on your device; nothing is transmitted to us or third parties. +

+ +

3. Local storage of your settings

+

+ So that the site remembers your preferences, it stores values in your browser's local storage + (localStorage), such as your chosen language, light or dark + appearance and your conversion settings. These values stay on your device, are not transmitted + to us and contain none of the content you paste. They are not cookies. You can delete them at + any time in your browser settings. +

+

+ Only if you switch on “Keep the last 10 clips” in the settings does the site store the most + recently edited texts in your browser's local database (IndexedDB). + This feature is off by default. The entries never leave your device, are only visible in this + browser and can be deleted individually or all at once in the history; when you switch the + feature off, you are asked whether the history should be deleted. +

+

+ The basis for this purely local storage is your wish for a working user interface; we have no + access to it. +

+ +

4. Offline use (Progressive Web App)

+

+ The site registers a service worker that stores the required program files in your browser's + cache, so clip2md also works without an internet connection. Only program files of this site + are cached, never your content. You can remove the cache via your browser's site data. +

+ +

5. Server log files

+

When this site is requested, the hosting provider automatically stores data in log files:

+
    +
  • IP address of the requesting device
  • +
  • date and time of access
  • +
  • name and URL of the requested file
  • +
  • amount of data transferred and whether the request succeeded
  • +
  • browser and operating system used
  • +
  • where applicable, the previously visited page (referrer)
  • +
+

+ The legal basis is Art. 6 (1) (f) GDPR. Our legitimate interest lies in the technically + error-free operation and security of the service. The data is deleted after seven days at the + latest and is not combined with other data sources. +

+ +

6. Hosting

+

+ This site is operated on servers of Hetzner Online GmbH, Industriestr. 25, 91710 Gunzenhausen, + Germany. A data processing agreement pursuant to Art. 28 GDPR is in place with the provider. + Processing takes place exclusively within the European Union. Data transfer to this site is + encrypted via HTTPS. +

+ +

7. No cookies, no tracking

+

+ This site sets no cookies and uses no analytics, advertising or audience measurement services. + No content is loaded from third-party servers, in particular no fonts and no scripts from + content delivery networks. A consent banner is therefore not required. +

+

+ One exception concerns the optional preview: if the text you paste contains images hosted on + third-party servers, your browser loads those images from there when the preview is shown. The + respective server learns your IP address in the process. None of your text is transmitted, and + the origin is not sent thanks to Referrer-Policy: no-referrer. If you + want to avoid this, keep the preview switched off. +

+ +

8. Support via PayPal

+

+ The site contains a “Donate” or “Buy me a coffee” link. It is a plain link; when you open + clip2md, no content, scripts or cookies are loaded from PayPal and no data is sent to PayPal. + Only when you click the link do you leave this site and reach a PayPal payment page. +

+

+ The provider is PayPal (Europe) S.à r.l. et Cie, S.C.A., 22–24 Boulevard Royal, L-2449 + Luxembourg. PayPal itself is responsible for processing on its pages; its privacy statement + applies: + paypal.com/de/legalhub/privacy-full. +

+

+ If you pay an amount, PayPal provides us with the details needed to process it, in particular + your name, email address, the amount, date and time, and the transaction number. The legal basis + is Art. 6 (1) (b) GDPR (processing the payment) and Art. 6 (1) (c) GDPR in conjunction with + statutory tax and commercial retention obligations (usually eight to ten years). The data is not + used for any other purpose, such as advertising. The payment is voluntary; nothing is provided + in return. +

+ +

9. Your rights

+

+ You have the right of access (Art. 15 GDPR), rectification (Art. 16), erasure (Art. 17), + restriction of processing (Art. 18), data portability (Art. 20) and the right to object to + processing based on Art. 6 (1) (f) GDPR (Art. 21). To exercise these rights, please contact the + address above. +

+ +

10. Right to lodge a complaint

+

+ You may lodge a complaint with a data protection supervisory authority. The competent authority + is the State Commissioner for Data Protection of Lower Saxony (Die Landesbeauftragte für den + Datenschutz Niedersachsen), Prinzenstraße 5, 30159 Hannover, Germany. +

+ +

11. Last updated

+

This privacy policy was last updated in September 2026.

+ +
+ +
+ + diff --git a/sw.js b/sw.js index 8050f1c..0499c04 100644 --- a/sw.js +++ b/sw.js @@ -2,12 +2,14 @@ Pages (navigations, .html): network first, cache only as offline fallback — so new or changed pages are never frozen for existing users. Static assets (vendor, fonts, icons): cache first. Bump CACHE on asset changes. */ -var CACHE = 'clip2md-v7'; +var CACHE = 'clip2md-v8'; var ASSETS = [ '/', '/index.html', '/impressum.html', '/datenschutz.html', + '/imprint.html', + '/privacy.html', '/legal.css', '/icon.svg', '/icon-192.png',