Mermaid syntaks cheat sheet

Mermaid har en stor reference og en lille delmængde, der dækker næsten alt, folk tegner. Denne side er den delmængde: former, pile, gruppering, farver og ét copy-paste-eksempel pr. diagramtype. Hvert udsnit herunder gengives, som det er — indsæt det i editoren for at se det.

Det korteste diagram, der virker

Et flowchart kræver én deklarationslinje og én pil. TD betyder top-down; brug LR til venstre-til-højre, hvilket passer bedre til brede processer.

flowchart TD
  A[Start] --> B{Ready?}
  B -->|Yes| C[Ship it]
  B -->|No| A
Et flowchart med tre noder, top til bund.

A, B og C er node-id'er — interne navne, der aldrig tegnes. Teksten i parenteserne er labelen, og parentes-stilen er det, der bestemmer formen.

Node-former

Formen vælges af parret af afgrænsere omkring labelen. Her er dem, det er værd at huske:

SyntaksFormTypisk betydning
A[Text]RektangelEt trin eller en handling
A(Text)AfrundetEt start- eller slutpunkt
A([Text])PilleEn terminator
A[[Text]]SubrutineEt kald til en anden proces
A[(Text)]CylinderEn database eller et lager
A((Text))CirkelEt knudepunkt
A{Text}DiamantEn beslutning
A{{Text}}SekskantEt forberedelsestrin
A[/Text/]ParallelogramInput eller output
A[/Text\]TrapezEn manuel handling

Sæt labelen i citationstegn, når den indeholder parenteser, kolon eller citationstegn: A["Load (raw) data"]. Uden citationstegn opfatter parseren din tegnsætning som syntaks.

Pile

SyntaksResultat
A --> BPil
A --- BStreg, ingen pilespids
A -.-> BStiplet pil
A ==> BTyk pil
A -->|label| BPil med en label på
A --> B --> CKæde, skrevet på én linje
A --> B & CÉn kilde, to mål

Pilens længde betyder også noget: --> er ét niveau, ---> skubber målet ét niveau længere ned. Det er den simpleste layoutkontrol, mermaid giver dig.

Gruppering med subgrafer

En subgraph tegner en mærket boks omkring noder. Subgrafer kan indlejres, og pile kan frit krydse deres grænser.

flowchart LR
  subgraph api["API"]
    H[Handler] --> S[(Postgres)]
  end
  subgraph worker["Worker"]
    Q[Queue] --> W[Job]
  end
  H --> Q
To services, hver med sit eget lager.

Farve og styling

style farver én node. classDef plus class farver et sæt af dem, hvilket er det, du vil have, når du kommer over tre-fire noder.

flowchart TD
  A[OK] --> B[Failed]
  style A fill:#16a34a,stroke:#333,color:#fff
  classDef bad fill:#dc2626,stroke:#333,color:#fff
  class B bad

Farver er en del af diagramkilden, så de overlever eksport og følger med filen. Intet her afhænger af en temaindstilling i det værktøj, der gengiver det.

Ét eksempel pr. diagramtype

Sequence-diagram

sequenceDiagram
  participant User
  participant API
  participant DB
  User->>API: request
  API->>DB: query
  DB-->>API: rows
  API-->>User: response

Class-diagram

classDiagram
  class Animal {
    +String name
    +move()
  }
  class Dog {
    +bark()
  }
  Animal <|-- Dog

State-diagram

stateDiagram-v2
  [*] --> Idle
  Idle --> Running: start
  Running --> Idle: stop
  Running --> [*]: finish

Entity relationship-diagram

erDiagram
  CUSTOMER ||--o{ ORDER : places
  ORDER ||--|{ LINE_ITEM : contains
  CUSTOMER {
    string name
    string email
  }

Gantt-diagram

gantt
  title Project
  dateFormat YYYY-MM-DD
  section Phase 1
  Task 1 :a1, 2026-01-01, 5d
  Task 2 :after a1, 5d

Hvor mermaid gengives af sig selv

  • GitHub — en indrammet ```mermaid-blok gengives i issues, pull requests, kommentarer og README-filer.
  • GitLab — samme indrammede blok, i issues, merge requests og wikien.
  • Notion — en kodeblok med sproget sat til Mermaid gengives ved siden af kilden.
  • Obsidian — en indrammet mermaid-blok gengives i preview-tilstand.
  • Dokumentationssider — Docusaurus, MkDocs Material og VitePress understøtter alle mermaid-blokke.

Det er den egentlige grund til at holde diagrammer som mermaid frem for som billeder: diagrammet lever i samme tekstfil som det, det beskriver, og en kodegennemgang kan se, hvad der er ændret i det.

Prøv et hvilket som helst udsnit på denne side

Indsæt det i kode-fanen, og det gengives med det samme — eller byg det samme diagram på lærredet og læs syntaksen bagefter.

Ofte spurgt

Hvordan tilføjer jeg et linjeskift inde i en node-label?

Brug <br> inde i en citeret label: A["First line<br>Second line"]. Mermaid gengiver labelen som HTML, så tagget virker, selvom resten af syntaksen ikke er HTML.

Hvorfor ødelægger min label diagrammet?

Næsten altid en ikke-citeret parentes, klamme, kolon eller citationstegn inde i labelen. Sæt hele labelen i dobbelte citationstegn, så holder parseren op med at behandle din tegnsætning som syntaks.

Kan jeg styre layoutet?

Kun indirekte. Vælg retningen (TD, LR, BT, RL), brug længere pile (--->) til at skubbe noder længere fra hinanden, og gruppér relaterede noder i subgrafer. Mermaid beregner resten — der er ingen koordinater.

Hvilken mermaid-version bruger denne editor?

Mermaid 11, den nuværende hovedversion, så alt, der er dokumenteret for v10- og v11-syntaks, gengives her.

Flere guides

  1. Mermaid sequence-diagrammer

    Deltagere, piletyper, aktiveringsbjælker, loops og alt-blokke — hele sequence-diagram-syntaksen med kørbare eksempler.

Åbn editoren. Gratis — ingen tilmelding.

Et tomt lærred, en kode-fane og alle eksportmuligheder — gratis, i din browser, lige nu.