Activity Diagram
Activity diagrams are graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. Wikipedia
Introduction
The Activity Diagram is inspired by PlantUML's Activity Diagram Beta Syntax.
Simple Action
Simple action starts with : and ends with ;, with description between them.
activityDiagram title: Activity Diagram Simple Action :Action 1; :Action 2;
start/end keyword
You can use start and end keyword to denote the beginning and the end of a diagram.
activityDiagram start :No pain; :No gain; end
Conditional
You can use if, then and else to put tests and branches. Labels can be provided using parentheses.
if (...) then (...)
activityDiagram
if (diagram registered ?) then
:get implementation;
else (no)
:print error;
endif
While Loop
You can use while and endwhile to make while loops.
And it's possibleto provide a label after the endwhile keyword, or using the is keyword to provide label for the link.
activityDiagram
start
while (data available)
:read data;
:generate diagrams;
endwhile
while (met another test) is (yes)
:do something;
endwhile (done)
end
Repeat Loop
You can use repeat and repeatwhile to make repeat loops.
activityDiagram
start
repeat
:read data;
:generate diagrams;
repeatwhile (data available ?)
end
activityDiagram
start
repeat :prepare for each loop;
:read data;
:generate diagrams;
repeatwhile (there is more data ?) is (alright then) not (nope)
end
Switch And Case
You can use switch, case and endswitch to pu switch sentences.
activityDiagram
switch (test ?)
case ( condition A )
:Text 1;
case ( condition B )
:Text 2;
case ( condition C )
:Text 3;
endswitch
Grouping
You can use several keywords to make groups:
grouppartition
And it's possible to add color #\d{6} after the grouping keyword to specify background color.
activityDiagram
start
partition Init {
:Read config;
group #88bbf4 "Inner Process" {
:Init themes;
:Init symbols;
}
}
end
Parallel processing (fork)
You can use fork / forkagain / endfork / endmerge to denote parallel processing.
- Simple fork.
activityDiagram
start
fork
:Action 1;
forkagain
:Action 2;
forkagain
:Action 3;
endfork
end
- With
endmerge.
activityDiagram
start
fork
:Action 1;
forkagain
:Action 2;
endmerge
end
- Another example of combining conditional and fork.
activityDiagram
start
if (multiprocessor?) then
fork
:Action 1;
forkagain
:Action 2;
endfork
else (monoproc)
:Action 1;
:Action 2;
endif
end
Note
Add @note, placement, and participant names after action to add a note.
- placement keywords
leftandright. - note can be multiline, in this case you need to add
@end_noteto end it.
activityDiagram
start
:Some action;
@note right: note on the right
if (diagram registered ?) then
:get implementation;
else (no)
:print error;
endif
@start_note left
left multiline note,
no colon after placement
@end_note
end
Arrow Label
In the next line of action, you can add label to the arrow with the arrow label notation.
Currently only single line text is supported.
-> multiline description;
activityDiagram start :Action 1; -> Hey there; :Action 2; end
Override config
You can override diagarm config through @param directive.
All available configs can be seen in the Config page.
activityDiagram
@param actionBackground #61afef
@param textColor #fff
@param noteTextColor #purple
@param edgeColor #143C9A
@param edgeType curved
@param {
keywordBackground #143C9A
labelTextColor #143C9A
}
start
partition Init {
:Read config;
@note right: comment
}
while (data available) is (yes)
:read data;
endwhile
end