Mermaid sintaksės trumpasis vadovas

Mermaid turi didelį žinyną ir nedidelį poaibį, kuris apima beveik viską, ką žmonės piešia. Šis puslapis ir yra tas poaibis: formos, rodyklės, grupavimas, spalvos ir po vieną nukopijuok-ir-įklijuok pavyzdį kiekvienam diagramos tipui. Kiekvienas žemiau esantis pavyzdys atvaizduojamas toks, koks yra — įklijuok jį į redaktorių, kad pamatytum.

Trumpiausia veikianti diagrama

Blokinei schemai reikia vienos deklaracijos eilutės ir vienos rodyklės. TD reiškia iš viršaus į apačią; naudok LR procesams iš kairės į dešinę, kai jie platesni.

flowchart TD
  A[Start] --> B{Ready?}
  B -->|Yes| C[Ship it]
  B -->|No| A
Trijų mazgų blokinė schema, iš viršaus į apačią.

A, B ir C yra mazgų id — vidiniai vardai, kurie niekada nepiešiami. Tekstas skliaustuose yra etiketė, o skliaustų stilius parenka formą.

Mazgų formos

Forma parenkama pagal skliaustų porą aplink etiketę. Štai tos, kurias verta įsiminti:

SintaksėFormaĮprasta reikšmė
A[Text]StačiakampisŽingsnis arba veiksmas
A(Text)SuapvalintasPradžios arba pabaigos taškas
A([Text])PiliulėTerminatorius
A[[Text]]SubrutinaIškvietimas į kitą procesą
A[(Text)]CilindrasDuomenų bazė arba saugykla
A((Text))ApskritimasSankirta
A{Text}RombasSprendimas
A{{Text}}ŠešiakampisParuošiamasis žingsnis
A[/Text/]LygiagretainisĮvestis arba išvestis
A[/Text\]TrapecijaRankinė operacija

Cituok etiketę, kai joje yra skliaustų, dvitaškių ar kabučių: A["Load (raw) data"]. Be kabučių analizatorius supranta skyrybos ženklus kaip sintaksę.

Rodyklės

SintaksėRezultatas
A --> BRodyklė
A --- BLinija be antgalio
A -.-> BPunktyrinė rodyklė
A ==> BStora rodyklė
A -->|label| BRodyklė su etikete
A --> B --> CGrandinė, parašyta vienoje eilutėje
A --> B & CVienas šaltinis, du taikiniai

Rodyklės ilgis taip pat turi reikšmę: --> yra vienas lygis, ---> nustumia taikinį dar vienu lygiu žemiau. Tai paprasčiausias išdėstymo valdymo būdas, kurį duoda mermaid.

Grupavimas su potipėmis (subgraph)

subgraph nupiešia pažymėtą dėžę aplink mazgus. Potipės gali būti įdėtos viena į kitą, o rodyklės gali laisvai kirsti jų ribas.

flowchart LR
  subgraph api["API"]
    H[Handler] --> S[(Postgres)]
  end
  subgraph worker["Worker"]
    Q[Queue] --> W[Job]
  end
  H --> Q
Dvi paslaugos, kiekviena su savo saugykla.

Spalva ir stilius

style nudažo vieną mazgą. classDef kartu su class nudažo jų rinkinį, o to ir reikia, kai mazgų daugiau nei trys ar keturi.

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

Spalvos yra diagramos kodo dalis, tad jos išlieka po eksporto ir keliauja kartu su failu. Čia niekas nepriklauso nuo temos nustatymo įrankyje, kuris ją atvaizduoja.

Po vieną pavyzdį kiekvienam diagramos tipui

Sekos diagrama

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

Klasių diagrama

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

Būsenų diagrama

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

Esybių ryšių diagrama

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

Ganto diagrama

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

Kur mermaid atvaizduojamas savaime

  • GitHub — apibrėžtas ```mermaid blokas atvaizduojamas issues, pull request'uose, komentaruose ir README failuose.
  • GitLab — tas pats apibrėžtas blokas, issues, merge request'uose ir wiki.
  • Notion — kodo blokas su kalba nustatyta į Mermaid atvaizduojamas šalia kodo.
  • Obsidian — apibrėžtas mermaid blokas atvaizduojamas peržiūros režime.
  • Docs svetainės — Docusaurus, MkDocs Material ir VitePress palaiko mermaid blokus.

Būtent dėl to verta laikyti diagramas kaip mermaid, o ne kaip paveikslėlius: diagrama gyvena tame pačiame tekstiniame faile kaip ir dalykas, kurį ji aprašo, o code review gali matyti, kas joje pasikeitė.

Išbandyk bet kurį šio puslapio pavyzdį

Įklijuok jį į kodo skirtuką ir jis akimirksniu atvaizduojamas — arba sukurk tą pačią diagramą darbalaukyje ir perskaityk sintaksę atgal.

Dažniausiai užduodami klausimai

Kaip pridėti eilutės lūžį mazgo etiketėje?

Naudok <br> cituotoje etiketėje: A["First line<br>Second line"]. Mermaid atvaizduoja etiketę kaip HTML, tad žymė veikia, nors likusi sintaksė nėra HTML.

Kodėl mano etiketė sugadina diagramą?

Beveik visada dėl necituoto skliausto, lenktinio skliausto, dvitaškio ar kabutės etiketėje. Apgaubk visą etiketę dvigubomis kabutėmis, ir analizatorius nustos suprasti tavo skyrybos ženklus kaip sintaksę.

Ar galiu valdyti išdėstymą?

Tik netiesiogiai. Pasirink kryptį (TD, LR, BT, RL), naudok ilgesnes rodykles (--->), kad išstumtum mazgus toliau vienas nuo kito, ir grupuok susijusius mazgus į potipes. Likusią dalį apskaičiuoja mermaid — jokių koordinačių nėra.

Kurią mermaid versiją naudoja šis redaktorius?

Mermaid 11, dabartinę pagrindinę versiją, tad viskas, kas dokumentuota v10 ir v11 sintaksei, čia atvaizduojama.

Daugiau vadovų

  1. Eksportuoti mermaid į PNG ar SVG

    Keturi būdai išvesti mermaid diagramą — PNG, SVG, .mmd kodas ir Markdown blokas — ir kada kiekvienas iš jų tinkamas.

  2. Mermaid sekos diagramos

    Dalyviai, rodyklių tipai, aktyvavimo juostos, ciklai ir alt blokai — visa sekos diagramos sintaksė su veikiančiais pavyzdžiais.

Atverk redaktorių. Nemokamai — be registracijos.

Tuščias darbalaukis, kodo skirtukas ir visos eksporto galimybės — nemokamai, naršyklėje, dabar.