Prozess Typ
Grafischer Ausdruck
Denken Typ
Strukturierter Ausdruck
Notizen Typ
Effizienter Ausdruck

BlockdiagrammSyntax

Blockdiagramm

Ein Blockdiagramm besteht aus Blöcken und Verbindern, um komplexe Systeme, Prozesse oder Architekturen anschaulich darzustellen. Blöcke repräsentieren grundlegende Komponenten oder Funktionen, Verbinder zeigen die Beziehungen oder Abläufe zwischen diesen Komponenten; Blockdiagramme sind in verschiedenen Bereichen wie Technik, Softwareentwicklung und Prozessmanagement von entscheidender Bedeutung.

Code
                            
Kopieren
Einbetten
block-beta columns 1 db(("DB")) blockArrowId6<["   "]>(down) block:ID A B["A wide one in the middle"] C end space D ID --> D C --> D style B fill:#f96,stroke:#333,stroke-width:4px

Verwendungszwecke von Blockdiagrammen

Der Hauptzweck von Blockdiagrammen ist es, eine übergeordnete Ansicht des Systems zu bieten, damit Menschen es leicht verstehen und analysieren können, ohne in die komplexen Details jeder Komponente eintauchen zu müssen. Dadurch sind Blockdiagramme besonders nützlich, um komplexe Systeme zu vereinfachen und die Gesamtstruktur und Interaktionen der Komponenten innerhalb des Systems zu erklären.

Anwendungsszenarien

Blockdiagramme sind in verschiedenen Branchen und Disziplinen weit verbreitet, hauptsächlich in:

  • Softwarearchitektur: In der Softwareentwicklung können Blockdiagramme verwendet werden, um die Architektur einer Softwareanwendung zu veranschaulichen. Dazu gehört die Darstellung, wie einzelne Module oder Dienste interagieren, der Datenfluss sowie die Interaktion übergeordneter Komponenten.
  • Netzwerktopologie-Diagramm: Blockdiagramme eignen sich hervorragend zur Darstellung von Netzwerkarchitekturen in IT und Telekommunikation. Sie können zeigen, wie verschiedene Netzwerkgeräte und -dienste miteinander verbunden sind, einschließlich Router, Switches, Firewalls sowie des Datenflusses im Netzwerk.
  • Prozessflussdiagramm: In Wirtschaft und Fertigung können Blockdiagramme verwendet werden, um Flussdiagramme zu erstellen. Diese Flussdiagramme repräsentieren die einzelnen Phasen von Geschäfts- oder Fertigungsprozessen und helfen, die Reihenfolge der Schritte, Entscheidungspunkte und den Kontrollfluss zu visualisieren.
  • Elektrisches System: Ingenieure verwenden Blockdiagramme, um elektrische Systeme und Schaltkreise darzustellen. Sie können die übergeordnete Struktur elektrischer Systeme, die Wechselwirkung zwischen verschiedenen elektrischen Komponenten sowie den Stromfluss veranschaulichen.
  • Bildungszweck: Blockdiagramme werden auch häufig in Lehrmaterialien verwendet, um komplexe Konzepte und Systeme vereinfacht zu erklären. Blockdiagramme helfen, wissenschaftliche Theorien, technische Prinzipien und technische Systeme zu zerlegen und zu visualisieren.

Als Nächstes werden wir eingehend untersuchen, wie man mit Mermaid Blockdiagramme erstellt und bearbeitet, von der grundlegenden Syntax bis hin zu erweiterten Konfigurationen und Stilen.

Einfaches Blockdiagramm

Grundstruktur

Ein Blockdiagramm besteht aus Blöcken, die verschiedene Entitäten oder Komponenten repräsentieren. In Mermaid können Blöcke einfach mit einem Textlabel erstellt werden. Die grundlegendste Form eines Blockdiagramms kann eine Reihe von Blöcken ohne jegliche Verbindungslinien sein.

Einfaches Blockdiagramm-Beispiel: Um ein einfaches Blockdiagramm mit drei Blöcken mit den Bezeichnungen a, b und c zu erstellen, lautet die Syntax wie folgt:

Code
                            
Kopieren
Einbetten
block-beta a b c

Dieser Code generiert drei horizontal angeordnete Blöcke; jeder Block wird automatisch beabstandet und ausgerichtet, um optimale Lesbarkeit zu erreichen.

Anzahl der zu verwendenden Spalten definieren

Mehrspaltiges Diagramm

Obwohl einfache Blockdiagramme linear und einfach sind, können komplexere Systeme ein strukturiertes Layout erfordern. Mermaid ermöglicht die Organisation von Blöcken in mehrere Spalten und trägt so zur Erstellung komplexerer und detaillierterer Diagramme bei.

Beispiel für ein mehrspaltiges Diagramm: Wenn Blöcke auf mehrere Spalten verteilt werden sollen, kannst du die Anzahl der Spalten angeben und die Blöcke entsprechend anordnen. So erstellst du ein Blockdiagramm mit drei Spalten und vier Blöcken, wobei der vierte Block in der zweiten Zeile erscheint:

Code
                            
Kopieren
Einbetten
block-beta columns 3 a b c d

Mit dieser Syntax ordnet Mermaid die Blöcke a, b, c und d in drei Spalten an und bricht bei Bedarf in die nächste Zeile um. Diese Funktion ist besonders nützlich zur Darstellung hierarchischer oder mehrschichtiger Systeme.

Erweiterte Blockkonfiguration

Die erweiterte Syntax von Mermaid verleiht dem Diagrammdesign größere Flexibilität und Komplexität und kann sich an ein breiteres Spektrum von Anwendungsfällen und Szenarien anpassen.

Blockbreite anpassen

Über mehrere Spalten erstrecken

In komplexeren Diagrammen benötigst du möglicherweise Blöcke, die sich über mehrere Spalten erstrecken, um bestimmte Komponenten hervorzuheben oder größere Entitäten darzustellen. Mermaid ermöglicht die Anpassung der Blockbreite, um mehrere Spalten abzudecken, wodurch die Lesbarkeit und Struktur des Diagramms verbessert wird.

Beispiel: Um einen Block zu erstellen, der sich über zwei Spalten erstreckt, kannst du für jeden Block die gewünschte Breite angeben:

Code
                            
Kopieren
Einbetten
block-beta columns 3 a["A label"] b:2 c:2 d

In diesem Beispiel nimmt der mit A label bezeichnete Block eine Spalte ein, während die Blöcke b und c 2 Spalten überspannen und d seiner eigenen Spalte zugewiesen wird. Diese Flexibilität der Blockgröße ist entscheidend, um Systeme mit Komponenten unterschiedlicher Wichtigkeit oder Größe genau darzustellen.

Zusammengesetzte Blöcke erstellen

Verschachtelte Blöcke

Zusammengesetzte Blöcke ermöglichen die Darstellung verschachtelter oder hierarchischer Systeme, bei denen eine Komponente mehrere Unterkomponenten enthält.

Beispiel: Das Erstellen eines zusammengesetzten Blocks umfasst das Definieren eines übergeordneten Blocks und das anschließende Verschachteln von untergeordneten Blöcken darin. So definierst du die Syntax eines zusammengesetzten Blocks mit verschachtelten Elementen:

Code
                            
Kopieren
Einbetten
block-beta block D end A["A: I am a wide one"]

In dieser Syntax ist D ein untergeordneter Block, der in einem größeren übergeordneten Block verschachtelt ist. Diese Funktion ist besonders nützlich zur Beschreibung komplexer Strukturen, wie etwa eines Servers mit mehreren Diensten oder einer Abteilung innerhalb eines größeren Organisationsrahmens.

Automatische Spaltenbreite

Breite anpassen

Mermaid ermöglicht die dynamische Anpassung der Spaltenbreite anhand des Blockinhalts. Die Spaltenbreite wird durch den breitesten Block in der Spalte bestimmt, wodurch sichergestellt wird, dass das Diagramm ausgewogen und lesbar bleibt.

Beispiel: In einem Diagramm mit unterschiedlich großen Blöcken passt Mermaid die Spaltenbreiten automatisch an den größten Block in jeder Spalte an.

Code
                            
Kopieren
Einbetten
block-beta columns 3 a:3 block:group1:2 columns 2 h i j k end g block:group2:3 %% columns auto (default) l m n o p q r end

Hier wird gezeigt, wie Mermaid die Spaltenbreite dynamisch an den breitesten Block anpasst.

Blöcke horizontal zusammenführen: Wenn Blöcke horizontal gestapelt werden sollen, kann dies mit der Spaltenbreite erreicht werden. So lautet die Syntax zum Erstellen eines Blockdiagramms mit 4 übereinander gestapelten Blöcken:

Code
                            
Kopieren
Einbetten
block-beta block columns 1 a["A label"] b c d end

In diesem Beispiel wird die Breite des zusammengeführten Blocks automatisch an die Breite des größten untergeordneten Blocks angepasst.

Blockarten und -formen

Mermaid-Blockdiagramme sind nicht auf die Standard-Rechteckform beschränkt. Mermaid bietet verschiedene Blockformen, wodurch unterschiedliche Arten von Informationen oder Entitäten detaillierter und individueller dargestellt werden können.

Standard-Blockformen

Abgerundetes Rechteck

Erstellt ein abgerundetes rechteckiges Kästchen, das verwendet werden kann, um eine weichere oder flexiblere Komponente darzustellen:

Code
                            
Kopieren
Einbetten
block-beta id1("This is the text in the box")

Stadionform

Der Stadionform-Block kann verwendet werden, um prozessorientierte Komponenten darzustellen:

Code
                            
Kopieren
Einbetten
block-beta id1(["This is the text in the box"])

Unterprogrammform

Zur Darstellung eines Unterprozesses oder eines enthaltenen Teilprozesses, dargestellt durch einen rechteckigen Block mit zwei vertikalen Linien:

Code
                            
Kopieren
Einbetten
block-beta id1[["This is the text in the box"]]

Zylinder

Der Zylinder eignet sich hervorragend zur Darstellung von Datenbanken oder Speicherkomponenten:

Code
                            
Kopieren
Einbetten
block-beta id1[("Database")]

Kreis

Der Kreis kann zur Darstellung zentraler oder kritischer Komponenten verwendet werden:

Code
                            
Kopieren
Einbetten
block-beta id1(("This is the text in the circle"))

Asymmetrische Form, Raute und Sechseck

Verwende die Raute für Entscheidungen und asymmetrische Formen und Sechsecke für einzigartige oder spezielle Prozesse:

Asymmetrische Form
Code
                            
Kopieren
Einbetten
block-beta id1>"This is the text in the box"]
Raute
Code
                            
Kopieren
Einbetten
block-beta id1{"This is the text in the box"}
Sechseck
Code
                            
Kopieren
Einbetten
block-beta id1{{"This is the text in the box"}}

Parallelogramm und Trapez

Parallelogramme und Trapeze eignen sich hervorragend für Eingabe-/Ausgabe- und Übergangsprozesse

Code
                            
Kopieren
Einbetten
block-beta id1[/"This is the text in the box"/] id2["This is the text in the box"] A[/"Christmas"] B["Go shopping"/]

Doppelkreis

Zur Hervorhebung kritischer oder hochpriorisierter Komponenten kann ein Doppelkreis sehr effektiv sein:

Code
                            
Kopieren
Einbetten
block-beta id1((("This is the text in the circle")))

Pfeilblöcke und leere Blöcke

Pfeilblock

Blockpfeile können die Richtung oder den Fluss innerhalb eines Prozesses anschaulich darstellen:

Code
                            
Kopieren
Einbetten
block-beta blockArrowId<["Label"]>(right) blockArrowId2<["Label"]>(left) blockArrowId3<["Label"]>(up) blockArrowId4<["Label"]>(down) blockArrowId5<["Label"]>(x) blockArrowId6<["Label"]>(y) blockArrowId6<["Label"]>(x, down)

Leerer Block

Leere Blöcke können verwendet werden, um Lücken zu schaffen, was für Layout und Lesbarkeit nützlich ist:

Code
                            
Kopieren
Einbetten
block-beta columns 3 a space b c d e
Code
                            
Kopieren
Einbetten
block-beta ida space:3 idb idc

Beachte, dass du mit dem Zahlensymbol space:num die Anzahl der Spalten festlegen kannst, die ein leerer Block einnimmt, wobei num die Spaltenbreite angibt. Du kannst auch space verwenden, standardmäßig eine Spalte.

Die Standard- und Sonderformen in Mermaid erweitern die Ausdrucksfähigkeit von Blockdiagrammen und ermöglichen eine genauere und kontextbezogenere Darstellung.

Blöcke mit Linien verbinden

Ein wesentliches Merkmal von Mermaid-Blockdiagrammen ist die Fähigkeit, einzelne Blöcke mit verschiedenen Arten von Linien oder Links zu verbinden.

Grundlegende Verbindungs- und Pfeiltypen

Zum Verbinden von Blöcken werden Pfeile oder Linien benötigt. Diese Verbinder beschreiben die Beziehungen oder Informationsflüsse zwischen den Blöcken. Mermaid bietet eine Reihe von Pfeiltypen, um unterschiedliche Diagrammanforderungen zu erfüllen.

Grundlegende Links

Erstellt einen einfachen Link mit einem Pfeil, der die Richtung oder den Fluss von einem Block zu einem anderen zeigt:

Code
                            
Kopieren
Einbetten
block-beta A space B A-->B

Dieses Beispiel veranschaulicht die direkte Verbindung von Block A zu Block B.

Text auf Links

Neben dem Verbinden von Blöcken ist es oft auch erforderlich, die Beziehung zu beschreiben oder zu kennzeichnen. Mermaid ermöglicht das Hinzufügen von Text auf Links, um dem Link Kontext zu geben.

Um Text zu einem Link hinzuzufügen, besteht die Syntax darin, diesen Text in die Linkdefinition aufzunehmen:

Code
                            
Kopieren
Einbetten
block-beta A space:2 B A-- "X" -->B
Kanten und Stile:
Code
                            
Kopieren
Einbetten
block-beta columns 1 db(("DB")) blockArrowId6<["   "]>(down) block:ID A B["A wide one in the middle"] C end space D ID --> D C --> D style B fill:pink,stroke:#333,stroke-width:4px

Stil und Anpassung

Neben der Struktur und dem Layout von Blockdiagrammen bietet Mermaid auch zahlreiche Stiloptionen; diese Anpassungsfunktionen ermöglichen die Erstellung visuell markanterer und informativerer Diagramme.

Stil einzelner Blöcke

Mermaid ermöglicht detaillierte Stilfestlegungen für einzelne Blöcke; du kannst verschiedene CSS-Eigenschaften anwenden, wie Farbe, Kontur und Rahmenstärke.

Stil eines einzelnen Blocks anpassen

Um einen benutzerdefinierten Stil auf einen Block anzuwenden, kannst du die style-Syntax verwenden, gefolgt vom Blockbezeichner und den gewünschten CSS-Eigenschaften:

Code
                            
Kopieren
Einbetten
block-beta id1 space id2 id1("Start")-->id2("Stop") style id1 fill:pink,stroke:#333,stroke-width:4px style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5

Klassenstil

Mermaid unterstützt das Anwenden von Stilen auf Klassen. Wenn du eine bestimmte Gruppe von Stilen auf mehrere Elemente anwenden möchtest, ist die Verwendung von Stilfestlegungen möglicherweise einfacher, da du diese Elemente nur mit einer Klasse verknüpfen musst.

Stil für eine einzelne Klasse festlegen

Code
                            
Kopieren
Einbetten
block-beta A space B A-->B classDef blue fill:pink,stroke:#333,stroke-width:4px; class A blue style B fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5

Hier wird eine Klasse namens blue definiert und auf Block A angewendet, während Block B einen separaten Stil erhält.

Anwendungsfälle

Wenn die modularen Diagramme von Mermaid-Blockdiagrammen in realen Szenarien eingesetzt werden, zeigt sich ihre Vielseitigkeit deutlich.

Detaillierte Beispiele für verschiedene Funktionen

Durch Struktur-, Link- und Stilelemente können wir Mermaid-Blockdiagramme erstellen, die in verschiedenen Kontexten bestimmte Aufgaben erfüllen.

Systemarchitektur

Im Folgenden findest du eine einfache Software-Systemarchitektur mit miteinander verbundenen Komponenten:

Code
                            
Kopieren
Einbetten
block-beta columns 3 Frontend blockArrowId6<[" "]>(right) Backend space:2 down<[" "]>(down) Disk left<[" "]>(left) Database[("Database")] classDef front fill:pink,stroke:#333; classDef back fill:#f96,stroke:#333; class Frontend front class Backend,Database back

Dieses Beispiel zeigt eine grundlegende Architektur mit Frontend, Backend und Datenbank, wobei die einzelnen Blöcke unterschiedlich dargestellt werden, um verschiedene Komponententypen zu unterscheiden.

Geschäftsprozess

Im Folgenden findest du einen Geschäftsprozess mit Entscheidungspunkten und mehreren Phasen:

Code
                            
Kopieren
Einbetten
block-beta columns 3 Start(("Start")) space:2 down<[" "]>(down) space:2 Decision{{"Make Decision"}} right<["Yes"]>(right) Process1["Process A"] downAgain<["No"]>(down) space r3<["Done"]>(down) Process2["Process B"] r2<["Done"]>(right) End(("End")) style Start fill:pink; style End fill:pink;

Diese praktischen Beispiele unterstreichen den praktischen Nutzen von Mermaid-Blockdiagrammen bei der Vereinfachung komplexer Informationen und der Ermöglichung effektiver Kommunikation über Fachbereiche hinweg.

Fehlerbehebung

Die Erstellung komplexer Blockdiagramme mit der Mermaid-Syntax kann manchmal herausfordernd sein; hier werden häufige Syntaxfehler aufgeführt und Tipps für die Verwaltung komplexerer Diagrammstrukturen gegeben.

Häufige Syntaxfehler

Die Vermeidung häufiger Syntaxfehler ist der Schlüssel für eine reibungslose Verwendung von Mermaid-Blockdiagrammen.

Link-Fehler

Die Verwendung einer falschen Link-Syntax kann zu unerwarteten Ergebnissen oder beschädigten Diagrammen führen:

                            
Kopieren
Einbetten
block-beta A - B

Korrektur: Stelle sicher, dass die Blöcke mit Pfeilen (--> oder ---) korrekt verbunden werden, um Richtung und Typ der Verbindung zu definieren. Außerdem ist eines der Grundprinzipien von Blockdiagrammen, dem Autor die vollständige Kontrolle über die Position der Blöcke zu geben; daher ist im obigen Fall das Hinzufügen von Leerzeichen zwischen den Blöcken erforderlich:

Code
                            
Kopieren
Einbetten
block-beta A space B A --> B

Stilverschiebung

Das Anwenden von Stilen im falschen Kontext oder mit falscher Syntax kann dazu führen, dass die Stilisierung nicht wie erwartet erfolgt:

Code
                            
Kopieren
Einbetten
block-beta A style A fillpink;

Korrektur: Stelle sicher, dass die Stilattribute korrekt durch Kommas getrennt werden und das richtige CSS-Eigenschaftsformat verwendet wird, um die Syntax zu korrigieren:

Code
                            
Kopieren
Einbetten
block-beta A style A fill:pink,stroke:#333;