Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
wiki:syntax [13.06.2025 13:31] – Reveal.js Plugin Dokumentation hinzugefügt - Vollständige Syntax-Referenz mit Best Practices Jane Alesi | wiki:syntax [02.07.2025 05:40] (aktuell) – Mermaid Plugin Syntax-Dokumentation hinzugefügt Jane Alesi | ||
---|---|---|---|
Zeile 1111: | Zeile 1111: | ||
{{tag> | {{tag> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== 19. Mermaid Plugin ===== | ||
+ | |||
+ | ==== Plugin-Übersicht ==== | ||
+ | Das **Mermaid Plugin** ermöglicht die Erstellung von Diagrammen und Flussdiagrammen mit der JavaScript-basierten Bibliothek [Mermaid](https:// | ||
+ | |||
+ | * **GitHub Repository: | ||
+ | * **Mermaid Version:** 11.6.0 (lokal gehostet) | ||
+ | * **DokuWiki Kompatibilität: | ||
+ | * **PHP Anforderung: | ||
+ | * **Lizenz:** GNU GPL v2.0 (Plugin), MIT (Mermaid.js) | ||
+ | |||
+ | ==== Grundlegende Verwendung ==== | ||
+ | |||
+ | === Einfaches Diagramm === | ||
+ | < | ||
+ | < | ||
+ | graph TD | ||
+ | A[Start] --> B{Entscheidung} | ||
+ | B -->|Ja| C[Aktion 1] | ||
+ | B --> | ||
+ | C --> E[Ende] | ||
+ | D --> E | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | **Ergebnis: | ||
+ | |||
+ | === Grundlegende Syntax-Regeln === | ||
+ | * **Container: | ||
+ | * **Diagramm-Typ: | ||
+ | * **Knoten:** Definiert mit verschiedenen Formen: '' | ||
+ | * **Verbindungen: | ||
+ | |||
+ | ==== Unterstützte Diagramm-Typen ==== | ||
+ | |||
+ | === Flussdiagramme (Flowcharts) === | ||
+ | < | ||
+ | < | ||
+ | flowchart TD | ||
+ | A[Rechteck] --> B(Runde Ecken) | ||
+ | B --> C{Raute} | ||
+ | C -->|Ja| D[Ergebnis 1] | ||
+ | C --> | ||
+ | D --> F((Kreis)) | ||
+ | E --> F | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | **Richtungen: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | === Sequenzdiagramme === | ||
+ | < | ||
+ | < | ||
+ | sequenceDiagram | ||
+ | participant A as Kunde | ||
+ | participant B as Server | ||
+ | participant C as Datenbank | ||
+ | | ||
+ | A->> | ||
+ | B->> | ||
+ | C-->> | ||
+ | B-->> | ||
+ | | ||
+ | Note over A,C: Kommunikation beendet | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | **Pfeil-Typen: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | === Gantt-Diagramme === | ||
+ | < | ||
+ | < | ||
+ | gantt | ||
+ | title Projektplan | ||
+ | dateFormat | ||
+ | section Planung | ||
+ | Anforderungen sammeln :done, des1, 2024-01-01, | ||
+ | System-Design | ||
+ | section Entwicklung | ||
+ | Frontend entwickeln | ||
+ | Backend entwickeln | ||
+ | section Tests | ||
+ | Unit Tests : | ||
+ | Integration Tests : | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === Klassendiagramme === | ||
+ | < | ||
+ | < | ||
+ | classDiagram | ||
+ | class Fahrzeug { | ||
+ | +String marke | ||
+ | +String modell | ||
+ | +int baujahr | ||
+ | +starten() | ||
+ | +stoppen() | ||
+ | } | ||
+ | | ||
+ | class Auto { | ||
+ | +int anzahlTueren | ||
+ | +boolean automatik | ||
+ | +fahren() | ||
+ | } | ||
+ | | ||
+ | class Motorrad { | ||
+ | +String motortyp | ||
+ | +beschleunigen() | ||
+ | } | ||
+ | | ||
+ | Fahrzeug <|-- Auto | ||
+ | Fahrzeug <|-- Motorrad | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === Git-Graphen === | ||
+ | < | ||
+ | < | ||
+ | gitGraph | ||
+ | commit id: " | ||
+ | branch develop | ||
+ | checkout develop | ||
+ | commit id: " | ||
+ | commit id: " | ||
+ | checkout main | ||
+ | commit id: " | ||
+ | merge develop | ||
+ | commit id: " | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === User Journey Diagramme === | ||
+ | < | ||
+ | < | ||
+ | journey | ||
+ | title Benutzer-Journey: | ||
+ | section Suche | ||
+ | Webseite besuchen: 5: Benutzer | ||
+ | Produkt suchen: 3: Benutzer | ||
+ | Ergebnisse filtern: 4: Benutzer | ||
+ | section Kauf | ||
+ | Produkt auswählen: 5: Benutzer | ||
+ | In Warenkorb legen: 5: Benutzer | ||
+ | Checkout: 3: Benutzer | ||
+ | Bezahlung: 2: Benutzer | ||
+ | section Lieferung | ||
+ | Bestellung bestätigen: | ||
+ | Lieferung verfolgen: 4: Benutzer | ||
+ | Produkt erhalten: 5: Benutzer | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === Entity-Relationship Diagramme === | ||
+ | < | ||
+ | < | ||
+ | erDiagram | ||
+ | KUNDE ||--o{ BESTELLUNG : " | ||
+ | BESTELLUNG ||--|{ BESTELLPOSITION : " | ||
+ | BESTELLPOSITION }o--|| PRODUKT : " | ||
+ | PRODUKT }o--|| KATEGORIE : " | ||
+ | | ||
+ | KUNDE { | ||
+ | int kunde_id | ||
+ | string name | ||
+ | string email | ||
+ | string adresse | ||
+ | } | ||
+ | | ||
+ | BESTELLUNG { | ||
+ | int bestellung_id | ||
+ | int kunde_id | ||
+ | date bestelldatum | ||
+ | decimal gesamtbetrag | ||
+ | } | ||
+ | | ||
+ | PRODUKT { | ||
+ | int produkt_id | ||
+ | string name | ||
+ | decimal preis | ||
+ | int kategorie_id | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === Tortendiagramme === | ||
+ | < | ||
+ | < | ||
+ | pie title Marktanteile Browser 2024 | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== Erweiterte Funktionen ==== | ||
+ | |||
+ | === Größenanpassung === | ||
+ | < | ||
+ | <mermaid 100% 400px> | ||
+ | graph TD | ||
+ | A[Breite: 100%] --> B[Höhe: 400px] | ||
+ | </ | ||
+ | |||
+ | <mermaid 500px 300px> | ||
+ | graph LR | ||
+ | C[Breite: 500px] --> D[Höhe: 300px] | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | **Unterstützte Einheiten: | ||
+ | * **Pixel:** '' | ||
+ | * **Prozent: | ||
+ | * **CSS-Einheiten: | ||
+ | |||
+ | === Raw-Modus === | ||
+ | < | ||
+ | < | ||
+ | raw | ||
+ | graph TD | ||
+ | A(**mermaid**)--> | ||
+ | A--> | ||
+ | B--> | ||
+ | C-->D | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | **Raw-Modus Vorteile:** | ||
+ | * Keine DokuWiki-Syntax-Verarbeitung | ||
+ | * Vollständige Mermaid-Funktionalität verfügbar | ||
+ | * Vermeidet Konflikte zwischen DokuWiki und Mermaid-Syntax | ||
+ | |||
+ | === DokuWiki-Links in Mermaid === | ||
+ | < | ||
+ | < | ||
+ | graph TD | ||
+ | A[Start] --> B[" | ||
+ | B --> C[" | ||
+ | C --> D[" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | **Link-Syntax-Regeln: | ||
+ | * **Interne Links:** '' | ||
+ | * **Externe Links:** '' | ||
+ | * **Anführungszeichen: | ||
+ | |||
+ | === Styling und Themes === | ||
+ | < | ||
+ | < | ||
+ | graph TD | ||
+ | A[Knoten A] --> B[Knoten B] | ||
+ | A --> C[Knoten C] | ||
+ | B --> D[Knoten D] | ||
+ | C --> D | ||
+ | | ||
+ | %% Styling-Definitionen | ||
+ | classDef wichtig fill:# | ||
+ | classDef normal fill:# | ||
+ | | ||
+ | class A,D wichtig | ||
+ | class B,C normal | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | **Verfügbare Themes:** | ||
+ | * **Standard: | ||
+ | * **Erweitert: | ||
+ | |||
+ | ==== Diagramm-Export ==== | ||
+ | |||
+ | === SVG-Export aktivieren === | ||
+ | **Administratoren müssen den Save-Button in der Plugin-Konfiguration aktivieren: | ||
+ | - Admin → Konfiguration → Mermaid Plugin | ||
+ | - " | ||
+ | |||
+ | === Export-Funktionalität === | ||
+ | - **Maus über Diagramm:** Save-Button erscheint | ||
+ | - **SVG-Download: | ||
+ | - **Format:** Behält exakte Darstellung bei | ||
+ | |||
+ | === Server-seitige Konvertierung === | ||
+ | **Lock-Button aktivieren für statische SVG-Einbettung: | ||
+ | - Verhindert client-seitige Konvertierung | ||
+ | - Nützlich für PDF-Export (dw2pdf Plugin) | ||
+ | - Archivierung von Seiten mit statischen Diagrammen | ||
+ | |||
+ | ==== Bekannte Probleme und Lösungen ==== | ||
+ | |||
+ | === Klammer-Konflikte === | ||
+ | **Problem: | ||
+ | |||
+ | **Lösung: | ||
+ | < | ||
+ | %% Falsch: | ||
+ | graph TD | ||
+ | A[Link] --> B[[internal: | ||
+ | |||
+ | %% Richtig: | ||
+ | graph TD | ||
+ | A[Link] --> B[" | ||
+ | </ | ||
+ | |||
+ | === Click-Events vs. DokuWiki-Links === | ||
+ | **Problem: | ||
+ | |||
+ | **Schlecht: | ||
+ | < | ||
+ | < | ||
+ | flowchart TD | ||
+ | A[Link] | ||
+ | click A " | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | **Besser:** | ||
+ | < | ||
+ | < | ||
+ | flowchart TD | ||
+ | A[" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === Such-Highlighting === | ||
+ | * **Problem: | ||
+ | * **Lösung: | ||
+ | * **Auswirkung: | ||
+ | |||
+ | ==== Praktische Beispiele ==== | ||
+ | |||
+ | === Systemarchitektur === | ||
+ | < | ||
+ | < | ||
+ | graph TB | ||
+ | subgraph " | ||
+ | UI[Web-Interface] | ||
+ | API[API-Gateway] | ||
+ | end | ||
+ | | ||
+ | subgraph " | ||
+ | AUTH[Authentication] | ||
+ | LOGIC[Business Logic] | ||
+ | CACHE[Redis Cache] | ||
+ | end | ||
+ | | ||
+ | subgraph " | ||
+ | PG[(PostgreSQL)] | ||
+ | MONGO[(MongoDB)] | ||
+ | end | ||
+ | | ||
+ | UI --> API | ||
+ | API --> AUTH | ||
+ | API --> LOGIC | ||
+ | LOGIC --> CACHE | ||
+ | LOGIC --> PG | ||
+ | LOGIC --> MONGO | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === Deployment-Pipeline === | ||
+ | < | ||
+ | < | ||
+ | graph LR | ||
+ | DEV[Development] --> TEST[Testing] | ||
+ | TEST --> STAGE[Staging] | ||
+ | STAGE --> PROD[Production] | ||
+ | | ||
+ | DEV --> |Git Push| BUILD[Build] | ||
+ | BUILD --> |Unit Tests| TEST | ||
+ | TEST --> |Integration Tests| STAGE | ||
+ | STAGE --> |Manual QA| PROD | ||
+ | | ||
+ | BUILD -.-> |Artifacts| REPO[Artifact Repository] | ||
+ | REPO -.-> STAGE | ||
+ | REPO -.-> PROD | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === Entscheidungsbaum === | ||
+ | < | ||
+ | < | ||
+ | graph TD | ||
+ | START[Problem identifiziert] --> CRITICAL{Kritisch? | ||
+ | CRITICAL -->|Ja| IMMEDIATE[Sofortige Maßnahmen] | ||
+ | CRITICAL --> | ||
+ | | ||
+ | ANALYZE --> SOLUTION{Lösung verfügbar? | ||
+ | SOLUTION -->|Ja| IMPLEMENT[Implementierung] | ||
+ | SOLUTION --> | ||
+ | | ||
+ | IMMEDIATE --> DOCUMENT[Dokumentation] | ||
+ | IMPLEMENT --> DOCUMENT | ||
+ | RESEARCH --> ANALYZE | ||
+ | | ||
+ | DOCUMENT --> REVIEW[Review & Feedback] | ||
+ | REVIEW --> CLOSE[Abschluss] | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== Konfiguration ==== | ||
+ | |||
+ | === Admin-Einstellungen === | ||
+ | **Zugang:** Admin → Konfiguration → Mermaid Plugin | ||
+ | |||
+ | ^ Einstellung ^ Optionen ^ Beschreibung ^ | ||
+ | | **Version/ | ||
+ | | **Standard-Theme** | default, neutral, dark, forest, base, mc-squared | Globales Theme | | ||
+ | | **Standard-Look** | classic, handDrawn, rough | Darstellungsstil | | ||
+ | | **Log-Level** | fatal, error, warn, info, debug | Debug-Informationen | | ||
+ | | **Save-Button** | Sichtbar, Verborgen | SVG-Export-Funktionalität | | ||
+ | | **Lock-Button** | Sichtbar, Verborgen | Server-seitige Konvertierung | | ||
+ | |||
+ | === Entwickler-Einstellungen === | ||
+ | **Debug-Modus aktivieren: | ||
+ | - Log-Level auf " | ||
+ | - Browser-Entwicklertools öffnen | ||
+ | - Konsole auf Mermaid-Fehler prüfen | ||
+ | |||
+ | ==== Best Practices ==== | ||
+ | |||
+ | === Performance === | ||
+ | * **Einfache Diagramme: | ||
+ | * **Komplexe Diagramme: | ||
+ | * **Lokale Version:** Schneller als Remote-Version | ||
+ | * **Cache nutzen:** Vermeiden Sie '' | ||
+ | |||
+ | === Wartbarkeit === | ||
+ | * **Kommentare: | ||
+ | * **Struktur: | ||
+ | * **Benennung: | ||
+ | * **Dokumentation: | ||
+ | |||
+ | === Zugänglichkeit === | ||
+ | * **Alt-Text: | ||
+ | * **Kontrast: | ||
+ | * **Größe: | ||
+ | |||
+ | ==== Fehlerbehebung ==== | ||
+ | |||
+ | === Häufige Probleme === | ||
+ | |||
+ | ^ Problem ^ Ursache ^ Lösung ^ | ||
+ | | Diagramm wird nicht gerendert | PHP < 8.0 | PHP-Version upgraden | | ||
+ | | Syntax-Fehler | Ungültige Mermaid-Syntax | Syntax in Mermaid Live Editor testen | | ||
+ | | DokuWiki-Konflikte | Klammer-Probleme | Raw-Modus oder Anführungszeichen verwenden | | ||
+ | | Performance-Probleme | Zu komplexe Diagramme | Diagramm vereinfachen oder aufteilen | | ||
+ | | Export funktioniert nicht | Save-Button nicht aktiviert | Admin-Konfiguration prüfen | | ||
+ | |||
+ | === Debug-Strategien === | ||
+ | - **Mermaid Live Editor:** [[https:// | ||
+ | - **Browser-Konsole: | ||
+ | - **Schrittweise Entwicklung: | ||
+ | - **Raw-Modus: | ||
+ | |||
+ | ==== Changelog ==== | ||
+ | |||
+ | === Aktuelle Version (11.6) === | ||
+ | * **2025-06-04: | ||
+ | * **2025-03-23: | ||
+ | * **2024-10-15: | ||
+ | * **2024-02-15: | ||
+ | |||
+ | === Kompatibilität === | ||
+ | * **DokuWiki: | ||
+ | * **PHP:** 8.0+ erforderlich ⚠️ | ||
+ | * **Browser: | ||
+ | * **Plugins: | ||
+ | |||
+ | ---- | ||
+ | |||
+ | **Das Mermaid Plugin erweitert DokuWiki um professionelle Diagramm-Funktionalität. Für Updates und Probleme besuchen Sie das [[https:// | ||
+ | |||
+ | {{tag> |