Πλήρης οδηγός σύνταξης mermaid

Το mermaid έχει μια εκτενή τεκμηρίωση, αλλά ένα μικρό υποσύνολό της καλύπτει σχεδόν ό,τι σχεδιάζει ο κόσμος. Αυτή η σελίδα είναι ακριβώς αυτό το υποσύνολο: σχήματα, βέλη, ομαδοποίηση, χρώματα, και ένα παράδειγμα προς αντιγραφή για κάθε τύπο διαγράμματος. Κάθε απόσπασμα παρακάτω σχεδιάζεται όπως είναι — επικολλήστε το στον editor για να το δείτε.

Το πιο σύντομο διάγραμμα που λειτουργεί

Ένα flowchart χρειάζεται μία γραμμή δήλωσης και ένα βέλος. Το TD σημαίνει από πάνω προς τα κάτω· χρησιμοποιήστε LR για από αριστερά προς τα δεξιά, που ταιριάζει καλύτερα σε ευρείες διαδικασίες.

flowchart TD
  A[Start] --> B{Ready?}
  B -->|Yes| C[Ship it]
  B -->|No| A
Ένα flowchart τριών κόμβων, από πάνω προς τα κάτω.

Τα A, B και C είναι ids κόμβων — εσωτερικά ονόματα, που δεν εμφανίζονται ποτέ. Το κείμενο μέσα στις αγκύλες είναι η ετικέτα, και το στυλ των αγκυλών καθορίζει το σχήμα.

Σχήματα κόμβων

Το σχήμα επιλέγεται από το ζεύγος οριοθετών γύρω από την ετικέτα. Αυτά αξίζει να τα θυμάστε:

ΣύνταξηΣχήμαΣυνήθης σημασία
A[Text]ΟρθογώνιοΈνα βήμα ή ενέργεια
A(Text)ΣτρογγυλεμένοΣημείο εκκίνησης ή τερματισμού
A([Text])ΧάπιΈνας τερματιστής
A[[Text]]ΥπορουτίναΚλήση σε άλλη διαδικασία
A[(Text)]ΚύλινδροςΜια βάση δεδομένων ή αποθήκη
A((Text))ΚύκλοςΈνα σημείο σύνδεσης
A{Text}ΡόμβοςΜια απόφαση
A{{Text}}ΕξάγωνοΈνα βήμα προετοιμασίας
A[/Text/]ΠαραλληλόγραμμοΕίσοδος ή έξοδος
A[/Text\]ΤραπέζιοΜια χειροκίνητη ενέργεια

Βάλτε την ετικέτα σε εισαγωγικά όταν περιέχει αγκύλες, άνω-κάτω τελεία ή εισαγωγικά: A["Load (raw) data"]. Χωρίς εισαγωγικά ο parser βλέπει τα σημεία στίξης σας ως σύνταξη.

Βέλη

ΣύνταξηΑποτέλεσμα
A --> BΒέλος
A --- BΓραμμή, χωρίς αιχμή
A -.-> BΔιακεκομμένο βέλος
A ==> BΠαχύ βέλος
A -->|label| BΒέλος με ετικέτα πάνω του
A --> B --> CΑλυσίδα, γραμμένη σε μία γραμμή
A --> B & CΜία πηγή, δύο στόχοι

Το μήκος του βέλους έχει επίσης σημασία: το --> είναι μία τάξη απόστασης, το ---> σπρώχνει τον στόχο μία τάξη παρακάτω. Είναι ο απλούστερος έλεγχος διάταξης που προσφέρει το mermaid.

Ομαδοποίηση με subgraph

Ένα subgraph σχεδιάζει ένα πλαίσιο με ετικέτα γύρω από κόμβους. Τα subgraph μπορούν να εμφωλεύονται, και τα βέλη μπορούν να διασχίζουν τα όριά τους ελεύθερα.

flowchart LR
  subgraph api["API"]
    H[Handler] --> S[(Postgres)]
  end
  subgraph worker["Worker"]
    Q[Queue] --> W[Job]
  end
  H --> Q
Δύο υπηρεσίες, η καθεμία με τη δική της αποθήκη.

Χρώμα και στυλ

Το style βάφει έναν κόμβο. Το classDef μαζί με το class βάφει ένα σύνολο κόμβων, κάτι που θέλετε πέρα από τρεις ή τέσσερις κόμβους.

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

Τα χρώματα είναι μέρος της πηγής του διαγράμματος, οπότε επιβιώνουν στην εξαγωγή και ταξιδεύουν μαζί με το αρχείο. Τίποτα εδώ δεν εξαρτάται από μια ρύθμιση θέματος στο εργαλείο που το σχεδιάζει.

Ένα παράδειγμα ανά τύπο διαγράμματος

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 chart

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

Πού σχεδιάζεται το mermaid αυτόματα

  • GitHub — ένα περιφραγμένο ```mermaid block σχεδιάζεται σε issues, pull requests, σχόλια και αρχεία README.
  • GitLab — το ίδιο περιφραγμένο block, σε issues, merge requests και το wiki.
  • Notion — ένα code block με τη γλώσσα ορισμένη σε Mermaid σχεδιάζεται δίπλα στην πηγή.
  • Obsidian — ένα περιφραγμένο mermaid block σχεδιάζεται σε λειτουργία προεπισκόπησης.
  • Ιστοσελίδες τεκμηρίωσης — Docusaurus, MkDocs Material και VitePress υποστηρίζουν όλα mermaid blocks.

Αυτός είναι ο πραγματικός λόγος να κρατάτε τα διαγράμματα ως mermaid αντί για εικόνες: το διάγραμμα ζει στο ίδιο αρχείο κειμένου με αυτό που περιγράφει, και μια αναθεώρηση κώδικα μπορεί να δει τι άλλαξε σε αυτό.

Δοκιμάστε οποιοδήποτε απόσπασμα αυτής της σελίδας

Επικολλήστε το στην καρτέλα κώδικα και σχεδιάζεται αμέσως — ή χτίστε το ίδιο διάγραμμα στον καμβά και διαβάστε τη σύνταξη πίσω.

Συχνές ερωτήσεις

Πώς προσθέτω αλλαγή γραμμής μέσα σε μια ετικέτα κόμβου;

Χρησιμοποιήστε <br> μέσα σε μια ετικέτα με εισαγωγικά: A["First line<br>Second line"]. Το mermaid σχεδιάζει την ετικέτα ως HTML, οπότε η ετικέτα λειτουργεί ακόμα κι αν η υπόλοιπη σύνταξη δεν είναι HTML.

Γιατί η ετικέτα μου χαλάει το διάγραμμα;

Σχεδόν πάντα φταίει μια αγκύλη, παρένθεση, άνω-κάτω τελεία ή εισαγωγικό χωρίς εισαγωγικά μέσα στην ετικέτα. Τυλίξτε ολόκληρη την ετικέτα σε διπλά εισαγωγικά και ο parser σταματά να αντιμετωπίζει τα σημεία στίξης σας ως σύνταξη.

Μπορώ να ελέγξω τη διάταξη;

Μόνο έμμεσα. Επιλέξτε κατεύθυνση (TD, LR, BT, RL), χρησιμοποιήστε μεγαλύτερα βέλη (--->) για να απομακρύνετε κόμβους, και ομαδοποιήστε σχετικούς κόμβους σε subgraph. Το mermaid υπολογίζει τα υπόλοιπα — δεν υπάρχουν συντεταγμένες.

Ποια έκδοση mermaid χρησιμοποιεί αυτός ο editor;

Mermaid 11, την τρέχουσα κύρια έκδοση, οπότε ό,τι τεκμηριώνεται για τη σύνταξη v10 και v11 σχεδιάζεται εδώ.

Περισσότεροι οδηγοί

  1. Εξαγωγή mermaid σε PNG ή SVG

    Τέσσερις τρόποι εξαγωγής από ένα διάγραμμα mermaid — PNG, SVG, πηγή .mmd και block Markdown — και πότε είναι ο καθένας η σωστή επιλογή.

  2. Mermaid sequence diagrams

    Participants, τύποι βελών, activation bars, loops και alt blocks — ολόκληρη η σύνταξη sequence diagram με λειτουργικά παραδείγματα.

Ανοίξτε τον editor. Δωρεάν — χωρίς εγγραφή.

Ένας κενός καμβάς, μια καρτέλα κώδικα και κάθε επιλογή εξαγωγής — δωρεάν, στον browser σας, τώρα.