ASCII Art
Il est possible de générer des diagrammes de séquence en utilisant l' ASCII Art.
@startuml
participant Bob
actor Alice
Bob -> Alice : hello
Alice -> Bob : Is it ok?
@enduml
Vous devez utiliser l'indicateur
-txt dans la ligne de commande, ou la balise format dans la tâche Ant
<target name="main">
<plantuml dir="./src" format="txt" />
</target>
Les fichiers générés utilisent l'extension .atxt. ("a" comme art ASCII : pour ne pas écraser les fichiers .txt existants !). Voici le résultat
,-.
`-'
/|\
,---. |
|Bob| / \
`-+-' Alice
| hello |
|-------------->|
| |
| Is it ok? |
|<- - - - - - - |
,-+-. Alice
|Bob| ,-.
`---' `-'
/|\
|
/ \
Vous pouvez contrôler le nombre maximum de caractères entre les participants en utilisant skinparam maxAsciiMessageLength. Cela peut être utile si vous devez limiter la largeur de votre ASCII Art.
@startuml
skinparam maxAsciiMessageLength 8
participant Bob
actor Alice
Bob -> Alice : hello
Alice -> Bob : Is it ok?
@enduml
ressemblera à
,-.
`-'
/|\
,---. |
|Bob| / \
`-+-' Alice
|hello |
|------>|
| |
Is it ok?
|<------|
,-+-. Alice
|Bob| ,-.
`---' `-'
/|\
|
/ \
Unicode
Le format par défaut de txt utilise uniquement des caractères ASCII ordinaires. Il est possible d'utiliser quelques caractères Unicode étendus pour obtenir un résultat légèrement meilleur. Vous devriez utiliser l'indicateur -utxt dans la ligne de commande, ou le format utxt dans la tâche Ant
┌─┐
║"│
└┬┘
┌┼┐
┌───┐ │
│Bob│ ┌┴┐
└─┬─┘ Alice
│ hello │
│──────────────>│
│ │
│ Is it ok? │
│<─ ─ ─ ─ ─ ─ ─ │
┌─┴─┐ Alice
│Bob│ ┌─┐
└───┘ ║"│
└┬┘
┌┼┐
│
┌┴┐
L'utilisation d'utxt présente deux inconvénients :
- Le résultat est encodé en UTF-8, ce qui pose parfois problème (passerelle de messagerie, éditeurs...)
- La police utilisée doit avoir les caractères étendus utilisés (comme Courier, Courier New...)
Complexe Diagram
You can even try complex example if you wish.
@startuml
'hide footbox
participant "Bob on\nseveral lines" as Bob
actor Alice
Bob -> Alice : hello
note right of Alice
this is a note
end note
Alice -> Bob : Is it ok\nwith a message that is\non several lines?
note right
This other note
should work
on several lines
end note
== This is a separation ==
Bob -> Last : Yes it works!
Last -> Last : working in progress
note left : this is\nanother note
Last --> Last : working in progress
Last --> Bob : done
opt dummy comment
Bob -> Last : Error\nOn\nSeveral\nLine
Last --> Bob : None
else
Last --> Bob : None
Last -> Bob : None
else other
Last -> Bob : None
note over Alice, Last
This is a long note
over Alice and Last
end note
Last -> Bob : None
Last -> Bob : None
end
@enduml
Résultat
,-.
`-'
,-------------. /|\
|Bob on | | ,----.
|several lines| / \ |Last|
`------+------' Alice `-+--'
| hello | |
|---------------------->| |
| | |
| | ,--------------!.
| | |this is a note|_\
| | `----------------'
|Is it ok | ,----------------!.
|with a message that is | |This other note |_\
|on several lines? | |should work |
|<----------------------| |on several lines |
| | `------------------'
| | |
| ======================== |
====================================== This is a separation =======================================
| ======================== |
| | |
| Yes it works! |
|-------------------------------------->|
| | |
| ,------------!. |----.
| |this is |_\| | working in progress
| |another note ||<---'
| `--------------'|
| | |- - .
| | | | working in progress
| | |< - '
| | |
| done | |
|<- - - - - - - - - - - - - - - - - - - |
| | |
______________________________________________________________________
! OPT / dummy comment | | !
!_____/ | | | !
! | | | !
! | Error | | !
! | On | | !
! | Several | | !
! | Line | | !
! |-------------------------------------->| !
! | | | !
! | None | | !
! |<- - - - - - - - - - - - - - - - - - - | !
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
! | | | !
! | None | | !
! |<- - - - - - - - - - - - - - - - - - - | !
! | | | !
! | None | | !
! |<--------------------------------------| !
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
! [other] | | | !
! | None | | !
! |<--------------------------------------| !
! | | | !
! | ,-------------------!. !
! | |This is a long note|_\ !
! | |over Alice and Last | !
! | `---------------------' !
! | None | | !
! |<--------------------------------------| !
! | | | !
! | None | | !
! |<--------------------------------------| !
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
,------+------. Alice ,-+--.
|Bob on | ,-. |Last|
|several lines| `-' `----'
`-------------' /|\
|
/ \
Même exemple en utilisant Unicode
┌─┐
║"│
└┬┘
┌─────────────┐ ┌┼┐
│Bob on │ │ ┌────┐
│several lines│ ┌┴┐ │Last│
└──────┬──────┘ Alice └─┬──┘
│ hello │ │
│──────────────────────>│ │
│ │ │
│ │ ╔═════════════╧══╗
│ │ ║this is a note ░║
│ │ ╚═════════════╤══╝
│Is it ok │ ╔═════════════╧════╗
│with a message that is │ ║This other note ░║
│on several lines? │ ║should work ║
│<──────────────────────│ ║on several lines ║
│ │ ╚═════════════╤════╝
│ │ │
│ ╔════════╧═════════════╗ │
══════════════════════╪══════════════╣ This is a separation ╠═╪════════════════════════════════════
│ ╚════════╤═════════════╝ │
│ │ │
│ Yes it works! │
│──────────────────────────────────────>│
│ │ │
│ ╔══════════════╗│────┐
│ ║this is ░║│ │ working in progress
│ ║another note ║│<───┘
│ ╚══════════════╝│
│ │ │─ ─ ┐
│ │ │ | working in progress
│ │ │< ─ ┘
│ │ │
│ done │ │
│<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │
│ │ │
╔══════╤═════════╪═══════════════════════╪═══════════════╪════════════╗
║ OPT │ dummy comment │ │ ║
╟──────┘ │ │ │ ║
║ │ │ │ ║
║ │ Error │ │ ║
║ │ On │ │ ║
║ │ Several │ │ ║
║ │ Line │ │ ║
║ │──────────────────────────────────────>│ ║
║ │ │ │ ║
║ │ None │ │ ║
║ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ ║
╠════════════════╪═══════════════════════╪═══════════════╪════════════╣
║ │ │ │ ║
║ │ None │ │ ║
║ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ ║
║ │ │ │ ║
║ │ None │ │ ║
║ │<──────────────────────────────────────│ ║
╠════════════════╪═══════════════════════╪═══════════════╪════════════╣
║ [other] │ │ │ ║
║ │ None │ │ ║
║ │<──────────────────────────────────────│ ║
║ │ │ │ ║
║ │ ╔══╧═══════════════╧══╗ ║
║ │ ║This is a long note ░║ ║
║ │ ║over Alice and Last ║ ║
║ │ ╚══╤═══════════════╤══╝ ║
║ │ None │ │ ║
║ │<──────────────────────────────────────│ ║
║ │ │ │ ║
║ │ None │ │ ║
║ │<──────────────────────────────────────│ ║
╚════════════════╪═══════════════════════╪═══════════════╪════════════╝
┌──────┴──────┐ Alice ┌─┴──┐
│Bob on │ ┌─┐ │Last│
│several lines│ ║"│ └────┘
└─────────────┘ └┬┘
┌┼┐
│
┌┴┐