Open Source Projekte

Mermaid: Diagramme direkt im Text schreiben mit Markdown und Code

Mermaid ist ein Open-Source-Tool zur Erstellung von Diagrammen und Visualisierungen aus einfacher Textbeschreibung. Es erlaubt die Definition von

1 min Lesezeit
Mermaid: Diagramme direkt im Text schreiben mit Markdown und Code

Mermaid ist ein Open-Source-Tool zur Erstellung von Diagrammen und Visualisierungen aus einfacher Textbeschreibung. Es erlaubt die Definition von Flussdiagrammen, Sequenzdiagrammen, Gantt-Diagrammen, Zustandsdiagrammen und mehr – direkt in Markdown oder anderen textbasierten Formaten. Besonders beliebt ist Mermaid in der technischen Dokumentation, bei Entwicklern, Architekturen und im DevOps-Umfeld.

Das Hauptziel von Mermaid ist es, die Erstellung von Diagrammen so einfach und versionskontrollierbar wie möglich zu gestalten – ohne eine grafische Benutzeroberfläche oder separate Diagramm-Software.

Warum Mermaid?

Traditionelle Diagrammtools (z. B. Visio, draw.io oder Lucidchart) erfordern eine grafische Bearbeitung. Das macht die Zusammenarbeit schwierig, besonders in Teams, die mit Git, Markdown oder Code-Reviews arbeiten.

Mermaid löst dieses Problem durch:

  • Textbasierte Definition von Diagrammen
  • Integration in Markdown-Dateien, Wikis, Dokumentationen
  • Unterstützung durch viele Plattformen (z. B. GitHub, GitLab, Obsidian, MkDocs)

Ein Beispiel für ein Flussdiagramm:

``graph TD A\[Start] --> B{Entscheidung} B -->|Ja| C\[Weiter] B -->|Nein| D\[Abbrechen] ``

Dieses Diagramm wird automatisch visuell gerendert, z. B. in Markdown-Editoren mit Mermaid-Unterstützung.

Unterstützte Diagrammtypen

Mermaid unterstützt eine Vielzahl gängiger Diagrammarten:

1. Flussdiagramme

Darstellung von Prozessen und Entscheidungen in logischer Abfolge.

``graph LR Login --> Dashboard --> Einstellungen ``

2. Sequenzdiagramme

Visualisieren von Interaktionen zwischen Akteuren und Systemen über Zeit.

``sequenceDiagram Teilnehmer Alice Teilnehmer Bob Alice->>Bob: Hallo Bob! Bob-->>Alice: Hallo Alice! ``

3. Gantt-Diagramme

Zeitbezogene Planung von Aufgaben und Projekten.

``gantt title Projektzeitplan Abschnitt Design Konzept \:a1, 2024-01-01, 5d Entwurf \:after a1, 4d ``

4. Klassendiagramme (UML)

Definition von Klassen, Attributen und Beziehungen.

``classDiagram Klasse Tier { +String name +laeuft() } Klasse Hund --> Tier ``

5. Zustandsdiagramme

Veranschaulichen Zustandsübergänge eines Systems.

``stateDiagram \[\*] --> Ruhend Ruhend --> Aktiv Aktiv --> Ruhend ``

6. Entity Relationship (ERD)

Modellieren von Datenbanktabellen und deren Beziehungen.

``erDiagram Benutzer ||--o{ Bestellung : erstellt Bestellung }|..|{ Produkt : enthält ``

Integration und Nutzung

Mermaid kann auf viele Arten verwendet werden:

  • Direkt in Markdown-Dateien (md)
  • In Dokumentationstools wie MkDocs, Docusaurus, Obsidian
  • In Confluence, Notion (teilweise)
  • In statischen Site-Generatoren (z. B. Hugo, Jekyll)
  • In Webanwendungen via JavaScript (mermaid.min.js)
  • Als VS Code-Plugin oder Live-Editor

Die offizielle Web-Anwendung zur Vorschau heißt Mermaid Live Editor.

Vorteile von Mermaid

  • Textbasierter Ansatz: leicht zu versionieren, vergleichen und gemeinsam bearbeiten
  • Plattformübergreifend: funktioniert in vielen Umgebungen
  • Keine manuelle GUI-Arbeit nötig
  • Flexibel und erweiterbar
  • Kostenlos und Open Source

Herausforderungen

  • Eingewöhnung in die Syntax erforderlich
  • Nicht jede Layoutsituation lässt sich perfekt steuern
  • Komplexere Diagramme können unübersichtlich werden
  • Rendering ist abhängig von Plattform (z. B. manche Tools nutzen ältere Mermaid-Versionen)

Fazit

Mermaid ist ein leistungsfähiges Werkzeug für alle, die Diagramme ohne grafische Oberfläche erstellen wollen – direkt im Text, versionierbar und automatisierbar. Ob für Entwicklerdokumentation, Architekturübersichten oder Projektpläne: Wer auf einfache, reproduzierbare und textbasierte Visualisierung setzt, findet in Mermaid eine elegante Lösung.

Weitere Informationen: https://mermaid-js.github.io https://github.com/mermaid-js/mermaid