Rajah Urutan
Mermaid boleh memaparkan gambar rajah jujukan. Gambar rajah jujukan ialah sejenis gambar rajah interaksi, ia memaparkan cara setiap proses beroperasi antara satu sama lain serta susunan operasinya.
Salin
Benamkan
sequenceDiagram
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
Alice-)John: See you later!
Nota tentang nod: disebabkan cara bahasa Mermaid ditulis, perkataan "end" akan merosakkan keseluruhan graf. Jika "end" mesti digunakan, perkataan "end" perlu dibalut menggunakan kurungan kecil (), tanda petik berganda "", pendakap besar {} atau pendakap sederhana [], iaitu: (end), [end], {end}.
Sintaks
Peserta
Peserta akan dipaparkan mengikut susunan kemunculannya dalam teks sumber carta. Kadangkala, anda mungkin ingin memaparkan peserta dalam susunan yang berbeza daripada kemunculan dalam mesej pertama; susunan kemunculan peserta boleh ditentukan melalui kaedah berikut:
Salin
Benamkan
sequenceDiagram
participant Alice
participant Bob
Bob->>Alice: Hi Alice
Alice->>Bob: Hi Bob
角色
Jika anda ingin menggunakan simbol peranan dan bukan segi empat tepat dengan teks, ia boleh dicapai dengan menggunakan pernyataan peranan, seperti yang ditunjukkan di bawah.
Salin
Benamkan
sequenceDiagram
actor Alice
actor Bob
Alice->>Bob: Hi Bob
Bob->>Alice: Hi Alice
Alias
Anda boleh menggunakan as selepas pengisytiharan peserta untuk mentakrifkan alias
Salin
Benamkan
sequenceDiagram
participant A as Alice
participant J as John
A->>J: Hello John, how are you?
J->>A: Great!
Penciptaan dan pemusnahan peserta
Peserta boleh dicipta dan dimusnahkan melalui mesej. Oleh itu, sila tambah arahan cipta atau musnah sebelum mesej.
Salin
Benamkan
participant B
A --> B: Hello
Semasa mencipta arahan, pembezakan antara peserta dan alias disokong. Penghantar atau penerima mesej boleh dimusnahkan, tetapi penerima hanya boleh dicipta.
Salin
Benamkan
sequenceDiagram
Alice->>Bob: Hello Bob, how are you ?
Bob->>Alice: Fine, thank you. And you?
create participant Carl
Alice->>Carl: Hi Carl!
create actor D as Donald
Carl->>D: Hi!
destroy Carl
Alice-xCarl: We are too many
destroy Bob
Bob->>Alice: I agree
Kumpulan/kotak
Peserta boleh dikumpulkan dalam kotak menegak. Anda boleh menggunakan simbol untuk mentakrifkan warna (jika tidak ditakrifkan, ia akan menjadi lutsinar).
Salin
Benamkan
box Aqua Group Description
... actors ...
end
box Group without description
... actors ...
end
box rgb(33,66,99)
... actors ...
end
box rgba(33,66,99,0.5)
... actors ...
end
Jika nama kumpulan anda berwarna, anda boleh memaksa warna itu menjadi lutsinar:
Salin
Benamkan
box transparent Aqua
... actors ...
end
Salin
Benamkan
sequenceDiagram
box Orange Alice & John
participant A
participant J
end
box Another Group
participant B
participant C
end
A->>J: Hello John, how are you?
J->>A: Great!
A->>B: Hello Bob, how is Charley?
B->>C: Hello Charley, how are you?
Mesej
Mesej boleh dipaparkan sebagai garisan pejal atau garisan putus-putus.
Garisan boleh jadi pejal atau putus-putus, dan menyokong pengakhiran dengan pelbagai jenis anak panah, silang atau anak panah terbuka.
Salin
Benamkan
[Actor][Arrow][Actor]:Message text
Sepuluh jenis anak panah standard
| Jenis | Penerangan |
|---|---|
| -> | Garisan pejal tanpa anak panah |
| --> | Garisan putus-putus tanpa anak panah |
| ->> | Garisan pejal dengan anak panah |
| -->> | Garisan putus-putus dengan anak panah |
| <<->> | Garisan pejal anak panah dua hala |
| <<-->> | Garisan putus-putus anak panah dua hala |
| -x | Garisan pejal dengan silang di hujung |
| --x | Garisan putus-putus dengan silang di hujung |
| -) | Garisan pejal berakhir dengan anak panah berongga (tak segerak) |
| --) | Garisan putus-putus berakhir dengan anak panah berongga (tak segerak) |
Aktifkan
Peranan boleh diaktifkan dan dinyahaktifkan; penyahaktifan atau pengaktifan boleh jadi pengisytiharan khusus:
Salin
Benamkan
sequenceDiagram
Alice->>Bob: Hello Bob, how are you?
activate Alice
Bob->>Alice: Hi Alice!
deactivate Alice
Terdapat juga tatatanda pintas, iaitu menambah + atau - selepas anak panah mesej.
Salin
Benamkan
sequenceDiagram
Alice->>+John: Hello John, how are you?
John-->>-Alice: Great!
Pengaktifan peranan yang sama boleh bertindih:
Salin
Benamkan
sequenceDiagram
Alice->>+John: Hello John, how are you?
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
John-->>-Alice: I feel great!
Komen
Komen boleh ditambah pada gambar rajah jujukan. Ia boleh dicapai melalui simbol berikut: Note[right of] atau [left of] atau [over][peserta]: kandungan komen
Salin
Benamkan
sequenceDiagram
participant John
Note right of John: Text in note
Anda juga boleh mencipta komen yang meliputi dua peserta:
Salin
Benamkan
sequenceDiagram
Alice->John: Hello John, how are you?
Note over Alice,John: A typical interaction
Aksara baris baharu
Aksara baris baharu boleh ditambah dalam komen dan mesej:
Salin
Benamkan
sequenceDiagram
Alice->John: Hello John,<br/>how are you?
Note over Alice,John: A typical interaction<br/>But now in two lines
Aksara baris baharu dalam nama peranan perlu ditakrifkan alias:
Salin
Benamkan
sequenceDiagram
participant Alice as Alice<br/>Johnson
Alice->John: Hello John,<br/>how are you?
Note over Alice,John: A typical interaction<n/>But now in two lines
Gelung
Gelung boleh dinyatakan dalam gambar rajah jujukan melalui simbol berikut.
Salin
Benamkan
loop Loop text
... statements ...
end
Sila rujuk contoh di bawah:
Salin
Benamkan
sequenceDiagram
Alice->John: Hello John, how are you?
loop Every minute
John-->Alice: Great!
end
Alternatif
Laluan alternatif boleh dinyatakan dalam gambar rajah jujukan melalui simbol.
Salin
Benamkan
alt Describing text...
statements
else
statements
end
或者如果存在可选序列:
Salin
Benamkan
opt Describing text...
statements
end
Sila rujuk contoh di bawah:
Salin
Benamkan
sequenceDiagram
Alice->>Bob: Hello Bob, how are you?
alt is sick
Bob->>Alice: Not so good :(
else is well
Bob->>Alice: Feeling fresh like a daisy
end
opt Extra response
Bob->>Alice: Thanks for asking
end
Selari
Tindakan yang berlaku secara selari boleh diwakili melalui simbol berikut.
Salin
Benamkan
par Action 1
statements
and Action 2
statements
and Action N
statements
end
Sila rujuk contoh di bawah:
Salin
Benamkan
sequenceDiagram
par Alice to Bob
Alice->>Bob: Hello guys!
and Alice to John
Alice->>John: Hello guys!
end
Bob-->>Alice: Hi Alice!
John-->>Alice: Hi Alice!
Blok selari juga boleh bersarang.
Salin
Benamkan
sequenceDiagram
par Alice to Bob
Alice->>Bob: Go help John
and Alice to John
Alice->>John: I want this done today
par John to Charlie
John->>Charlie: Can we do this today?
and John to Diana
John->>Diana: Can you help us today?
end
end
Kawasan kritikal
Operasi yang mesti dilaksanakan secara automatik boleh ditunjukkan dengan menyyaratkan pelbagai situasi.
Ini dilakukan melalui simbol berikut:
Salin
Benamkan
critical [Action that must be performed]
... statements ...
option [Circumstance A]
... statements ...
option [Circumstance B]
... statements ...
end
Sila rujuk contoh di bawah:
Salin
Benamkan
sequenceDiagram
critical Establish a connection to the DB
Service-->DB: connect
option Network timeout
Service-->Service: Log error
option Credentials rejected
Service-->Service: Log different error
end
Ada juga kemungkinan tiada pilihan sama sekali.
Salin
Benamkan
critical Establish a connection to the DB
Service-->DB: connect
end
Blok kritikal ini juga boleh bersarang, setara dengan pernyataan par yang dilihat di atas.
Gangguan
Pemberhentian jujukan boleh ditunjukkan dalam proses, biasanya digunakan untuk memodelkan situasi luar biasa.
Ini dilakukan melalui simbol berikut:
Salin
Benamkan
break [something happened]
... statements ...
end
Sila rujuk contoh di bawah:
Salin
Benamkan
sequenceDiagram
Consumer-->API: Book something
API-->BookingService: Start booking process
break when the booking process fails
API-->Consumer: show failure
end
API-->BillingService: Start billing process
Sorotan latar belakang
Segi empat tepat latar belakang berwarna boleh ditetapkan untuk menyorot proses, dilakukan melalui simbol berikut:
Salin
Benamkan
rect COLOR
... content ...
end
Warna ditakrifkan menggunakan sintaks rgb dan rgba.
Salin
Benamkan
rect rgb(0, 255, 0)
... content ...
end
Salin
Benamkan
rect rgba(0, 0, 255, .1)
... content ...
end
Sila rujuk contoh di bawah:
Salin
Benamkan
sequenceDiagram
participant Alice
participant John
rect rgb(191, 178, 255)
note right of Alice: Alice calls John.
Alice->>+John: Hello John, how are you?
rect rgb(142, 182, 89)
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
end
John-->>-Alice: I feel great!
end
Alice ->>+ John: Did you want to go to the game tonight?
John -->>- Alice: Yeah! See you there.
Komen
Komen boleh dimasukkan dalam gambar rajah jujukan, dan editor akan mengabaikannya. Komen perlu menduduki satu baris sendiri, dan mesti bermula dengan dua tanda peratus %%. Sebarang teks dari permulaan komen hingga aksara baris baharu seterusnya akan dianggap sebagai komen, termasuk sebarang sintaks carta.
Salin
Benamkan
sequenceDiagram
Alice->>John: Hello John, how are you?
%% this is a comment
John-->>Alice: Great!
Pengekodan entiti untuk aksara pelepasan
Aksara boleh dilepaskan menggunakan sintaks berikut.
Salin
Benamkan
sequenceDiagram
A->>B: I #9829; you!
B->>A: I #9829; you #infin; times more!
Nombor yang diberikan ialah perpuluhan, jadi (#) boleh dikodkan sebagai (#35;), dan penggunaan nama aksara HTML juga disokong.
Oleh kerana titik bertindih boleh menggantikan aksara baris baharu untuk mentakrifkan penanda, apabila teks mesej mengandungi titik bertindih, anda perlu menggunakan (#59;).
Penomboran
Nombor jujukan boleh dilampirkan pada setiap anak panah dalam gambar rajah jujukan. Seperti yang ditunjukkan di bawah:
Salin
Benamkan
sequenceDiagram
autonumber
Alice->>John: Hello John, how are you?
loop HealthCheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts!
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!
Menu peserta
Peserta boleh mengandungi menu timbul, yang menyenaraikan pautan tersuai ke halaman luar. Contohnya, jika sesuatu peranan mewakili perkhidmatan rangkaian, pautan berguna mungkin termasuk pautan ke papan pemuka kesihatan perkhidmatan, repositori yang mengandungi kod perkhidmatan itu, atau pautan ke halaman wiki yang menerangkan perkhidmatan tersebut.
Ia boleh dikonfigurasikan dengan menambah satu atau lebih baris pautan, dengan format berikut:
Salin
Benamkan
link <actor>: <link-label> @ <link-url>
Salin
Benamkan
sequenceDiagram
participant Alice
participant John
link Alice: Dashboard @ https://dashboard.contoso.com/alice
link Alice: Wiki @ https://wiki.contoso.com/alice
link John: Dashboard @ https://dashboard.contoso.com/john
link John: Wiki @ https://wiki.contoso.com/john
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
Alice-)John: See you later!
Sintaks menu lanjutan
Terdapat sintaks lanjutan yang bergantung pada format JSON. Jika anda mahir dengan format JSON, ini juga boleh digunakan.
Ia boleh dikonfigurasikan dengan menambah baris pautan dalam format berikut:
Salin
Benamkan
links <actor>: <json-formatted link-name link-url pairs>
示例如下:
Salin
Benamkan
sequenceDiagram
participant Alice
participant John
links Alice: {"Dashboard": "https://dashboard.contoso.com/alice", "Wiki": "https://wiki.contoso.com/alice"}
links John: {"Dashboard": "https://dashboard.contoso.com/john", "Wiki": "https://wiki.contoso.com/john"}
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
Alice-)John: See you later!