Откройте для себя основные команды, универсальные для всех типов диаграмм в PlantUML. Эти команды позволяют придать диаграммам многогранность и индивидуальность. Ниже мы разделим эти общие команды на три основные категории:
Глобальные элементы
- Комментарии: Добавляют примечания или пояснения в сценарий диаграммы для передачи дополнительной информации или напоминания о необходимости дальнейших изменений.
- Примечания: Включение дополнительной информации непосредственно в диаграмму для облегчения понимания или выделения важных аспектов.
- Управление размерами: Настройте размеры различных элементов в соответствии с вашими предпочтениями, чтобы диаграмма получилась сбалансированной и пропорциональной.
- Заголовок и подписи: Определите подходящий заголовок и добавьте подписи, чтобы прояснить контекст или аннотировать определенные части диаграммы.
Описание синтаксиса Creole
Используйте
возможности синтаксиса Creole для дальнейшего форматирования содержимого любого элемента диаграммы. Этот стиль вики-разметки позволяет:
- Форматирование текста: Настраивать внешний вид текста с помощью различных стилей и выравниваний.
- Списки: Создавать упорядоченные и неупорядоченные списки для удобного представления информации.
- Ссылки: Встраивать гиперссылки для быстрого перехода к нужным ресурсам.
Команда управления стилями
С помощью команды
style
можно полностью контролировать
стиль представления элементов диаграммы. С ее помощью можно:
- Определить стили: Задать единые стили для элементов, чтобы сохранить целостность визуальной темы.
- Настроить цвета: Выбор определенных цветов для различных элементов для повышения визуальной привлекательности и создания четкой классификации.
Используйте эти команды для создания функциональных и эстетически привлекательных диаграмм, настраивая каждый элемент в соответствии с вашими требованиями.
Простой комментарий
Все записи начинающиеся с "одинарной кавычки" - это комментарии.
@startuml
'Для однострочного комментария используется одиночный апостроф
@enduml
Block comment
Block comment use C-style comments except that instead of
*
you use an apostrophe
'
,
then you can also put comments on several lines using
/'
to start and
'/
to end.
@startuml
/'
many lines comments
here
'/
@enduml
[Ref. QA-1353]
Then you can also put block comment on the same line, as:
🎉 Copied!
|
@startuml
/' case 1 '/ A -> B : AB-First step
B -> C : BC-Second step
/' case 2 '/ D -> E : DE-Third step
@enduml
|
[Ref. QA-3906 and QA-3910]
[Ref. GH-214]
WARNING
This translation need to be updated. WARNING
You can use the
scale
command to zoom the generated image.
You can use either
a number or
a fraction to define the scale factor.
You can also specify either
width
or
height
(
in pixel).
And you can also give both
width
and
height
: the image is scaled to fit inside the specified dimension.
scale 1.5
scale 2/3
scale 200 width
scale 200 height
scale 200*100
scale max 300*200
scale max 1024 width
scale max 800 height
🎉 Copied!
|
@startuml
scale 180*90
Bob->Alice : hello
@enduml
|
The
title
keywords is used to put a title.
You can add newline using
\n
in the title description.
Some skinparam settings are available to put borders on the title.
🎉 Copied!
|
@startuml
skinparam titleBorderRoundCorner 15
skinparam titleBorderThickness 2
skinparam titleBorderColor red
skinparam titleBackgroundColor Aqua-CadetBlue
title Simple communication\nexample
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
@enduml
|
You can use
creole formatting in the title.
You can also define title on several lines using
title
and
end title
keywords.
🎉 Copied!
|
@startuml
title
<u>Simple</u> communication example
on <i>several</i> lines and using <back:cadetblue>creole tags</back>
end title
Alice -> Bob: Authentication Request
Bob -> Alice: Authentication Response
@enduml
|
There is also a
caption
keyword to put a caption under the diagram.
🎉 Copied!
|
@startuml
caption figure 1
Alice -> Bob: Hello
@enduml
|
You can use the commands
header
or
footer
to
add a footer or a header on any generated diagram.
You can optionally specify if you want a
center
,
left
or
right
footer/header, by adding a keyword.
As with title, it is possible to define a header or a footer on
several lines.
It is also possible to put some HTML into the header or footer.
🎉 Copied!
|
@startuml
Alice -> Bob: Authentication Request
header
<font color=red>Warning:</font>
Do not use in production.
endheader
center footer Generated for demonstration
@enduml
|
The
legend
and
end legend
are keywords is used to put a legend.
You can optionally specify to have
left
,
right
,
top
,
bottom
or
center
alignment for the legend.
🎉 Copied!
|
@startuml
Alice -> Bob : Hello
legend right
Short
legend
endlegend
@enduml
|
🎉 Copied!
|
@startuml
Alice -> Bob : Hello
legend top left
Short
legend
endlegend
@enduml
|
Activity
🎉 Copied!
|
@startuml
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
start
:Hello world;
:This is defined on
several **lines**;
stop
@enduml
|
Archimate
🎉 Copied!
|
@startuml
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
archimate #Technology "VPN Server" as vpnServerA <<technology-device>>
rectangle GO #lightgreen
rectangle STOP #red
rectangle WAIT #orange
@enduml
|
Class
🎉 Copied!
|
@startuml
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
a -- b
@enduml
|
Component, Deployment, Use-Case
🎉 Copied!
|
@startuml
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
node n
(u) -> [c]
@enduml
|
Gantt project planning
🎉 Copied!
|
@startgantt
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
[t] lasts 5 days
@endgantt
|
DONE
[(Header, footer) corrected on V1.2020.18]
Object
🎉 Copied!
|
@startuml
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
object user {
name = "Dummy"
id = 123
}
@enduml
|
MindMap
🎉 Copied!
|
@startmindmap
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
* r
** d1
** d2
@endmindmap
|
Network (nwdiag)
🎉 Copied!
|
@startuml
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
nwdiag {
network inet {
web01 [shape = cloud]
}
}
@enduml
|
Sequence
🎉 Copied!
|
@startuml
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
a->b
@enduml
|
State
🎉 Copied!
|
@startuml
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
[*] --> State1
State1 -> State2
@enduml
|
Timing
🎉 Copied!
|
@startuml
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
robust "Web Browser" as WB
concise "Web User" as WU
@0
WU is Idle
WB is Idle
@100
WU is Waiting
WB is Processing
@300
WB is Waiting
@enduml
|
Work Breakdown Structure (WBS)
🎉 Copied!
|
@startwbs
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
* r
** d1
** d2
@endwbs
|
DONE
[Corrected on V1.2020.17]
Wireframe (SALT)
🎉 Copied!
|
@startsalt
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
{+
Login | "MyName "
Password | "**** "
[Cancel] | [ OK ]
}
@endsalt
|
DONE
[Corrected on V1.2020.18]
DONE
FYI:
- all is only good for
Sequence diagram
title
, caption
and legend
are good for all diagrams except for salt diagram
FIXME
🚩
- Now (test on 1.2020.18-19)
header
, footer
are not good for all other diagrams except only for Sequence diagram
.
To be fix; Thanks
FIXME
Here are tests of
title
,
header
,
footer
,
caption
or
legend
on all the diagram with the debug style:
<style>
title {
HorizontalAlignment right
FontSize 24
FontColor blue
}
header {
HorizontalAlignment center
FontSize 26
FontColor purple
}
footer {
HorizontalAlignment left
FontSize 28
FontColor red
}
legend {
FontSize 30
BackGroundColor yellow
Margin 30
Padding 50
}
caption {
FontSize 32
}
</style>
Activity
🎉 Copied!
|
@startuml
<style>
title {
HorizontalAlignment right
FontSize 24
FontColor blue
}
header {
HorizontalAlignment center
FontSize 26
FontColor purple
}
footer {
HorizontalAlignment left
FontSize 28
FontColor red
}
legend {
FontSize 30
BackGroundColor yellow
Margin 30
Padding 50
}
caption {
FontSize 32
}
</style>
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
start
:Hello world;
:This is defined on
several **lines**;
stop
@enduml
|
Archimate
🎉 Copied!
|
@startuml
<style>
title {
HorizontalAlignment right
FontSize 24
FontColor blue
}
header {
HorizontalAlignment center
FontSize 26
FontColor purple
}
footer {
HorizontalAlignment left
FontSize 28
FontColor red
}
legend {
FontSize 30
BackGroundColor yellow
Margin 30
Padding 50
}
caption {
FontSize 32
}
</style>
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
archimate #Technology "VPN Server" as vpnServerA <<technology-device>>
rectangle GO #lightgreen
rectangle STOP #red
rectangle WAIT #orange
@enduml
|
Class
🎉 Copied!
|
@startuml
<style>
title {
HorizontalAlignment right
FontSize 24
FontColor blue
}
header {
HorizontalAlignment center
FontSize 26
FontColor purple
}
footer {
HorizontalAlignment left
FontSize 28
FontColor red
}
legend {
FontSize 30
BackGroundColor yellow
Margin 30
Padding 50
}
caption {
FontSize 32
}
</style>
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
a -- b
@enduml
|
Component, Deployment, Use-Case
🎉 Copied!
|
@startuml
<style>
title {
HorizontalAlignment right
FontSize 24
FontColor blue
}
header {
HorizontalAlignment center
FontSize 26
FontColor purple
}
footer {
HorizontalAlignment left
FontSize 28
FontColor red
}
legend {
FontSize 30
BackGroundColor yellow
Margin 30
Padding 50
}
caption {
FontSize 32
}
</style>
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
node n
(u) -> [c]
@enduml
|
Gantt project planning
🎉 Copied!
|
@startgantt
<style>
title {
HorizontalAlignment right
FontSize 24
FontColor blue
}
header {
HorizontalAlignment center
FontSize 26
FontColor purple
}
footer {
HorizontalAlignment left
FontSize 28
FontColor red
}
legend {
FontSize 30
BackGroundColor yellow
Margin 30
Padding 50
}
caption {
FontSize 32
}
</style>
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
[t] lasts 5 days
@endgantt
|
Object
🎉 Copied!
|
@startuml
<style>
title {
HorizontalAlignment right
FontSize 24
FontColor blue
}
header {
HorizontalAlignment center
FontSize 26
FontColor purple
}
footer {
HorizontalAlignment left
FontSize 28
FontColor red
}
legend {
FontSize 30
BackGroundColor yellow
Margin 30
Padding 50
}
caption {
FontSize 32
}
</style>
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
object user {
name = "Dummy"
id = 123
}
@enduml
|
MindMap
🎉 Copied!
|
@startmindmap
<style>
title {
HorizontalAlignment right
FontSize 24
FontColor blue
}
header {
HorizontalAlignment center
FontSize 26
FontColor purple
}
footer {
HorizontalAlignment left
FontSize 28
FontColor red
}
legend {
FontSize 30
BackGroundColor yellow
Margin 30
Padding 50
}
caption {
FontSize 32
}
</style>
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
* r
** d1
** d2
@endmindmap
|
Network (nwdiag)
🎉 Copied!
|
@startuml
<style>
title {
HorizontalAlignment right
FontSize 24
FontColor blue
}
header {
HorizontalAlignment center
FontSize 26
FontColor purple
}
footer {
HorizontalAlignment left
FontSize 28
FontColor red
}
legend {
FontSize 30
BackGroundColor yellow
Margin 30
Padding 50
}
caption {
FontSize 32
}
</style>
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
nwdiag {
network inet {
web01 [shape = cloud]
}
}
@enduml
|
Sequence
🎉 Copied!
|
@startuml
<style>
title {
HorizontalAlignment right
FontSize 24
FontColor blue
}
header {
HorizontalAlignment center
FontSize 26
FontColor purple
}
footer {
HorizontalAlignment left
FontSize 28
FontColor red
}
legend {
FontSize 30
BackGroundColor yellow
Margin 30
Padding 50
}
caption {
FontSize 32
}
</style>
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
a->b
@enduml
|
State
🎉 Copied!
|
@startuml
<style>
title {
HorizontalAlignment right
FontSize 24
FontColor blue
}
header {
HorizontalAlignment center
FontSize 26
FontColor purple
}
footer {
HorizontalAlignment left
FontSize 28
FontColor red
}
legend {
FontSize 30
BackGroundColor yellow
Margin 30
Padding 50
}
caption {
FontSize 32
}
</style>
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
[*] --> State1
State1 -> State2
@enduml
|
Timing
🎉 Copied!
|
@startuml
<style>
title {
HorizontalAlignment right
FontSize 24
FontColor blue
}
header {
HorizontalAlignment center
FontSize 26
FontColor purple
}
footer {
HorizontalAlignment left
FontSize 28
FontColor red
}
legend {
FontSize 30
BackGroundColor yellow
Margin 30
Padding 50
}
caption {
FontSize 32
}
</style>
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
robust "Web Browser" as WB
concise "Web User" as WU
@0
WU is Idle
WB is Idle
@100
WU is Waiting
WB is Processing
@300
WB is Waiting
@enduml
|
Work Breakdown Structure (WBS)
🎉 Copied!
|
@startwbs
<style>
title {
HorizontalAlignment right
FontSize 24
FontColor blue
}
header {
HorizontalAlignment center
FontSize 26
FontColor purple
}
footer {
HorizontalAlignment left
FontSize 28
FontColor red
}
legend {
FontSize 30
BackGroundColor yellow
Margin 30
Padding 50
}
caption {
FontSize 32
}
</style>
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
* r
** d1
** d2
@endwbs
|
Wireframe (SALT)
FIXME
Fix all
(title
, caption
, legend
, header
, footer
) for salt.
FIXME
🎉 Copied!
|
@startsalt
<style>
title {
HorizontalAlignment right
FontSize 24
FontColor blue
}
header {
HorizontalAlignment center
FontSize 26
FontColor purple
}
footer {
HorizontalAlignment left
FontSize 28
FontColor red
}
legend {
FontSize 30
BackGroundColor yellow
Margin 30
Padding 50
}
caption {
FontSize 32
}
</style>
@startsalt
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
{+
Login | "MyName "
Password | "**** "
[Cancel] | [ OK ]
}
@endsalt
|
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
Alice->Bob : Hello
@enduml
|
[Ref. QA-4019 and Issue#148]
Activity
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
start
:Hello world;
:This is defined on
several **lines**;
stop
@enduml
|
Archimate
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
archimate #Technology "VPN Server" as vpnServerA <<technology-device>>
rectangle GO #lightgreen
rectangle STOP #red
rectangle WAIT #orange
@enduml
|
FIXME
🚩
Cropped on the top and on the left
FIXME
Class
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
a -- b
@enduml
|
FIXME
🚩
Cropped on the top and on the left
FIXME
Component, Deployment, Use-Case
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
node n
(u) -> [c]
@enduml
|
FIXME
🚩
Cropped on the top and on the left
FIXME
Gantt project planning
🎉 Copied!
|
@startgantt
mainframe This is a **mainframe**
[t] lasts 5 days
@endgantt
|
FIXME
🚩
Cropped on the top and on the left
FIXME
Object
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
object user {
name = "Dummy"
id = 123
}
@enduml
|
FIXME
🚩
Cropped on the top!
FIXME
MindMap
🎉 Copied!
|
@startmindmap
mainframe This is a **mainframe**
* r
** d1
** d2
@endmindmap
|
Network (nwdiag)
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
nwdiag {
network inet {
web01 [shape = cloud]
}
}
@enduml
|
FIXME
🚩
Cropped on the top!
FIXME
Sequence
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
a->b
@enduml
|
State
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
[*] --> State1
State1 -> State2
@enduml
|
FIXME
🚩
Cropped on the top and on the left
FIXME
Timing
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
robust "Web Browser" as WB
concise "Web User" as WU
@0
WU is Idle
WB is Idle
@100
WU is Waiting
WB is Processing
@300
WB is Waiting
@enduml
|
Work Breakdown Structure (WBS)
🎉 Copied!
|
@startwbs
mainframe This is a **mainframe**
* r
** d1
** d2
@endwbs
|
Wireframe (SALT)
🎉 Copied!
|
@startsalt
mainframe This is a **mainframe**
{+
Login | "MyName "
Password | "**** "
[Cancel] | [ OK ]
}
@endsalt
|
Activity
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
start
:Hello world;
:This is defined on
several **lines**;
stop
@enduml
|
Archimate
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
archimate #Technology "VPN Server" as vpnServerA <<technology-device>>
rectangle GO #lightgreen
rectangle STOP #red
rectangle WAIT #orange
@enduml
|
Class
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
a -- b
@enduml
|
Component, Deployment, Use-Case
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
node n
(u) -> [c]
@enduml
|
Gantt project planning
🎉 Copied!
|
@startgantt
mainframe This is a **mainframe**
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
[t] lasts 5 days
@endgantt
|
Object
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
object user {
name = "Dummy"
id = 123
}
@enduml
|
MindMap
🎉 Copied!
|
@startmindmap
mainframe This is a **mainframe**
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
* r
** d1
** d2
@endmindmap
|
Network (nwdiag)
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
nwdiag {
network inet {
web01 [shape = cloud]
}
}
@enduml
|
Sequence
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
a->b
@enduml
|
State
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
[*] --> State1
State1 -> State2
@enduml
|
Timing
🎉 Copied!
|
@startuml
mainframe This is a **mainframe**
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
robust "Web Browser" as WB
concise "Web User" as WU
@0
WU is Idle
WB is Idle
@100
WU is Waiting
WB is Processing
@300
WB is Waiting
@enduml
|
Work Breakdown Structure (WBS)
🎉 Copied!
|
@startwbs
mainframe This is a **mainframe**
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
* r
** d1
** d2
@endwbs
|
Wireframe (SALT)
🎉 Copied!
|
@startsalt
mainframe This is a **mainframe**
header some header
footer some footer
title My title
caption This is caption
legend
The legend
end legend
{+
Login | "MyName "
Password | "**** "
[Cancel] | [ OK ]
}
@endsalt
|