Mermaid-syntaksin pikaopas

Mermaidilla on laaja viitedokumentaatio ja pieni osajoukko, joka kattaa lähes kaiken mitä ihmiset piirtävät. Tämä sivu on se osajoukko: muodot, nuolet, ryhmittely, värit ja yksi kopioi-liitä-esimerkki jokaisesta kaaviotyypistä. Jokainen alla oleva pätkä piirtyy sellaisenaan — liitä se editoriin nähdäksesi sen.

Lyhin toimiva kaavio

Vuokaavio tarvitsee yhden määrittelyrivin ja yhden nuolen. TD tarkoittaa ylhäältä alas; käytä LR-suuntaa vasemmalta oikealle, joka sopii paremmin leveille prosesseille.

flowchart TD
  A[Start] --> B{Ready?}
  B -->|Yes| C[Ship it]
  B -->|No| A
Kolmen solmun vuokaavio, ylhäältä alas.

A, B ja C ovat solmujen tunnisteita – sisäisiä nimiä, joita ei koskaan piirretä. Hakasulkeissa oleva teksti on selite, ja hakasulkeiden tyyli määrää muodon.

Solmujen muodot

Muoto valitaan selitteen ympärillä olevan erotinparin perusteella. Nämä kannattaa muistaa:

SyntaksiMuotoTavallinen merkitys
A[Text]SuorakulmioVaihe tai toimenpide
A(Text)PyöristettyAloitus- tai lopetuspiste
A([Text])PilleriPäätepiste
A[[Text]]AliohjelmaKutsu toiseen prosessiin
A[(Text)]SylinteriTietokanta tai varasto
A((Text))YmpyräLiittymäkohta
A{Text}VinoneliöPäätös
A{{Text}}KuusikulmioValmisteluvaihe
A[/Text/]SuunnikasSyöte tai tuloste
A[/Text\]PuolisuunnikasManuaalinen toimenpide

Laita selite lainausmerkkeihin, kun se sisältää sulkeita, kaksoispisteitä tai lainausmerkkejä: A["Load (raw) data"]. Ilman lainausmerkkejä jäsentäjä tulkitsee välimerkkisi syntaksiksi.

Nuolet

SyntaksiTulos
A --> BNuoli
A --- BViiva, ei nuolenpäätä
A -.-> BKatkoviivanuoli
A ==> BPaksu nuoli
A -->|label| BNuoli, jossa on selite
A --> B --> CKetju yhdellä rivillä
A --> B & CYksi lähde, kaksi kohdetta

Nuolen pituudella on myös merkitys: --> on yksi taso, ---> työntää kohteen yhden tason alemmas. Se on yksinkertaisin asettelun hallintakeino, jonka mermaid tarjoaa.

Ryhmittely alikaavioilla

subgraph piirtää nimetyn laatikon solmujen ympärille. Alikaaviot voivat sisäkkäistyä, ja nuolet voivat ylittää niiden rajat vapaasti.

flowchart LR
  subgraph api["API"]
    H[Handler] --> S[(Postgres)]
  end
  subgraph worker["Worker"]
    Q[Queue] --> W[Job]
  end
  H --> Q
Kaksi palvelua, kummallakin oma varasto.

Väri ja tyylittely

style värittää yhden solmun. classDef yhdessä class-määrityksen kanssa värittää joukon niitä, mikä kannattaa kolmen tai neljän solmun jälkeen.

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

Värit ovat osa kaavion lähdekoodia, joten ne säilyvät viennissä ja kulkevat tiedoston mukana. Mikään täällä ei riipu piirtävän työkalun teema-asetuksesta.

Yksi esimerkki jokaisesta kaaviotyypistä

Sekvenssikaavio

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

Luokkakaavio

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

Tilakaavio

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

Entiteettisuhdekaavio

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

Gantt-kaavio

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

Missä mermaid piirtyy itsestään

  • GitHub — aidattu ```mermaid-lohko piirtyy issueissa, pull requesteissa, kommenteissa ja README-tiedostoissa.
  • GitLab — sama aidattu lohko, issueissa, merge requesteissa ja wikissä.
  • Notion — koodilohko, jonka kieleksi on asetettu Mermaid, piirtyy lähdekoodin viereen.
  • Obsidian — aidattu mermaid-lohko piirtyy esikatselutilassa.
  • Dokumentaatiosivustot — Docusaurus, MkDocs Material ja VitePress tukevat kaikki mermaid-lohkoja.

Se on todellinen syy pitää kaaviot mermaidina eikä kuvina: kaavio elää samassa tekstitiedostossa kuin asia, jota se kuvaa, ja koodikatselmuksessa näkee mitä siinä muuttui.

Kokeile mitä tahansa tämän sivun esimerkkiä

Liitä se koodivälilehteen ja se piirtyy heti – tai rakenna sama kaavio kanvakselle ja lue syntaksi takaisin.

Usein kysyttyä

Miten lisään rivinvaihdon solmun selitteen sisään?

Käytä <br>-merkintää lainausmerkeissä olevan selitteen sisällä: A["First line<br>Second line"]. Mermaid piirtää selitteen HTML:nä, joten tagi toimii, vaikka loppu syntaksista ei ole HTML:ää.

Miksi seliteeni rikkoo kaavion?

Lähes aina syynä on lainaamaton hakasulje, sulje, kaksoispiste tai lainausmerkki selitteen sisällä. Kääri koko selite kaksinkertaisiin lainausmerkkeihin, niin jäsentäjä lakkaa tulkitsemasta välimerkkejäsi syntaksiksi.

Voinko hallita asettelua?

Vain epäsuorasti. Valitse suunta (TD, LR, BT, RL), käytä pidempiä nuolia (--->) työntääksesi solmuja kauemmas toisistaan, ja ryhmittele toisiinsa liittyvät solmut alikaavioiksi. Mermaid laskee lopun – koordinaatteja ei ole.

Mitä mermaid-versiota tämä editori käyttää?

Mermaid 11:tä, nykyistä pääversiota, joten kaikki v10- ja v11-syntaksille dokumentoitu piirtyy täällä.

Lisää oppaita

  1. Vie mermaid PNG- tai SVG-muotoon

    Neljä tapaa viedä mermaid-kaavio ulos — PNG, SVG, .mmd-lähdekoodi ja Markdown-lohko — ja milloin kukin on oikea valinta.

  2. Mermaid-sekvenssikaaviot

    Osallistujat, nuolityypit, aktivointipalkit, silmukat ja alt-lohkot — koko sekvenssikaavion syntaksi ajettavin esimerkein.

Avaa editori. Ilmainen — ilman rekisteröitymistä.

Tyhjä kanvas, koodivälilehti ja jokainen vientivaihtoehto – ilmaiseksi, selaimessasi, juuri nyt.