initial commit

This commit is contained in:
Adam Skotarczak 2025-05-08 12:39:23 +02:00
commit b8f464fc4a
15 changed files with 968 additions and 0 deletions

9
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,9 @@
{
"recommendations": [
"davidanson.vscode-markdownlint",
"mhutchie.git-graph",
"ms-ceintl.vscode-language-pack-de",
"tomoki1207.pdf",
"yzhang.markdown-all-in-one"
]
}

BIN
.vscode/extensions.txt vendored Normal file

Binary file not shown.

0
.vscode/launch.json vendored Normal file
View File

BIN
assets/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

BIN
assets/logo-dark-alpha.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

BIN
assets/logo-icon-basis.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

BIN
assets/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 954 KiB

29
demo.html Normal file
View File

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<!-- Externes JS einbinden -->
<script type="module">
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
mermaid.initialize({ startOnLoad: true });
</script>
</head>
<body>
<!-- ab hier, innerhalb der mermaid-class, einfach den mermaid Code einfügen -->
<div class="mermaid">
flowchart TD
Start([Start])
Init[summe = 0]
Schleife{Liste leer?}
Hole[Hole nächstes Element]
Addiere[summe += zahl]
Ende([return summe])
Start --> Init --> Schleife
Schleife -- Nein --> Hole --> Addiere --> Schleife
Schleife -- Ja --> Ende
</div>
</body>
</html>

865
mermaid.md Normal file
View File

@ -0,0 +1,865 @@
# ⚙️ Mermaid Crashkurs
## 📄 **Mermaid Cheat Sheet (Deutsch)**
## ⚓ Inhalt
- [⚙️ Mermaid Crashkurs](#-mermaid-crashkurs)
- [📄 **Mermaid Cheat Sheet (Deutsch)**](#-mermaid-cheat-sheet-deutsch)
- [⚓ Inhalt](#-inhalt)
- [ Was ist Mermaid](#-was-ist-mermaid)
- [ Was macht Mermaid?](#-was-macht-mermaid)
- [ Vorteile](#-vorteile)
- [ Typische Anwendungsfälle](#-typische-anwendungsfälle)
- [ Beispiel](#-beispiel)
- [ Beispiel-Code: Summiere eine Liste](#-beispiel-code-summiere-eine-liste)
- [Diagramme](#diagramme)
- [ Flussdiagramm (`flowchart`)](#-flussdiagramm-flowchart)
- [ Klassendiagramm (`classDiagram`)](#-klassendiagramm-classdiagram)
- [ Zustandsdiagramm (`stateDiagram`)](#-zustandsdiagramm-statediagram)
- [ Entscheidungsdiagramm (`flowchart` mit Bedingungen)](#-entscheidungsdiagramm-flowchart-mit-bedingungen)
- [ Subgraphen (z.B. Module, Gruppen)](#-subgraphen-zb-module-gruppen)
- [ Weitere: Gantt-, Pie- \& ER-Diagramme](#-weitere-gantt--pie---er-diagramme)
- [ Erklärung](#-erklärung)
- [ Visualisierung/ Rendering](#-visualisierung-rendering)
- [ Gängige Symbole (Unicode sicher)](#-gängige-symbole-unicode-sicher)
- [ Diagramm-Layout und Styling-Optionen](#-diagramm-layout-und-styling-optionen)
- [Mermaid `style`-Eigenschaften (Übersicht)](#mermaid-style-eigenschaften-übersicht)
- [Beispiel mit mehreren Eigenschaften](#beispiel-mit-mehreren-eigenschaften)
- [ Interaktive Features \& Erweiterte Syntax](#-interaktive-features--erweiterte-syntax)
- [ Klickbare Knoten](#-klickbare-knoten)
- [ Tooltip mit `click` kombinieren](#-tooltip-mit-click-kombinieren)
- [ Ankerpunkte / Subgraph-Steuerung](#-ankerpunkte--subgraph-steuerung)
- [ Weitere Optionen](#-weitere-optionen)
- [ Anmerkungen](#-anmerkungen)
- [ Testing-Setup \& CI-Integration](#-testing-setup--ci-integration)
- [ Mermaid CLI (`@mermaid-js/mermaid-cli`)](#-mermaid-cli-mermaid-jsmermaid-cli)
- [ Beispiel: Einfache .mmd-Datei](#-beispiel-einfache-mmd-datei)
- [ Typische Optionen](#-typische-optionen)
- [ Automatisierung mit Makefile](#-automatisierung-mit-makefile)
- [ CI-Beispiel (GitHub Actions)](#-ci-beispiel-github-actions)
- [📌 Hinweis](#-hinweis)
- [ Diagramm-Export / Automatisierung](#-diagramm-export--automatisierung)
- [ Export mit Mermaid CLI](#-export-mit-mermaid-cli)
- [ Installation](#-installation)
- [🛠 Typische Optionen](#-typische-optionen-1)
- [ Beispiel: SVG aus `.mmd` erzeugen](#-beispiel-svg-aus-mmd-erzeugen)
- [ Struktur im Projekt](#-struktur-im-projekt)
- [ Makefile-Beispiel](#-makefile-beispiel)
- [ GitHub Actions-Beispiel](#-github-actions-beispiel)
- [ Hinweise](#-hinweise)
- [ Template \& Projektintegration](#-template--projektintegration)
- [ Ablauf](#-ablauf)
- [🛠 Tools](#-tools)
- [Links](#links)
- [✏️ Notizen bei Erstellung dieses Dokuments](#-notizen-bei-erstellung-dieses-dokuments)
---
## Was ist Mermaid
**Mermaid** ist eine deklarative Scriptsprache zur Erstellung von Diagrammen und Visualisierungen auf Basis von **einfachem Text**. Sie wurde entwickelt, um komplexe Abläufe, Strukturen und Beziehungen direkt aus Quellcode-artiger Notation zu **automatisch generierten Diagrammen** umzuwandeln ohne grafische Tools oder spezielle Software.
---
### Was macht Mermaid?
- Generiert **Flowcharts**, **Klassendiagramme**, **Zustandsautomaten**, **Gantt-Diagramme**, **Entscheidungsbäume**, **Entity-Relationship-Diagramme** u.v.m.
- Nutzt eine **einfach lesbare Syntax** ähnlich wie Markdown oder Code
- Eignet sich ideal zur Dokumentation von **Software**, **Prozessen**, **Systemarchitekturen** und **Ablauflogiken**
- Kann direkt in viele Tools eingebettet werden (z.B. GitHub, VS Code, MkDocs, Obsidian)
- Unterstützt **Versionierung**, **Code-first-Dokumentation** und ist vollständig **plattformunabhängig**
---
### Vorteile
- Kein Drag & Drop **alles in Text**
- Leicht in Git-Projekte integrierbar
- Wartbar, automatisierbar, CI/CD-fähig
- Unterstützt **Unicode-Symbole**, Farben, Subgraphen und Labels
- Ideal für Entwickler, Techniker und Dokumentationszwecke
---
### Typische Anwendungsfälle
- Darstellung von **Funktionsabläufen**
- Visualisierung von **Code-Logik** und **Bedingungen**
- Modellierung von **Klassenhierarchien** oder **Zuständen**
- Erstellung von **technischen Spezifikationen**
- Unterstützung bei **Team-Kommunikation** und **Code Reviews**
---
**Beispieldiagram:**
```mermaid
flowchart TD
%% Grundstruktur
Start([Start])
Entscheidung{Bedingung erfüllt?}
Aktion1[Aktion bei Ja]
Aktion2[Aktion bei Nein]
Ende([Ende])
%% Verbindungen
Start --> Entscheidung
Entscheidung -- Ja --> Aktion1 --> Ende
Entscheidung -- Nein --> Aktion2 --> Ende
```
[⚓ Inhalt](#-inhalt)
---
### Beispiel
Exemplarisch ein kleines Programm als **Mermaid-Ablaufdiagramm**.
Wir nehmen dazu ein simples Beispiel in Python:
#### Beispiel-Code: Summiere eine Liste
**Python-Code:**
```python
def summiere_liste(liste):
summe = 0
for zahl in liste:
summe += zahl
return summe
```
**Das gleiche in Mermaid-Code:**
```plaintext (mermaid)
flowchart TD
Start([Start])
Init[summe = 0]
Schleife{Liste leer?}
Hole[Hole nächstes Element]
Addiere[summe += zahl]
Ende([return summe])
Start --> Init --> Schleife
Schleife -- Nein --> Hole --> Addiere --> Schleife
Schleife -- Ja --> Ende
```
**Ergibt dann gerendert:**
```mermaid
flowchart TD
Start([Start])
Init[summe = 0]
Schleife{Liste leer?}
Hole[Hole nächstes Element]
Addiere[summe += zahl]
Ende([return summe])
Start --> Init --> Schleife
Schleife -- Nein --> Hole --> Addiere --> Schleife
Schleife -- Ja --> Ende
```
[⚓ Inhalt](#-inhalt)
---
### Diagramme
#### Flussdiagramm (`flowchart`)
**Code:**
```plaintext (mermaid)
flowchart TD
Start([Start])
Entscheidung{Bedingung erfüllt?}
Aktion1[Aktion bei Ja]
Aktion2[Aktion bei Nein]
Ende([Ende])
Start --> Entscheidung
Entscheidung -- Ja --> Aktion1 --> Ende
Entscheidung -- Nein --> Aktion2 --> Ende
```
**Ausgabe:**
```mermaid
flowchart TD
Start([Start])
Entscheidung{Bedingung erfüllt?}
Aktion1[Aktion bei Ja]
Aktion2[Aktion bei Nein]
Ende([Ende])
Start --> Entscheidung
Entscheidung -- Ja --> Aktion1 --> Ende
Entscheidung -- Nein --> Aktion2 --> Ende
```
**Richtungen:**
- `TD` = oben nach unten (Top → Down)
- `LR` = links nach rechts (Left → Right)
- `BT` = unten nach oben (Bottom → Top)
- `RL` = rechts nach links (Right → Left)
**Knotenformen:**
| Syntax | Bedeutung |
| --------------- | -------------------- |
| `A[Text]` | Rechteck (Prozess) |
| `A((Text))` | Kreis (Start/Ende) |
| `A{Bedingung?}` | Raute (Entscheidung) |
| `A>"Text"]` | Subprozess |
| `A["Text"]` | Textblock |
**Verbindungen:**
- `A --> B` → gerichteter Pfeil
- `A -- Text --> B` → beschrifteter Pfeil
- `A -.-> B` → gestrichelte Linie
- `A ===> B` → dicker Pfeil
[⚓ Inhalt](#-inhalt)
---
#### Klassendiagramm (`classDiagram`)
**Code:**
```plaintext (mermaid)
classDiagram
class Fahrzeug {
+String marke
+fahre()
}
class Auto {
+int tueranzahl
}
Fahrzeug <|-- Auto
```
**Ausgabe:**
```mermaid
classDiagram
class Fahrzeug {
+String marke
+fahre()
}
class Auto {
+int tueranzahl
}
Fahrzeug <|-- Auto
```
**Beziehungen:**
- `<|--` → Vererbung
- `*--` → Komposition
- `o--` → Aggregation
- `--` → Assoziation
[⚓ Inhalt](#-inhalt)
---
#### Zustandsdiagramm (`stateDiagram`)
**Code:**
```plaintext (mermaid)
stateDiagram-v2
[*] --> Wartend
Wartend --> Aktiv : start()
Aktiv --> Wartend : stop()
Aktiv --> [*]
```
**Ausgabe:**
```mermaid
stateDiagram-v2
[*] --> Wartend
Wartend --> Aktiv : start()
Aktiv --> Wartend : stop()
Aktiv --> [*]
```
[⚓ Inhalt](#-inhalt)
---
#### Entscheidungsdiagramm (`flowchart` mit Bedingungen)
**Code:**
```plaintext (mermaid)
flowchart TD
A{Ist x > 10?}
A -- Ja --> B[Ausgabe: Groß]
A -- Nein --> C[Ausgabe: Klein]
```
**Ausgabe:**
```mermaid
flowchart TD
A{Ist x > 10?}
A -- Ja --> B[Ausgabe: Groß]
A -- Nein --> C[Ausgabe: Klein]
```
[⚓ Inhalt](#-inhalt)
---
#### Subgraphen (z.B. Module, Gruppen)
**Code:**
```plaintext (mermaid)
flowchart TD
subgraph ModulA
A1 --> A2
end
subgraph ModulB
B1 --> B2
end
A2 --> B1
```
**Ausgabe:**
```mermaid
flowchart TD
subgraph ModulA
A1 --> A2
end
subgraph ModulB
B1 --> B2
end
A2 --> B1
```
[⚓ Inhalt](#-inhalt)
---
#### Weitere: Gantt-, Pie- & ER-Diagramme
- `gantt` für Zeitplanung
- `pie` für Verhältnisdarstellungen
- `erDiagram` für Entitäten & Datenbanken
[⚓ Inhalt](#-inhalt)
---
### Erklärung
- **Start** → Initialisierung
- **Schleife** prüft, ob noch Elemente vorhanden sind
- Wenn **Nein**, wird das nächste Element geholt und aufaddiert
- Wenn **Ja**, wird die Schleife beendet und `summe` zurückgegeben
[⚓ Inhalt](#-inhalt)
---
## Visualisierung/ Rendering
- [x] **<https://mermaid.live>**
- Vollständig browserbasiert, keine Installation
- Sofortige Vorschau
- Export als PNG, SVG, PDF
- Speichern & Teilen von Diagrammen
- [x] **Eingebettet in HTML**
- Die Datei [`demo.html`](demo.html) zeigt wie dies erfolgen könnte.
- [x] **In VS-Code** (nur lokal)
- 📦 „**Markdown Preview Mermaid Support**" (Autor: bierner oder vhatpal)
Damit kannst du in Markdown-Dateien Mermaid-Diagramme live in der Vorschau anzeigen lassen:
Öffne .md-Datei
> `Ctrl+Shift+V` oder rechtsklick → Markdown-Vorschau öffnen
[⚓ Inhalt](#-inhalt)
---
## Gängige Symbole (Unicode sicher)
| Symbol | Bedeutung |
| ------ | ---------------- |
| ⚙ | Prozess |
| ✔ | Erfolgreich |
| ✖ | Fehler / Abbruch |
| | Info / Hinweis |
| ⏳ | Warten / Delay |
```plaintext (mermaid)
flowchart LR
Start((⚙ Start))
Prozess1[✔ OK]
Fehler[✖ Fehler]
Start --> Prozess1 --> Fehler
```
**Ausgabe:**
```mermaid
flowchart LR
Start((⚙ Start))
Prozess1[✔ OK]
Fehler[✖ Fehler]
Start --> Prozess1 --> Fehler
```
[⚓ Inhalt](#-inhalt)
---
## Diagramm-Layout und Styling-Optionen
Mermaid erlaubt die **Anpassung von Farben, Fonts, Ausrichtung und Stilen** über einfache Inline-Befehle:
**Code:**
```plaintext (mermaid)
flowchart TD
Start([Gestylter Start])
style Start fill:#f9f,stroke:#333,stroke-width:2px
```
**Ausgabe:**
```mermaid
flowchart TD
Start([Gestylter Start])
style Start fill:#f9f,stroke:#333,stroke-width:2px
```
### Mermaid `style`-Eigenschaften (Übersicht)
| Eigenschaft | Beschreibung | Beispiel |
| ------------------ | ------------------------------------- | ----------------------- |
| `fill` | Hintergrundfarbe | `fill:#f9f` |
| `stroke` | Rahmenfarbe | `stroke:#333` |
| `stroke-width` | Rahmenstärke | `stroke-width:2px` |
| `color` | Textfarbe | `color:#000000` |
| `font-size` | Schriftgröße | `font-size:14px` |
| `font-family` | Schriftart | `font-family:monospace` |
| `font-weight` | Schriftstil (z.B. `bold`, `normal`) | `font-weight:bold` |
| `background-color` | Alternativ zu `fill` (seltener nötig) | `background-color:#eee` |
| `opacity` | Transparenz (0 bis 1) | `opacity:0.8` |
| `text-align` | Textausrichtung innerhalb des Knotens | `text-align:center` |
| `rx`, `ry` | Rundung der Ecken | `rx:10`, `ry:10` |
### Beispiel mit mehreren Eigenschaften
**Code:**
```plaintext (mermaid)
flowchart TD
Wichtig([⚠ Kritischer Pfad])
style Wichtig fill:#ffe6e6,stroke:#cc0000,stroke-width:2px,color:#000,font-weight:bold
```
**Ausgabe:**
```mermaid
flowchart TD
Wichtig([⚠ Kritischer Pfad])
style Wichtig fill:#ffe6e6,stroke:#cc0000,stroke-width:2px,color:#000,font-weight:bold
```
**🔧 Hinweis:**
- Die style-Anweisung wirkt nur auf den genannten Knoten (`style <ID>` ...)
- Du kannst mehrere style-Zeilen einfügen
- Unterstützt nur Grundwerte, kein CSS-Selektor, kein hover, keine Klassen
[⚓ Inhalt](#-inhalt)
---
## Interaktive Features & Erweiterte Syntax
Mermaid erlaubt einfache Interaktionen direkt im Diagramm. Besonders hilfreich für Dokumentationen, Präsentationen oder klickbare Projektübersichten.
---
### Klickbare Knoten
**Du kannst Knoten interaktiv machen, indem du sie mit Links versiehst:**
**Code:**
```plaintext (mermaid)
flowchart TD
Info([ Dokumentation])
click Info "https://example.com/doku" "Mehr zur Doku"
```
**Ausgabe:**
```mermaid
flowchart TD
Info([ Dokumentation])
click Info "https://example.com/doku" "Mehr zur Doku"
```
> **Hinweis:** Das funktioniert nur in Umgebungen, die `click` unterstützen (z.B. HTML-Embedding oder Mermaid Live Editor, nicht in GitHub-Rendern).
---
### Tooltip mit `click` kombinieren
**Code:**
```plaintext (mermaid)
flowchart TD
Hilfe([ Hilfe anzeigen])
click Hilfe "https://example.com/hilfe" "Öffnet die Hilfeseite"
```
**Ausgabe:**
```mermaid
flowchart TD
Hilfe([ Hilfe anzeigen])
click Hilfe "https://example.com/hilfe" "Öffnet die Hilfeseite"
```
---
### Ankerpunkte / Subgraph-Steuerung
**Subgraphen lassen sich interaktiv strukturieren z.B. als Module oder Zuständigkeiten:**
**Code:**
```plaintext (mermaid)
flowchart TB
subgraph Backend [Backend-Systeme]
DB[(PostgreSQL DB)]
API[REST API]
end
subgraph Frontend [Client]
UI[Benutzeroberfläche]
end
UI --> API --> DB
click UI "https://frontend.example.com" "Zur Benutzeroberfläche"
click DB "https://db-docs.example.com" "DB-Doku"
```
**Ausgabe:**
```mermaid
flowchart TB
subgraph Backend [Backend-Systeme]
DB[(PostgreSQL DB)]
API[REST API]
end
subgraph Frontend [Client]
UI[Benutzeroberfläche]
end
UI --> API --> DB
click UI "https://frontend.example.com" "Zur Benutzeroberfläche"
click DB "https://db-docs.example.com" "DB-Doku"
```
---
### Weitere Optionen
| Funktion | Beschreibung | Beispiel |
|--------------|--------------------------------------|--------------------------------------------------------|
| `click` | Knoten klickbar machen | `click ID "https://..." "Tooltip"` |
| `tooltip` | Tooltip anzeigen (oft via `click`) | Bestandteil von `click`, kein eigener Befehl |
| `linkStyle` | Stil für Link-Linien setzen | `linkStyle 0 stroke:#f66,stroke-width:2px` |
| `subgraph` | Gruppe von Elementen darstellen | `subgraph Name``end` |
| `style` | Styling eines Knotens | `style KnotenID fill:#eee,stroke:#000` |
---
### Anmerkungen
- In Markdown-Dokumenten (z.B. GitHub READMEs) **funktionieren `click`-Links meist nicht**, da Mermaid dort ohne JS läuft.
- Für interaktive Versionen → HTML exportieren oder Mermaid Live Editor nutzen.
- Tooltips erscheinen nur bei aktiver `click`-Anweisung.
[⚓ Inhalt](#-inhalt)
---
## Testing-Setup & CI-Integration
Mermaid-Diagramme lassen sich auch automatisiert rendern und testen z.B. in **Build-Skripten**, **Makefiles** oder **CI/CD-Pipelines**. Das ist nützlich, wenn du aus `.mmd`-Quelldateien automatisch **SVGs** oder **PNGs** generieren willst.
---
### Mermaid CLI (`@mermaid-js/mermaid-cli`)
Das offizielle Node.js-Tool heißt `mmdc` und kann über `npm` installiert werden:
```bash
npm install -g @mermaid-js/mermaid-cli
```
Danach kannst du eine `.mmd`-Quelldatei rendern:
```bash
mmdc -i diagram.mmd -o diagram.svg
```
---
### Beispiel: Einfache .mmd-Datei
**`diagram.mmd`**:
```plaintext
flowchart TD
A[Start] --> B[Ende]
```
**Exportbefehl:**
```bash
mmdc -i diagram.mmd -o diagram.svg
```
---
### Typische Optionen
| Option | Bedeutung |
|----------------|------------------------------------------|
| `-i` | Eingabedatei (.mmd) |
| `-o` | Ausgabedatei (SVG, PNG, PDF möglich) |
| `-t default` | Theme: `default`, `dark`, `neutral`, `forest` |
| `--width` | Breite des Diagramms |
| `--scale` | Skalierung (z.B. für PDF-Ausgabe) |
---
### Automatisierung mit Makefile
```makefile
diagram.svg: diagram.mmd
mmdc -i diagram.mmd -o diagram.svg -t dark
```
---
### CI-Beispiel (GitHub Actions)
```yaml
name: Mermaid Build
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm install -g @mermaid-js/mermaid-cli
- run: mmdc -i diagram.mmd -o diagram.svg
```
---
### 📌 Hinweis
- Mermaid CLI nutzt **Puppeteer (Headless Chromium)**, daher ggf. zusätzliche Abhängigkeiten im CI-System notwendig
- Mermaid CLI rendert **keine eingebetteten Diagramme** in Markdown nur `.mmd`-Dateien!
**Empfohlene Struktur im Projekt:**
```plaintext
docs/
diagrams/
main.mmd
main.svg
Makefile
README.md
```
[⚓ Inhalt](#-inhalt)
---
## Diagramm-Export / Automatisierung
Mermaid-Diagramme lassen sich automatisch aus Quelltext-Dateien exportieren ideal für Skripte, Build-Systeme oder CI/CD-Pipelines.
---
### Export mit Mermaid CLI
Die **offizielle Mermaid CLI** (`@mermaid-js/mermaid-cli`) erlaubt den Export von `.mmd`-Quelldateien in verschiedene Formate:
```bash
mmdc -i diagram.mmd -o diagram.svg
```
---
### Installation
Installieren über npm:
```bash
npm install -g @mermaid-js/mermaid-cli
```
---
### 🛠 Typische Optionen
| Option | Bedeutung |
|--------------------|--------------------------------------------|
| `-i` | Eingabedatei (`.mmd`) |
| `-o` | Ausgabedatei (`.svg`, `.png`, `.pdf`) |
| `-t dark` | Theme (`default`, `dark`, `forest`, `neutral`) |
| `--scale` | Skalierung der Ausgabe (z.B. `--scale 2`) |
| `--width`, `--height` | Feste Größenangabe |
---
### Beispiel: SVG aus `.mmd` erzeugen
**Datei `ablauf.mmd`:**
```plaintext
flowchart TD
Start --> Verarbeitung --> Ende
```
**Exportbefehl:**
```bash
mmdc -i ablauf.mmd -o ablauf.svg -t default
```
---
### Struktur im Projekt
Empfohlene Projektstruktur:
```plaintext
docs/
diagrams/
diagram.mmd
diagram.svg
Makefile
README.md
```
---
### Makefile-Beispiel
```makefile
diagram.svg: diagram.mmd
mmdc -i diagram.mmd -o diagram.svg -t dark
```
---
### GitHub Actions-Beispiel
```yaml
name: Mermaid-Diagramm-Export
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm install -g @mermaid-js/mermaid-cli
- run: mmdc -i diagram.mmd -o diagram.svg -t forest
```
---
### Hinweise
- Mermaid CLI basiert auf Puppeteer (Headless Chrome) → CI-Systeme benötigen ggf. zusätzliche Abhängigkeiten
- Nur `.mmd`-Dateien werden unterstützt kein Inline-Markdown
- Ideal für automatisierten SVG-Export für Dokumentation oder statische Webseiten
---
## Template & Projektintegration
**Ein Mini-Template als Startpunkt für neue Projekte:**
## Ablauf
**Code:**
```plaintext (mermaid)
flowchart TD
Init((Start))
Task1[Prozess 1]
Task2[Prozess 2]
Done((Fertig))
Init --> Task1 --> Task2 --> Done
```
**Ausgabe:**
```mermaid
flowchart TD
Init((Start))
Task1[Prozess 1]
Task2[Prozess 2]
Done((Fertig))
Init --> Task1 --> Task2 --> Done
```
[⚓ Inhalt](#-inhalt)
---
## 🛠 Tools
| Tool | Vorschau | Markdown-kompatibel | Bemerkung |
| ------------------------------------ | -------- | ------------------- | -------------------------------- |
| [mermaid.live](https://mermaid.live) | ✔ | ✔ | Online-Editor |
| VS Code + Plugin | ✔ | ✔ | Markdown Preview Mermaid Support |
| GitHub README | ✔ | ✔ | nur in Repos |
| mkdocs-material | ✔ | ✔ | für Doku-Webseiten |
### Links
- Mermaid auf GitHub <https://github.com/mermaid-js/>
[⚓ Inhalt](#-inhalt)
---
## ✏️ Notizen bei Erstellung dieses Dokuments
> `extensions.json` erstellt mit `code --list-extensions > extensions.txt`
Hier ist ein **deutschsprachiges Mermaid Cheat Sheet** mit den wichtigsten Diagrammtypen, Syntaxelementen und Beispielen vollständig in Markdown, damit du es direkt in deine Projekte einbinden kannst.
[⚓ Inhalt](#-inhalt)
---

65
template.md Normal file
View File

@ -0,0 +1,65 @@
## Projektvorlage
Ein wiederverwendbares Grundgerüst für Mermaid-Diagramme in Projekten ideal für schnelle Abläufe, Prozessbeschreibungen oder Dokumentationsmodule.
---
### 🧩 Beispiel für ein einfaches Ablaufdiagramm
```mermaid
flowchart TD
Init((Start))
Schritt1[⏳ Prozessschritt 1]
Schritt2[⚙ Verarbeitung]
Ergebnis{Erfolg?}
Positiv[✔ Erfolgreich]
Negativ[✖ Fehler]
Fertig((Fertig))
Init --> Schritt1 --> Schritt2 --> Ergebnis
Ergebnis -- Ja --> Positiv --> Fertig
Ergebnis -- Nein --> Negativ --> Fertig
```
---
### 📁 Ordnerstruktur-Vorschlag
```
docs/
diagrams/
main.mmd # Mermaid-Quelldatei
main.svg # Exportiertes Diagramm
README.md # Referenz auf das Diagramm
Makefile # Automatisierter Export
```
---
### 🛠 Makefile-Snippet für automatische Generierung
```makefile
diagrams/main.svg: diagrams/main.mmd
mmdc -i diagrams/main.mmd -o diagrams/main.svg -t neutral
```
---
### 🔗 Verlinkung im README.md
```markdown
## 🔍 Prozessübersicht
![Ablaufdiagramm](docs/diagrams/main.svg)
```
---
### 📌 Empfehlung
- Diagramme als `.mmd` separat pflegen kein Inline-Markdown
- Automatisch als `.svg` oder `.png` exportieren
- Diagramme per Git versionieren
- In CI/CD-Pipeline oder Build-System integrieren
---