Der eigene Divi-Reiter entfällt. DiviAdminExtras behält Admin-Hinweis, Orphan-Bereinigung vor der Ausgabe (lit_mcp_compat_profile_load), Hinweis zum nächsten Schritt und zur privaten Testseite (lit_mcp_compat_profile_intro), Zustandstexte mit Quelle (lit_mcp_compat_explanation), Automatik-Notiz und Visual-Builder-Hinweis (lit_mcp_compat_profile_extra) sowie die Spalten Quelle, Probleme und Betroffene Tools über die neue, gegen fehlerhafte Callbacks abgesicherte Erweiterung lit_mcp_compat_capability_columns. Texte, Doku, CSS (lit-mcp-compat-*) und Smoke auf den neuen Reiter umgestellt, tote divi_*-Hinweise entfernt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
165 lines
12 KiB
Markdown
165 lines
12 KiB
Markdown
# Abläufe
|
||
|
||
## Neue Website aufsetzen
|
||
|
||
1. `lit-site-status` und `lit-content-types` lesen.
|
||
2. Grundeinstellungen: `lit/wp-settings-get`, dann `lit/wp-settings-update` (Titel, Untertitel, Sprache,
|
||
Zeitzone, Datumsformat, Permalinks `/%postname%/`). `previous` in der Antwort enthält die alten Werte.
|
||
3. Seiten als Entwürfe anlegen (`lit-content-create`), Hierarchie über `parent`.
|
||
4. Startseite: Seite veröffentlichen (nach Rückfrage), dann
|
||
`{"settings": {"page_on_front": <ID>, "show_on_front": "page"}}`.
|
||
5. Menü: `lit/menu-create` (optional mit `location` aus `lit/menu-list`), Einträge mit `lit/menu-set-items` – mit
|
||
`menu_id` und `menu_rev` aus der Antwort von `lit/menu-create` (kein `lit/menu-get` nötig).
|
||
6. Veröffentlichen erst, wenn der Nutzer es ausdrücklich möchte.
|
||
|
||
## Divi-Seite bauen
|
||
|
||
1. `lit-divi-design-system` lesen (Farben, Schriften, Presets) und `lit-divi-catalog` für die Module. Fehlt eine
|
||
Farbe, Variable oder ein Preset, dem Nutzer vorschlagen, sie anzulegen (`lit/divi-colors-set`,
|
||
`lit/divi-variables-set`, `lit/divi-presets-set`; Ablauf in `divi-design-system`), statt feste Werte zu setzen.
|
||
2. Seite als Entwurf mit Inhalt anlegen: `lit-content-create` mit `divi` (Abschnitte in Kurzform, siehe
|
||
`divi-shortform`) – oder eine leere Seite anlegen und Abschnitte mit `lit-divi-insert` einfügen.
|
||
3. Weitere Abschnitte/Module mit `lit-divi-insert`, Anpassungen mit `lit-divi-update`; immer die `tree_rev`
|
||
der letzten Antwort mitgeben.
|
||
4. `lit-page-render-summary` prüfen, `warnings` beheben, dem Nutzer `preview_url` und `edit_url` (Divi-Builder)
|
||
nennen. Veröffentlichen nur auf Wunsch (`lit-post-publish`).
|
||
|
||
## Ein Divi-Werkzeug lehnt ab
|
||
|
||
Antwortet ein Divi-Werkzeug mit `divi_untested` oder `divi_incompatible`, ist nur eine Fähigkeit gesperrt, nicht Divi
|
||
insgesamt:
|
||
|
||
1. `lit-site-status` lesen: `components` → `divi` → `features` nennt je Fähigkeit Zustand, Quelle, Probleme und die
|
||
betroffenen Werkzeuge.
|
||
2. Mit Werkzeugen weiterarbeiten, deren Fähigkeit `released` ist (z. B. Seiten lesen mit `lit-divi-outline`), und den
|
||
gesperrten Teil auslassen.
|
||
3. Dem Nutzer sagen, welche Fähigkeit gesperrt ist: bei `untested` muss ein Administrator unter Einstellungen → LIT
|
||
MCP → Compatibility die Prüfung ausführen und freigeben, bei `incompatible` muss LIT MCP aktualisiert werden.
|
||
|
||
## Bibliothek und globale Module
|
||
|
||
Vorhandene Abschnitte aus der Divi-Bibliothek zuerst suchen (`lit/library-list`) und mit `lit-library-insert`
|
||
einfügen, statt sie neu zu bauen. Einen gelungenen Abschnitt für später speichern: `lit/library-save`.
|
||
Abschnitte zwischen Seiten kopieren: `lit/divi-node-copy`. Wiederkehrende Abschnitte finden und zu globalen
|
||
Modulen machen: `lit/library-find-similar`, `lit/library-make-global`. Globale Module ändern und neue
|
||
vorschlagen: `lit-guide` topic `divi-library`.
|
||
|
||
## Design auf Seiten ausrollen
|
||
|
||
Ein Preset soll auf vielen Seiten gelten oder ein altes Preset verschwinden (Presets anlegen: `divi-design-system`;
|
||
ein ganzes Corporate Design: „Corporate Design übernehmen“):
|
||
|
||
1. `lit-divi-design-system` lesen (Presets je Modul) und das Preset bei Bedarf mit `lit/divi-presets-set` anlegen
|
||
(Probelauf, nach Rückfrage `confirm: true` mit `design_rev`).
|
||
2. Einzelne Module: `lit-divi-update` mit `preset` (auch Stapel) und `group_presets`; `warnings` zu überdeckten
|
||
lokalen Werten dem Nutzer nennen, auf Wunsch `clear_overrides: true`.
|
||
3. Viele Seiten: `lit/divi-presets-assign` mit `module`, `preset`/`group_presets` und Filter (`post_ids`,
|
||
`only_without_preset`, `only_with_preset`) zuerst ohne `confirm`. Dem Nutzer die Seiten, die Zahl der Module und
|
||
die Überdeckungen zeigen; nach seiner Antwort denselben Aufruf mit `confirm: true`. Bei `remaining` größer als 0
|
||
wiederholen (höchstens 50 Seiten je Aufruf). Jede Seite bekommt eine Revision.
|
||
4. Ein Preset aufgeben: `lit/divi-design-detach` (Probelauf, nach Rückfrage `confirm: true`, mit `design_rev`, wenn
|
||
der Probelauf eine nennt; bei `remaining` wiederholen), danach `lit/divi-presets-delete` (ebenfalls Probelauf
|
||
und `confirm`).
|
||
5. Stichprobe: `lit-divi-outline` einer betroffenen Seite (zeigt Preset und Gruppen-Presets je Modul) und
|
||
`lit-page-render-summary`; dem Nutzer die Vorschau nennen.
|
||
|
||
## Corporate Design übernehmen
|
||
|
||
Farben, Schriften und Abstände des Corporate Designs ins Designsystem von Divi übertragen. Die Werte nennt der
|
||
Nutzer (Styleguide, Logo-Farben, Schriftdateien) – nichts erfinden. Jede Änderung: Probelauf, Rückfrage,
|
||
`confirm: true` mit `design_rev` (Ablauf: `divi-design-system`, „Ablauf jeder Änderung“); alles wirkt auf die
|
||
ganze Website.
|
||
|
||
1. Ist-Stand lesen: `lit-divi-design-system` (Farben, Variablen, Presets; bei großen Websites mit `only` und
|
||
`module` eingrenzen) und `lit/divi-theme-options-get` (Schriften, Größen, Layout). Dem Nutzer sagen, was schon
|
||
da ist, und die Quelle der neuen Werte klären.
|
||
2. Schriften: Gibt es die Schrift schon in Divi (Google-Schrift, Web-Safe-Schrift, hochgeladene)? Dann genügt der
|
||
exakte Name in Schritt 5. Sonst `lit/divi-fonts-upload` (der Probelauf lädt die Dateien und nennt Format, Größe
|
||
und SHA-256; nach Rückfrage `confirm: true`). Es gibt keinen Snapshot, entfernen kann die Schrift nur der Nutzer
|
||
im Divi-Builder; den Datenschutz-Hinweis (eigener Server statt Google) nennen.
|
||
3. Farben: `lit/divi-colors-set` – die Hauptfarben (`primary`, `secondary`, `heading`, `body`, `link`) ändern, weitere
|
||
Farben mit `label` und `color` anlegen, abgeleitete mit `{{color:<Name>}}` und `relative`. Der Probelauf nennt
|
||
betroffene Seiten und Warnungen; dem Nutzer zeigen.
|
||
4. Variablen: `lit/divi-variables-set` für Abstände, Zahlen, Texte, Bilder, Links und Schriften. Eine Variable,
|
||
die nicht mehr gebraucht wird, erst mit `lit/divi-design-detach` (`variable`) aus Seiten und Presets lösen, dann
|
||
mit `status: archived` archivieren.
|
||
5. Theme-Optionen: `lit/divi-theme-options-update` (`heading_font`, `body_font`, Größen, Zeilenhöhen,
|
||
`content_width`, `gutter_width`, Abstände; `null` = Divi-Standard). Das ändert jede Seite der Website: den Nutzer
|
||
ausdrücklich fragen.
|
||
6. Presets: `lit/divi-presets-set` (aus einem gestalteten Modul mit `from_node` oder mit `attrs` und Platzhaltern wie
|
||
`{{color:primary}}`; `make_default: true` für das Standard-Preset), kontrollieren mit `lit/divi-preset-get`.
|
||
Auf Seiten ausrollen: „Design auf Seiten ausrollen“; alte Presets mit `lit/divi-design-detach` lösen und mit
|
||
`lit/divi-presets-delete` löschen.
|
||
7. Kontrolle: eine Beispielseite mit `lit-page-render-summary` und `lit-divi-outline` prüfen; dem Nutzer
|
||
`preview_url` und `edit_url` nennen.
|
||
8. Zurücknehmen: `lit/divi-design-snapshots` (`area` = `presets`, `colors`, `variables` oder `theme_options`), dann
|
||
`lit/divi-design-restore` (Probelauf, `confirm: true`); die `snapshot_id` steht auch in jeder Änderungsantwort.
|
||
Für Seiteninhalt gibt es nur die WordPress-Revisionen, für hochgeladene Schriften kein Restore.
|
||
9. Fehler: `conflict` (andere Änderung läuft, bei Schriften: Name vergeben) – warten und den Probelauf wiederholen
|
||
bzw. anderen Namen wählen; `rev_mismatch` (Bestand inzwischen geändert) – neu lesen; `forbidden` (Recht fehlt, die
|
||
Meldung nennt es) – Administrator bitten; `in_use` (Preset wird noch verwendet) – erst `lit/divi-design-detach`;
|
||
`divi_untested`/`divi_incompatible` – siehe „Ein Divi-Werkzeug lehnt ab“.
|
||
|
||
## Inhalte einer Divi-Schleife setzen
|
||
|
||
Beispiel: Datum des Beitrags in einer Beitragsliste. Details, Optionen und Grenzen: `divi-placeholders`,
|
||
Abschnitt „Schleifen-Inhalte“.
|
||
|
||
1. Der Nutzer schaltet im Divi-Builder die Schleife an einem Element ein (Abfrage: Beiträge, Terme, Benutzer oder
|
||
Menü); LIT MCP legt Schleifen nicht an. Das Element (Pfad-ID, z. B. `s0.r1.c0`) mit dem Nutzer klären;
|
||
`lit-divi-node-get` zeigt seine Attribute (`module.advanced.loop`).
|
||
2. `lit/divi-dynamic-sources` mit `post_type`, `post_id` und `node` (Pfad-ID eines Moduls in der Schleife) nennt die
|
||
passenden `loop_*`-Optionen mit Platzhalter.
|
||
3. `lit-divi-insert` mit `parent` = das Schleifen-Element, z. B.
|
||
`{"type": "text", "content": "{{loop:post_date}}"}`; vorhandene Module mit `lit-divi-update`.
|
||
4. Lehnt das Werkzeug ab („braucht eine Divi-Schleife“ bzw. „passt nicht zur Schleife“), die Meldung ernst nehmen:
|
||
das Modul in die Schleife setzen oder eine Option der passenden Art wählen, nie die Prüfung umgehen.
|
||
5. `lit-page-render-summary` prüfen und dem Nutzer die Vorschau nennen; ohne Treffer der Abfrage bleibt der Inhalt
|
||
leer.
|
||
|
||
## Text auf vielen Seiten ersetzen
|
||
|
||
`lit/divi-replace-text` zuerst mit `dry_run: true` (Standard): zeigt Treffer je Seite mit `tree_rev`. Nach
|
||
Rückfrage mit `dry_run: false`, `targets` (post_id + tree_rev aus dem Probelauf) und `confirm: true`
|
||
ausführen; jede Seite bekommt eine eigene Revision, `results` meldet das Ergebnis je Seite. Ersetzt wird nur
|
||
sichtbarer Text (keine Links, Stile, Code oder dynamischen Inhalte); in reinen Textfeldern (Titel,
|
||
Button-Texte) werden Leerzeichen am Anfang und Ende der Ersetzung entfernt. Globale Module werden nicht
|
||
geändert, sondern in `skipped_nodes` genannt – sie im Bibliothekseintrag ändern (`lit-guide` topic
|
||
`divi-library`).
|
||
|
||
## Menüs pflegen
|
||
|
||
- `lit/menu-get` liefert den Baum und `menu_rev` (Stand des Menüs; für ein neues Menü schon `lit/menu-create`).
|
||
`lit/menu-set-items` verlangt diese `menu_rev`; hat sich das Menü inzwischen geändert, kommt `rev_mismatch` – dann mit `lit/menu-get` neu lesen.
|
||
Die Antwort enthält die neue `menu_rev` für weitere Änderungen.
|
||
- Für größere Umbauten den Baum verändern und vollständig als `items` an `lit/menu-set-items` senden
|
||
(bestehende Einträge mit `id`, neue ohne `id`). Wird der Baum unverändert zurückgeschickt, meldet das Tool
|
||
„keine Änderung“ und schreibt nichts.
|
||
- Für kleine Änderungen `operations`: `{op: "add", item, parent_id?, position?}`,
|
||
`{op: "move", id, parent_id?, position?}`, `{op: "remove", id}` (Kinder eines entfernten Eintrags rücken
|
||
an seine Stelle).
|
||
- Neue Einträge ohne `id`: `type` `post`/`taxonomy` mit `object_id`, oder `custom` mit `url` (`/pfad`,
|
||
`#anker`, `http(s)`, `mailto`, `tel`) und `title`; jeweils optional `children`. Das Ziel eines bestehenden
|
||
Eintrags lässt sich nicht ändern – dafür entfernen und neu anlegen.
|
||
- Verlinkt werden nur für den Nutzer lesbare, veröffentlichte Inhalte und Begriffe öffentlicher Taxonomien.
|
||
Private Inhalte sind immer ausgeschlossen. Entwürfe, ausstehende oder geplante Inhalte lassen sich nur mit
|
||
`allow_unpublished: true` verlinken – WordPress zeigt den Menüpunkt sofort an, Besucher bekommen bis zur
|
||
Veröffentlichung einen toten Link (die Antwort enthält dazu eine Warnung).
|
||
- Fallen dabei Einträge weg, verlangt das Tool `confirm: true`; `previous_items` (Stand vorher) erlaubt das
|
||
Zurückbauen – neu angelegte Einträge erhalten dabei eine neue `id`, CSS-Klassen, Linkziel und Beschreibung
|
||
gehen verloren.
|
||
- `lit/menu-assign-location` mit `menu_id: 0` entfernt ein Menü von seiner Position (es verschwindet dann von
|
||
der Website) und braucht dafür `confirm: true` nach Rückfrage; die Antwort nennt das entfernte Menü.
|
||
|
||
## Einträge eines eigenen Inhaltstyps (Pods)
|
||
|
||
1. `lit-content-types` mit `post_type` → Pflichtfelder, Auswahlwerte, Beziehungsziele.
|
||
2. `lit-content-create` mit allen Pflichtfeldern in `fields`.
|
||
3. Beziehungen über IDs (vorher mit `lit-content-query` suchen).
|
||
|
||
## Vorlage für einen Inhaltstyp (Theme Builder)
|
||
|
||
Wie Einträge eines Inhaltstyps (z. B. Personen) auf der Website aussehen, legt eine Theme-Builder-Vorlage fest.
|
||
Ablauf und Regeln: `lit-guide` topic `theme-builder`. Neue Vorlagen sind deaktiviert; aktiviert wird nur auf
|
||
ausdrücklichen Wunsch mit `lit/tb-activate`.
|