docs: Notizen und Spec für Etappe 4d (Recherche, Formate-Nachtrag, Rulings W1–W14, offene Kleinpunkte)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Jan-Niclas Loosen
2026-10-19 18:20:17 +02:00
co-authored by Claude Sonnet 5.5
parent cb41f9e877
commit bfede30d33
5 changed files with 247 additions and 5 deletions
@@ -181,11 +181,12 @@ Jedes Tool nimmt **mehrere Einträge** eines Bereichs je Aufruf (ein Snapshot, e
- Whitelist (G3 a): Schriften (`heading_font`, `body_font`, `primary_nav_font`, `secondary_nav_font`, `heading_font_weight`, `body_font_weight`), Größen (`body_font_size`, `tablet_…`, `phone_…`, `body_header_size`, `tablet_header_font_size`, `phone_header_font_size`, `body_font_height`, `body_header_height`, `body_header_spacing`, `body_header_style`), Layout (`content_width`, `gutter_width`, `section_padding`, `row_padding`).
- Die fünf Farben stehen in `get` (lesend), geschrieben werden sie nur über `lit/divi-colors-set` (eine Quelle, Snapshot `colors`) (A8).
- `get` liefert je Feld Typ, Beschreibung, aktuellen Wert und Divi-Standard; `update` bereinigt mit Divis Customizer-Sanitize-Callbacks (Katalog-Adapter), schreibt mit `et_update_option()` und leert die Caches wie der Customizer (`remove_static_resources`, `et_pb_force_regenerate_templates`).
- `body_header_style` nimmt genau einen Wert (`italic`, `uppercase` oder `underline`); Divis Sanitizer lehnt Kombinationen ab. `null` setzt einen Schlüssel auf den Divi-Standard zurück (`et_delete_option`); `'none'` und `false` werden abgelehnt.
### 8.2 Schriften
- Schriftnamen (Theme-Optionen, Presets, Schrift-Variablen) werden gegen Divis Google-Fonts-Liste, hochgeladene Schriften (`et_uploaded_fonts`) und Web-Safe-Schriften geprüft; Unbekanntes → Fehler mit ähnlichen Namen.
- **`lit/divi-fonts-upload`** (G10 b): `name`, `files` (`{ "woff2": "<URL>", "woff": …, "ttf": …, "otf": … }`), `weights` (`all` oder Liste), `generic_family`. Laden mit `wp_safe_remote_get` (Größenlimit wie Medien, Grenze je Datei 5 MB (A9)), Dateityp über Inhalt prüfen (Magic Bytes), Ablage mit Divis Upload-Verzeichnis- und Dateityp-Filtern (`upload_dir_font`, `check_filetype_and_ext_font`) über einen eigenen Sideload, weil `FontsUtility::font_add()` nur echte Browser-Uploads annimmt; Eintrag in `et_uploaded_fonts` im Format von `font_add()` (Nachbau mit Fingerabdruck). Namensregeln wie Divi (Sonderzeichen, Länge, kein Google-/vorhandener Name).
- **`lit/divi-fonts-upload`** (G10 b): `name`, `files` (`{ "woff2": "<URL>", "woff": …, "ttf": …, "otf": … }`), `weights` (`all` oder Liste), `generic_family`. Laden mit `wp_safe_remote_get` (Größenlimit wie Medien, Grenze je Datei 5 MB (A9)), Dateityp über Inhalt prüfen (Magic Bytes), Installation im Prozess über `FontsUtility::font_add()` mit Temp-Dateien (`action: wp_handle_upload_rest`, wie Divis KI-Pfad `install_to_custom_fonts()`); Divi legt Datei und `et_uploaded_fonts`-Eintrag selbst an, ein Mirror `font-install` sichert die Aufrufkonvention. Formate: `woff2`, `woff`, `ttf`, `otf`. Namensregeln wie Divi (Sonderzeichen, Länge, kein Google-/vorhandener Name).
- Keine Snapshots für Schriften: ein Upload legt nur neu an, überschreibt nie (A2). Probelauf + `confirm` gelten trotzdem.
- DSGVO: lokales Laden der Google-Fonts bleibt Theme-Einstellung; Tool-Beschreibung weist auf hochgeladene Schriften als datensparsame Variante hin.
@@ -204,10 +205,10 @@ Jedes Tool nimmt **mehrere Einträge** eines Bereichs je Aufruf (ein Snapshot, e
| Bereich / Tool | Voraussetzung |
|---|---|
| Lesen (`preset-get`, `theme-options-get`, `design-snapshots`) | wie `lit/divi-design-system` (`edit_posts`) |
| Farben, Presets schreiben, Restore, Fonts-Upload | `edit_theme_options` (strenger als Divi, Formate §7.4) + Divi-Rolle `use_visual_builder` |
| Farben, Presets schreiben, Restore (Farben/Presets/Variablen) | `edit_theme_options` (strenger als Divi, Formate §7.4) + Divi-Rolle `use_visual_builder` |
| Variablen | zusätzlich `variables_manager` |
| Theme-Optionen | `edit_theme_options` + Divi-Rolle `theme_customizer` |
| Fonts-Upload | zusätzlich `upload_files` |
| Theme-Optionen (schreiben, Restore) | `edit_theme_options` + Divi-Rolle `theme_customizer` (kein Visual Builder) |
| Fonts-Upload | `upload_files` + `edit_theme_options` + Divi-Rolle `custom_fonts_management` |
| Massenzuweisung, Detach | Recht des Bereichs + `edit_post` für jede Live-Fundstelle (Regeln P8/P8a), Theme-Builder-Zugriff wie bisher |
| `set` mit rohem HTML/CSS, Lottie, Interactions | wie bei Modulen (`unfiltered_html`) |