~~NOTOC~~ ====== Mermaid-Designlabor · Gazette Technical ====== **Stand:** 03.11.2026. **Zweck:** Drei isolierte Gestaltungsvarianten für spätere OmniMail-Gazette-Diagramme vergleichen. Diese Laborseite ist keine V3 und verändert weder die [[systeme:omnimail:start|V1]] noch den [[systeme:omnimail:entwurf-v2|V2-Entwurf]]. Das BorgBackup-Schema ist ein **synthetisches Gestaltungsbeispiel**. Insbesondere die gezeichnete Alarm- und Mailkette ist kein Nachweis, dass eine solche Remembrall-Alarmierung produktiv implementiert wurde. Die Verbindungen und Beschriftungen sind in A, B und C identisch; nur die Gestaltung unterscheidet sich. Technischer Laborstand: DokuWiki 2026-07-14c „Mort“, Mermaid-Plugin vom 31.07.2026. Das Plugin lädt aktuell Mermaid über einen **nicht versionierten CDN-Pfad**; der CDN-Readback vom 03.11.2026 lieferte 12.2.0. Ein späterer CDN-Wechsel kann die Darstellung ändern. Die Diagramme enthalten keine globale Wiki-Konfiguration. ---- ====== Variante A · Portable Mermaid-Klassen ====== Knoten und Prüfung verwenden Mermaid-''classDef''; die Pfeile werden mit ''linkStyle'' gestaltet. Die runden Knoten beruhen auf Mermaid-Formsyntax. Diese Variante benötigt keine Theme-Direktive und keine CSS-Datei. ===== BorgBackup-Stilprobe ===== ''variante-a-borg.mmd'' raw flowchart TD B("BorgBackup · stündlich") P{"Backup-Ergebnis"} G("PASS · grünes Betriebsprotokoll") W("WARN · Sicherung eingeschränkt") R("RED · Sicherung fehlgeschlagen") O("OmniMail™ · lokale Übergabe") M("Sorgenkasten · hwehrs@vetikke.de") B --> P P -->|"Erfolgreich"| G P -->|"Warnung"| W P -->|"Fehler"| R W --> O R --> O O --> M classDef station fill:#f2f3f3,stroke:#cbd2d6,stroke-width:1px,color:#30383e,font-family:Arial,font-size:16px classDef decision fill:#f8f9f9,stroke:#aeb8bd,stroke-width:1.2px,stroke-dasharray:4 3,color:#30383e,font-family:Arial,font-size:16px linkStyle default stroke:#88939a,stroke-width:1.2px class P decision class B,G,W,R,O,M station ===== Technischer OmniMail-Ausschnitt ===== ''variante-a-technik.mmd'' · SMTP-Eingang, Policy-Anfrage, RCPT-Kontenauskunft und Rückantworten gemäß V2-Referenz. raw flowchart LR X("SMTP-Eingang") Q("Alois · ext-qipu") H{"Empfängerprüfung · Hildegard"} S("Stalwart · Kontenauskunft") X -->|"TCP 25"| Q Q -->|"Policy 10031"| H H -->|"SMTP RCPT · TCP 25"| S S -->|"RCPT-Ergebnis"| H H -->|"SMTP-Entscheidung"| Q classDef station fill:#f2f3f3,stroke:#cbd2d6,stroke-width:1px,color:#30383e,font-family:Arial,font-size:16px classDef decision fill:#f8f9f9,stroke:#aeb8bd,stroke-width:1.2px,stroke-dasharray:4 3,color:#30383e,font-family:Arial,font-size:16px linkStyle default stroke:#88939a,stroke-width:1.2px class H decision class X,Q,S station **Grenze:** Mermaid-Klassen kontrollieren Farben und Linien zuverlässig; Innenabstände und exakte Eckradien bleiben vom Renderer abhängig. ---- ====== Variante B · Diagrammlokales Theme ====== Mermaid-Frontmatter setzt ''theme: base'' und ausgewählte ''themeVariables'' nur für das jeweilige Diagramm. Das Plugin erhält die Frontmatter über seinen dokumentierten ''raw''-Modus. Die gestrichelte Prüfung nutzt ergänzend eine lokale ''classDef''-Regel. ===== BorgBackup-Stilprobe ===== ''variante-b-borg.mmd'' raw --- config: theme: base themeVariables: background: "#ffffff" primaryColor: "#f2f3f3" primaryTextColor: "#30383e" primaryBorderColor: "#cbd2d6" lineColor: "#88939a" edgeLabelBackground: "#ffffff" fontFamily: "Arial" fontSize: "16px" flowchart: nodeSpacing: 42 rankSpacing: 54 padding: 18 --- flowchart TD B("BorgBackup · stündlich") P{"Backup-Ergebnis"} G("PASS · grünes Betriebsprotokoll") W("WARN · Sicherung eingeschränkt") R("RED · Sicherung fehlgeschlagen") O("OmniMail™ · lokale Übergabe") M("Sorgenkasten · hwehrs@vetikke.de") B --> P P -->|"Erfolgreich"| G P -->|"Warnung"| W P -->|"Fehler"| R W --> O R --> O O --> M classDef decision stroke:#aeb8bd,stroke-width:1.2px,stroke-dasharray:4 3 class P decision ===== Technischer OmniMail-Ausschnitt ===== ''variante-b-technik.mmd'' · gleiche Knoten, Beschriftungen und Kanten wie A. raw --- config: theme: base themeVariables: background: "#ffffff" primaryColor: "#f2f3f3" primaryTextColor: "#30383e" primaryBorderColor: "#cbd2d6" lineColor: "#88939a" edgeLabelBackground: "#ffffff" fontFamily: "Arial" fontSize: "16px" flowchart: nodeSpacing: 42 rankSpacing: 54 padding: 18 --- flowchart LR X("SMTP-Eingang") Q("Alois · ext-qipu") H{"Empfängerprüfung · Hildegard"} S("Stalwart · Kontenauskunft") X -->|"TCP 25"| Q Q -->|"Policy 10031"| H H -->|"SMTP RCPT · TCP 25"| S S -->|"RCPT-Ergebnis"| H H -->|"SMTP-Entscheidung"| Q classDef decision stroke:#aeb8bd,stroke-width:1.2px,stroke-dasharray:4 3 class H decision **Grenze:** Das ''base''-Theme erzeugt im hier verwendeten Renderer kräftigere Kanten und Rahmen als A. Frontmatter und Variablen hängen von der jeweils geladenen Mermaid-Version ab. ---- ====== Variante C · Diagrammlokales CSS ====== Mermaid-Frontmatter enthält ''themeCSS'' für feine Radien, Knoten- und Pfeilstile. Die erzeugten SVG-Regeln tragen einen diagrammeigenen ID-Präfix. Es wurde **keine globale CSS-Datei aktiviert** und keine Plugin- oder Template-Datei verändert. Der separate Entwurf ''variante-c-css-entwurf.css'' dokumentiert die Regeln zur Nachprüfung. ===== BorgBackup-Stilprobe ===== ''variante-c-borg.mmd'' raw --- config: theme: base themeVariables: background: "#ffffff" primaryColor: "#f2f3f3" primaryTextColor: "#30383e" primaryBorderColor: "#cbd2d6" lineColor: "#88939a" edgeLabelBackground: "#ffffff" fontFamily: "Arial" fontSize: "16px" flowchart: nodeSpacing: 42 rankSpacing: 54 padding: 18 themeCSS: | .node rect, .node polygon { fill: #f2f3f3 !important; stroke: #cbd2d6 !important; stroke-width: 1px !important; } .node rect { rx: 18px; ry: 18px; } .node.decision polygon { stroke: #aeb8bd !important; stroke-dasharray: 4 3; } .edgePath path, .flowchart-link { stroke: #88939a !important; stroke-width: 1.2px !important; } --- flowchart TD B("BorgBackup · stündlich") P{"Backup-Ergebnis"} G("PASS · grünes Betriebsprotokoll") W("WARN · Sicherung eingeschränkt") R("RED · Sicherung fehlgeschlagen") O("OmniMail™ · lokale Übergabe") M("Sorgenkasten · hwehrs@vetikke.de") B --> P P -->|"Erfolgreich"| G P -->|"Warnung"| W P -->|"Fehler"| R W --> O R --> O O --> M class P decision ===== Technischer OmniMail-Ausschnitt ===== ''variante-c-technik.mmd'' · gleiche Knoten, Beschriftungen und Kanten wie A und B. raw --- config: theme: base themeVariables: background: "#ffffff" primaryColor: "#f2f3f3" primaryTextColor: "#30383e" primaryBorderColor: "#cbd2d6" lineColor: "#88939a" edgeLabelBackground: "#ffffff" fontFamily: "Arial" fontSize: "16px" flowchart: nodeSpacing: 42 rankSpacing: 54 padding: 18 themeCSS: | .node rect, .node polygon { fill: #f2f3f3 !important; stroke: #cbd2d6 !important; stroke-width: 1px !important; } .node rect { rx: 18px; ry: 18px; } .node.decision polygon { stroke: #aeb8bd !important; stroke-dasharray: 4 3; } .edgePath path, .flowchart-link { stroke: #88939a !important; stroke-width: 1.2px !important; } --- flowchart LR X("SMTP-Eingang") Q("Alois · ext-qipu") H{"Empfängerprüfung · Hildegard"} S("Stalwart · Kontenauskunft") X -->|"TCP 25"| Q Q -->|"Policy 10031"| H H -->|"SMTP RCPT · TCP 25"| S S -->|"RCPT-Ergebnis"| H H -->|"SMTP-Entscheidung"| Q class H decision **Grenze:** Die CSS-Regeln wirken nur innerhalb des erzeugten SVG. Mermaid kann seine SVG-Klassen und Sanitierungsregeln bei späteren Versionen ändern; C ist deshalb wartungsintensiver. Eine globale Template-CSS-Regel wäre für dieses Labor keine sichere Alternative. ---- ====== Vergleich und Empfehlung ====== ^ Kriterium ^ A · Klassen ^ B · Theme ^ C · lokales CSS ^ | Runde Knoten | Gut, formabhängig | Gut, mit kräftigerem Rahmen | Stark gerundet | | Lesbarkeit | Ruhig, dünne Pfeile | Gut, etwas schwerere Konturen | Gut nach gezielter Korrektur der Kantenlabels | | Abstand | Renderer-Standard | Diagrammvariable | Diagrammvariable und CSS | | Portabilität | Hoch | Mittel | Geringer | | Wartung | Gering | CDN-/Theme-Version beobachten | SVG-Struktur und CSS bei Versionswechsel prüfen | **Technische Empfehlung:** A als Ausgangspunkt für spätere redaktionelle Arbeit. Die endgültige visuelle Auswahl trifft der Benutzer anhand der Browserdarstellung. Keine Variante wird automatisch in V2 oder die produktive Gazette übernommen.