codemirror-lang-mermaid
Version:
Mermaid language support for CodeMirror
410 lines (277 loc) • 10.5 kB
Plain Text
# Sequence
sequenceDiagram
==>
SequenceDiagram(DiagramName)
# NodeText and MessageText
sequenceDiagram
Alice->>John: Hello John, how are you?
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1)
# Extra Spacing between NodeText and Arrow
sequenceDiagram
Al ice -) John: Hello John, how are you?
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1)
# Line Break between NodeText and Arrow
sequenceDiagram
Alice ->>
John: Hello John, how are you?
John ->>
Alice: Great!
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1)
# Participant
sequenceDiagram
participant Alice
participant Bob
Alice->>Bob: Hi Bob
Bob->>Alice: Hi Alice
==>
SequenceDiagram(DiagramName,Participant,NodeText,Participant,NodeText,NodeText,Arrow,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1)
# Actor
sequenceDiagram
actor Alice
actor Bob
Alice->>Bob: Hi Bob
Bob->>Alice: Hi Alice
==>
SequenceDiagram(DiagramName,Actor,NodeText,Actor,NodeText,NodeText,Arrow,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1)
# Alias
sequenceDiagram
participant A as Alice
participant J as John
A->>J: Hello John, how are you?
J->>A: Great!
==>
SequenceDiagram(DiagramName,Participant,NodeText,As,NodeText,Participant,NodeText,As,NodeText,NodeText,Arrow,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1)
# Actor Creation and Destruction
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
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1,Create,Participant,NodeText,NodeText,Arrow,NodeText,MessageText1,Create,Actor,NodeText,As,NodeText,NodeText,Arrow,NodeText,MessageText1,Destroy,NodeText,NodeText,Arrow,NodeText,MessageText1,Destroy,NodeText,NodeText,Arrow,NodeText,MessageText1)
# Grouping / Box
sequenceDiagram
box Purple 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 Charly ?
B->>C: Hello Charly, how are you?
==>
SequenceDiagram(DiagramName,Keyword,MessageText2,Participant,NodeText,Participant,NodeText,End,Keyword,MessageText2,Participant,NodeText,Participant,NodeText,End,NodeText,Arrow,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1)
# Arrow (->)
sequenceDiagram
Alice->John: Hello John, how are you?
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1)
# Arrow (-->)
sequenceDiagram
Alice-->John: Hello John, how are you?
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1)
# Arrow (->>)
sequenceDiagram
Alice->>John: Hello John, how are you?
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1)
# Arrow (-->>)
sequenceDiagram
Alice-->>John: Hello John, how are you?
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1)
# Arrow (-x)
sequenceDiagram
Alice-xJohn: Hello John, how are you?
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1)
# Arrow (--x)
sequenceDiagram
Alice--xJohn: Hello John, how are you?
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1)
# Arrow (-))
sequenceDiagram
Alice-)John: Hello John, how are you?
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1)
# Arrow (--))
sequenceDiagram
Alice--)John: Hello John, how are you?
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1)
# Activations
sequenceDiagram
Alice->>John: Hello John, how are you?
activate John
John-->>Alice: Great!
deactivate John
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1,Activate,NodeText,NodeText,Arrow,NodeText,MessageText1,Deactivate,NodeText)
# Activations with Arrow Suffix
sequenceDiagram
Alice->>+John: Hello John, how are you?
John-->>-Alice: Great!
==>
SequenceDiagram(DiagramName,NodeText,Arrow,ArrowSuffix,NodeText,MessageText1,NodeText,Arrow,ArrowSuffix,NodeText,MessageText1)
# Note and Position
sequenceDiagram
participant John
Note right of John: Text in note
==>
SequenceDiagram(DiagramName,Participant,NodeText,Note,Position,NodeText,MessageText1)
# Note and Position with multiple Nodes
sequenceDiagram
Alice->John: Hello John, how are you?
Note over Alice,John: A typical interaction
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1,Note,Position,NodeText,NodeText,MessageText1)
# Loop
sequenceDiagram
Alice->John: Hello John, how are you?
loop Every minute
John-->Alice: Great!
end
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1,Keyword,MessageText2,NodeText,Arrow,NodeText,MessageText1,End)
# Alt, Else, Opt
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
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1,Keyword,MessageText2,NodeText,Arrow,NodeText,MessageText1,Keyword,MessageText2,NodeText,Arrow,NodeText,MessageText1,End,Keyword,MessageText2,NodeText,Arrow,NodeText,MessageText1,End)
# Parallel (par, and)
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!
==>
SequenceDiagram(DiagramName,Keyword,MessageText2,NodeText,Arrow,NodeText,MessageText1,Keyword,MessageText2,NodeText,Arrow,NodeText,MessageText1,End,NodeText,Arrow,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1)
# Nested Parallel (par, and)
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
==>
SequenceDiagram(DiagramName,Keyword,MessageText2,NodeText,Arrow,NodeText,MessageText1,Keyword,MessageText2,NodeText,Arrow,NodeText,MessageText1,Keyword,MessageText2,NodeText,Arrow,NodeText,MessageText1,Keyword,MessageText2,NodeText,Arrow,NodeText,MessageText1,End,End)
# Critical Region
sequenceDiagram
critical Establish a connection to the DB
Service-->DB: connect
end
==>
SequenceDiagram(DiagramName,Keyword,MessageText2,NodeText,Arrow,NodeText,MessageText1,End)
# Critical Region with Options
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
==>
SequenceDiagram(DiagramName,Keyword,MessageText2,NodeText,Arrow,NodeText,MessageText1,Keyword,MessageText2,NodeText,Arrow,NodeText,MessageText1,Keyword,MessageText2,NodeText,Arrow,NodeText,MessageText1,End)
# Break
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
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1,Keyword,MessageText2,NodeText,Arrow,NodeText,MessageText1,End,NodeText,Arrow,NodeText,MessageText1)
# Background Highlighting (rect)
sequenceDiagram
participant Alice
participant John
rect rgb(191, 223, 255)
note right of Alice: Alice calls John.
Alice->>+John: Hello John, how are you?
rect rgb(200, 150, 255)
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.
==>
SequenceDiagram(DiagramName,Participant,NodeText,Participant,NodeText,Keyword,MessageText2,Note,Position,NodeText,MessageText1,NodeText,Arrow,ArrowSuffix,NodeText,MessageText1,Keyword,MessageText2,NodeText,Arrow,ArrowSuffix,NodeText,MessageText1,NodeText,Arrow,ArrowSuffix,NodeText,MessageText1,End,NodeText,Arrow,ArrowSuffix,NodeText,MessageText1,End,NodeText,Arrow,ArrowSuffix,NodeText,MessageText1,NodeText,Arrow,ArrowSuffix,NodeText,MessageText1)
# LineComment
sequenceDiagram
Alice->>John: Hello John, how are you?
%% this is a comment
John-->>Alice: Great!
==>
SequenceDiagram(DiagramName,NodeText,Arrow,NodeText,MessageText1,LineComment,NodeText,Arrow,NodeText,MessageText1)
# Sequence Numbers (autonumber)
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!
==>
SequenceDiagram(DiagramName,Autonumber,NodeText,Arrow,NodeText,MessageText1,Keyword,MessageText2,NodeText,Arrow,NodeText,MessageText1,End,Note,Position,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1)
# Actor Menus (link)
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!
==>
SequenceDiagram(DiagramName,Participant,NodeText,Participant,NodeText,Link,NodeText,MessageText1,Link,NodeText,MessageText1,Link,NodeText,MessageText1,Link,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1)
# Actor Menus (links)
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!
==>
SequenceDiagram(DiagramName,Participant,NodeText,Participant,NodeText,Link,NodeText,MessageText1,Link,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1,NodeText,Arrow,NodeText,MessageText1)