s4luorth 377c64f8d0 feat: lokales Google-Fonts-Hosting + "Lizenz upgraden"-button (v1.3.0)
- Lizenz-Tab: bei vollen Plaetzen erscheint ein "Lizenz upgraden"-Button
  (https://lucas-orth.de/wp-plugins/gdpr-content-blocker/) zusaetzlich zur
  domain-freigabe.
- Neues Feature "Schriften": Google Fonts lokal hosten (button-modell).
  Admin klickt "Jetzt herunterladen & einbinden" -> plugin scannt die seiten,
  laedt googleapis-CSS + gstatic-schriftdateien einmalig in den uploads-ordner,
  schreibt die pfade lokal um und tauscht sie per output-buffer im quelltext.
  Abgedeckt: <link>, inline-@import/url() UND @import/url() in gleicher-origin
  externen CSS-dateien (mit absolutierung der restlichen relativen pfade).
  preconnect/dns-prefetch zu google-font-hosts werden entfernt (kein IP-leak).
  Toggle zum aus/einschalten + "Lokale Schriften loeschen".
- i18n-pipeline robuster: build-en-mo.py nutzt jetzt translations-en.json
  (lookup per quell-string, reihenfolge-unabhaengig) und bricht mit liste ab,
  falls eine uebersetzung fehlt. Alle neuen strings DE/EN ergaenzt (139).
- version 1.3.0 (header + CB_VERSION).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 07:16:19 +02:00

GDPR Content Blocker — Monorepo

DSGVO-konformer Consent-Blocker für externe iframes + selbst-gehosteter Lizenz-/Update-Server.

Struktur

  • gdpr-content-blocker/ — das WordPress-Plugin. Aus diesem Ordner wird die Release-ZIP gebaut (Top-Level-Ordner gdpr-content-blocker/).
  • license-backend/ — Node/Express + SQLite Lizenz- & Update-Backend (Docker).
  • hilfsdaten/ — interne Notizen, Spickzettel, Gitea-Runner-Setup (nicht Teil des Plugins).
  • release.ps1 — baut die Plugin-ZIP und lädt sie ins Backend (manueller Release).

Manueller Release (Update verteilen)

  1. Version in gdpr-content-blocker/gdpr-content-blocker.php bumpen (Header Version: und define( 'CB_VERSION', … )), committen.
  2. ZIP bauen + hochladen:
    .\release.ps1 -Version 1.0.1 -Token DEIN_ADMIN_API_TOKEN
    
  3. Lizenzierte Seiten sehen das Update unter Plugins.

Details: siehe hilfsdaten/SPICKZETTEL.md.

Backend starten

Siehe license-backend/README.md.

Hinweis

Secrets (.env) sind per .gitignore ausgeschlossen und gehören nicht ins Repo.

Description
No description provided
Readme 811 KiB
Languages
JavaScript 49.8%
PHP 43.9%
CSS 3.2%
Python 2.1%
PowerShell 0.7%
Other 0.3%