Créole

Le créole est un langage de balisage léger commun à divers wikis. Un moteur créole léger est intégré à PlantUML afin de disposer d'un moyen normalisé d'émettre du texte stylé.

Tous les diagrammes prennent en charge cette syntaxe.

Notez que la compatibilité avec la syntaxe HTML est préservée.

Texte mis en évidence

🎉 Copied!
@startuml
Alice -> Bob : hello --there-- here
... Some ~~long delay~~ ...
Bob -> Alice : ok
note left
  This is **bold**
  This is //italics//
  This is ""monospaced""
  This is --stricken-out--
  This is __underlined__
  This is ~~wave-underlined~~
end note
@enduml

Listes

Vous pouvez utiliser des listes numérotées et à puces dans le texte des nœuds, les notes, etc.

FIXME
🚩 Vous ne pouvez pas tout à fait mélanger les chiffres et les puces dans une liste et sa sous-liste

🎉 Copied!
@startuml
object demo {
  * Bullet list
  * Second item
}
note left
  * Bullet list
  * Second item
  ** Sub item
end note

legend
  # Numbered list
  # Second item
  ## Sub item
  ## Another sub item
        * Can't quite mix 
        * Numbers and bullets
  # Third item
end legend
@enduml

Caractère d'échappement

Vous pouvez utiliser le tilde ~ pour échapper les caractères Créoles spéciaux.

🎉 Copied!
@startuml
object demo {
  This is not ~___underscored__.
  This is not ~""monospaced"".
}
@enduml

Lignes horizontales

🎉 Copied!
@startuml
database DB1 as "
You can have horizontal line
----
Or double line
====
Or strong line
____
Or dotted line
..My title..
Enjoy!
"
note right
  This is working also in notes
  You can also add title in all these lines
  ==Title==
  --Another title--
end note

@enduml

Entêtes

🎉 Copied!
@startuml
usecase UC1 as "
= Extra-large heading
Some text
== Large heading
Other text
=== Medium heading
Information
....
==== Small heading"
@enduml

Tag HTML

Certains tag HTML sont encore fonctionnels:
  • <b> pour du texte en gras
  • <u> ou <u:#AAAAAA> ou <u:[[color|colorName]]> pour souligner
  • <i> pour de l'italique
  • <s> ou <s:#AAAAAA> ou <s:[[color|colorName]]> pour barrer du texte
  • <w> ou <w:#AAAAAA> ou <w:[[color|colorName]]> pour souligner en vague
  • <color:#AAAAAA> ou <color:[[color|colorName]]> pour la couleur
  • <back:#AAAAAA> ou <back:[[color|colorName]]> pour la couleur de fond
  • <size:nn> pour changer la taille des caractères
  • <img:file> : le fichier doit être accessible sur le système de fichier
  • <img:http://plantuml.com/logo3.png> : l'URL doit être accessible

🎉 Copied!
@startuml
:* You can change <color:red>text color</color>
* You can change <back:cadetblue>background color</back>
* You can change <size:18>size</size>
* You use <u>legacy</u> <b>HTML <i>tag</i></b>
* You use <u:red>color</u> <s:green>in HTML</s> <w:#0000FF>tag</w>
----
* Use image : <img:http://plantuml.com/logo3.png>
;
@enduml

Common HTML element

🎉 Copied!
@startuml
hide footbox
note over Source
<code>
  This is <b>bold</b>
  This is <i>italics</i>
  This is <font:monospaced>monospaced</font>
  This is <s>stroked</s>
  This is <u>underlined</u>
  This is <w>waved</w>
  This is <s:green>stroked</s>
  This is <u:red>underlined</u>
  This is <w:#0000FF>waved</w>
  -- other examples --
  This is <color:blue>Blue</color>
  This is <back:orange>Orange background</back>
  This is <size:20>big</size>
</code>
end note
/note over Output
  This is <b>bold</b>
  This is <i>italics</i>
  This is <font:monospaced>monospaced</font>
  This is <s>stroked</s>
  This is <u>underlined</u>
  This is <w>waved</w>
  This is <s:green>stroked</s>
  This is <u:red>underlined</u>
  This is <w:#0000FF>waved</w>
  -- other examples --
  This is <color:blue>Blue</color>
  This is <back:orange>Orange background</back>
  This is <size:20>big</size>
end note
@enduml

Subscript and Superscript element [sub, sup]

🎉 Copied!
@startuml
:<code>
This is the "caffeine" molecule: C<sub>8</sub>H<sub>10</sub>N<sub>4</sub>O<sub>2</sub>
</code>
This is the "caffeine" molecule: C<sub>8</sub>H<sub>10</sub>N<sub>4</sub>O<sub>2</sub>
----
<code>
This is the Pythagorean theorem: a<sup>2</sup> + b<sup>2</sup> = c<sup>2</sup>
</code>
This is the Pythagorean theorem: a<sup>2</sup> + b<sup>2</sup> = c<sup>2</sup>;
@enduml

Code

Vous pouvez utiliser <code> pour afficher du code de programmation dans votre diagramme (désolé, la coloration syntaxique n'est pas encore supportée)

🎉 Copied!
@startuml
Alice -> Bob : hello
note right
<code>
main() {
  printf("Hello world");
}
</code>
end note
@enduml

C'est particulièrement utile pour illustrer un code PlantUML et le rendu qui en résulte

🎉 Copied!
@startuml
Alice -> Bob : hello
note left
<code>
  This is **bold**
  This is //italics//
  This is ""monospaced""
  This is --stricken-out--
  This is __underlined__
  This is ~~wave-underlined~~
  --test Unicode and icons--
  This is <U+221E> long
  This is a <&code> icon
</code>
end note
note right
  This is **bold**
  This is //italics//
  This is ""monospaced""
  This is --stricken-out--
  This is __underlined__
  This is ~~wave-underlined~~
  --test Unicode and icons--
  This is <U+221E> long
  This is a <&code> icon
end note
@enduml

Tableau

Créer un tableau

Il est possible de construire un tableau, avec le séparateur |

🎉 Copied!
@startuml
skinparam titleFontSize 14
title
  Example of simple table
  |= |= table |= header |
  | a | table | row |
  | b | table | row |
end title
[*] --> State1
@enduml

Ajouter une couleur sur les lignes ou les cellules

Vous pouvez spécifier les couleurs de fond des lignes et des cellules

🎉 Copied!
@startuml
start
:Here is the result
|= |= table |= header |
| a | table | row |
|<#FF8080> red |<#80FF80> green |<#8080FF> blue |
<#yellow>| b | table | row |;
@enduml

Ajouter une couleur sur la bordure et le texte

Vous pouvez également spécifier les couleurs du texte et des bordures

🎉 Copied!
@startuml
title
<#lightblue,#red>|=  Step  |=  Date  |=  Name  |=  Status  |=  Link  |
<#lightgreen>|  1.1  |  TBD  | plantuml news |<#Navy><color:OrangeRed><b> Unknown  | [[https://plantuml.com/news plantuml news]] |
end title
@enduml

[Réf. QA-7184]

Pas de bordure ou même couleur que le fond

Vous pouvez également définir la couleur de la bordure sur la même couleur que le fond

🎉 Copied!
@startuml
node n
note right of n
  <#FBFB77,#FBFB77>|= Husky / Yorkie |= Foo |
  | SourceTree1 | foo1 |
  | ST2 | foo2 |
end note
@enduml

[Réf. QA-12448]

En-tête en gras ou non

= comme premier caractère d'une cellule indique s'il faut la mettre en gras (généralement utilisé pour les en-têtes) ou non

🎉 Copied!
@startuml
note as deepCSS0
  |<#white> Husky / Yorkie |
  |=<#gainsboro> SourceTree0 |
endnote

note as deepCSS1
  |= <#white> Husky / Yorkie |= Foo |
  |<#gainsboro><r> SourceTree1 | foo1 |
endnote

note as deepCSS2
  |= Husky / Yorkie |
  |<#gainsboro> SourceTree2 |
endnote

note as deepCSS3
  <#white>|= Husky / Yorkie |= Foo |
  |<#gainsboro> SourceTree1 | foo1 |
endnote
@enduml

[Réf. QA-10923]

Arbre

Vous pouvez utiliser les caractères |_ pour construire un arbre.

Sur les commandes courantes, comme le titre

🎉 Copied!
@startuml
skinparam titleFontSize 14
title
  Example of Tree
  |_ First line
  |_ **Bom (Model)**
    |_ prop1
    |_ prop2
    |_ prop3
  |_ Last line
end title
[*] --> State1
@enduml

Sur un diagramme de classes.

(Veuillez noter que nous devons utiliser un deuxième compartiment vide, sinon les parenthèses dans (Modèle) font que le texte est déplacé dans un premier compartiment séparé)

🎉 Copied!
@startuml
class Foo {
**Bar (Model)**
|_ prop
|_ **Bom (Model)**
  |_ prop2
  |_ prop3
    |_ prop3.1
|_ prop4 :(
--
}
@enduml

[Réf. QA-3448]

Sur les diagrammes de composants ou de déploiement

🎉 Copied!
@startuml
[A] as A
rectangle "Box B" {
    component B [
        Level 1
        |_ Level 2a
          |_ Level 3a 
          |_ Level 3b
          |_ Level 3c
            |_ Level 4a
          |_ Level 3d
        |_ Level 2b
          |_ Level 3e
    ]
}
A -> B
@enduml

[Réf. QA-11365]

Caractères spéciaux

Il est possible d'utiliser n'importe quel caractère unicode, soit directement soit avec la syntaxe &#XXX ou <U+XXXX>

🎉 Copied!
@startuml
usecase direct as "this is ∞ long"
usecase ampHash as "this is also &#8734; long"
usecase angleBrackets as "this is also <U+221E> long"
@enduml

OpenIconic

OpenIconic est un jeu d'icônes open-source très agréable. Ces icônes sont intégrées dans l'analyseur créole, vous pouvez donc les utiliser directement.

Utilisez la syntaxe suivante <&ICON_NAME>

🎉 Copied!
@startuml
title: <size:20><&heart>Use of OpenIconic<&heart></size>
class Wifi
note left
  Click on <&wifi>
end note
@enduml

La liste complète est disponible sur le site web d'OpenIconic, ou vous pouvez utiliser la commande spéciale suivante pour les lister

🎉 Copied!
@startuml
listopeniconic
@enduml

Annexe : Exemples de " liste créole " sur tous les diagrammes

Activité

🎉 Copied!
@startuml
start
:**test list 1**
* Bullet list
* Second item
** Sub item
*** Sub sub item
* Third item
----
**test list 2**
# Numbered list
# Second item
## Sub item
## Another sub item
# Third item;
stop
@enduml

Classe

FIXME
🚩
  • Sous-élément
  • Sous-élément
FIXME

🎉 Copied!
@startuml

class a {
**test list 1**
* Bullet list
* Second item
** Sub item
*** Sub sub item
* Third item
----
**test list 2**
# Numbered list
# Second item
## Sub item
## Another sub item
# Third item
}

a -- b 

@enduml

Composant, Déploiement, Cas d'utilisation

🎉 Copied!
@startuml
node n [
**test list 1**
* Bullet list
* Second item
** Sub item
*** Sub sub item
* Third item
----
**test list 2**
# Numbered list
# Second item
## Sub item
## Another sub item
# Third item
]

file f as "
**test list 1**
* Bullet list
* Second item
** Sub item
*** Sub sub item
* Third item
----
**test list 2**
# Numbered list
# Second item
## Sub item
## Another sub item
# Third item
"
@enduml

DONE
[Corrigé dans la V1.2020.18]

Planification de projet Gantt

N/A

Object

FIXME
🚩
  • Sous-élément
  • Sous-élément
FIXME

🎉 Copied!
@startuml
object user {
**test list 1**
* Bullet list
* Second item
** Sub item
*** Sub sub item
* Third item
----	
**test list 2**
# Numbered list
# Second item
## Sub item
## Another sub item
# Third item
}

@enduml

MindMap

🎉 Copied!
@startmindmap

* root
** d1
**:**test list 1**
* Bullet list
* Second item
** Sub item
*** Sub sub item
* Third item
----
**test list 2**
# Numbered list
# Second item
## Sub item
## Another sub item
# Third item;


@endmindmap

Réseau (nwdiag)

N/A

Note

🎉 Copied!
@startuml
note as n
**test list 1**
* Bullet list
* Second item
** Sub item
*** Sub sub item
* Third item
----
**test list 2**
# Numbered list
# Second item
## Sub item
## Another sub item
# Third item
end note
@enduml

Sequence

N/A (ou sur note ou commandes communes)

State

N/A (ou sur note ou commandes communes)

WARNING
 This translation need to be updated. 
WARNING

Annexe : Exemples de " lignes horizontales créoles " sur tous les diagrammes

Activité

FIXME
🚩 ligne forte ____
FIXME

🎉 Copied!
@startuml
start
:You can have horizontal line
----
Or double line
====
Or strong line
____
Or dotted line
..My title..
Or dotted title
//and title... //
==Title==
Or double-line title
--Another title--
Or single-line title
Enjoy!;
stop
@enduml

Classe

🎉 Copied!
@startuml

class a {
You can have horizontal line
----
Or double line
====
Or strong line
____
Or dotted line
..My title..
Or dotted title
//and title... //
==Title==
Or double-line title
--Another title--
Or single-line title
Enjoy!
}

a -- b 

@enduml

Composant, déploiement, cas d'utilisation

🎉 Copied!
@startuml
node n [
You can have horizontal line
----
Or double line
====
Or strong line
____
Or dotted line
..My title..
//and title... //
==Title==
--Another title--
Enjoy!
]

file f as "
You can have horizontal line
----
Or double line
====
Or strong line
____
Or dotted line
..My title..
//and title... //
==Title==
--Another title--
Enjoy!
"
@enduml

Planification de projet Gantt

N/A

Objet

🎉 Copied!
@startuml
object user {
You can have horizontal line
----
Or double line
====
Or strong line
____
Or dotted line
..My title..
//and title... //
==Title==
--Another title--
Enjoy!
}

@enduml

DONE
[Corrected on V1.2020.18]

MindMap

FIXME
🚩 strong line ____
FIXME

🎉 Copied!
@startmindmap

* root
** d1
**:You can have horizontal line
----
Or double line
====
Or strong line
____
Or dotted line
..My title..
//and title... //
==Title==
--Another title--
Enjoy!;

@endmindmap

Réseau (nwdiag)

N/A

Note

🎉 Copied!
@startuml
note as n
You can have horizontal line
----
Or double line
====
Or strong line
____
Or dotted line
..My title..
//and title... //
==Title==
--Another title--
Enjoy!
end note
@enduml

Sequence

N/A (ou sur note ou commandes communes)

State

N/A (ou sur note ou commandes communes)

WARNING
 This translation need to be updated. 
WARNING

Équivalence de style (entre le créole et le HTML)

Style Créole Legacy HTML comme
gras C'est **bold** C'est <b>bold</b>
italique C'est //italics// C'est <i>italics</i>
monospaced C'est ""monospaced"" C'est <font:monospaced>monospaced</font>
stroked C'est --stroked-- C'est <s>stroked</s>
souligné C'est __underlined__ C'est <u>underlined</u>
agité C'est ~~waved~~ C'est <w>waved</w>

🎉 Copied!
@startmindmap
* Style equivalent\n(between Creole and HTML) 
**:**Creole**
----
<#silver>|= code|= output|
| \n This is ""~**bold**""\n | \n This is **bold** |
| \n This is ""~//italics//""\n | \n This is //italics// |
| \n This is ""~""monospaced~"" ""\n | \n This is ""monospaced"" |
| \n This is ""~--stroked--""\n | \n This is --stroked-- |
| \n This is ""~__underlined__""\n |  \n This is __underlined__ |
| \n This is ""<U+007E><U+007E>waved<U+007E><U+007E>""\n | \n This is ~~waved~~ |;
**:<b>Legacy HTML like
----
<#silver>|= code|= output|
| \n This is ""~<b>bold</b>""\n | \n This is <b>bold</b> |
| \n This is ""~<i>italics</i>""\n | \n This is <i>italics</i> |
| \n This is ""~<font:monospaced>monospaced</font>""\n | \n This is <font:monospaced>monospaced</font> |
| \n This is ""~<s>stroked</s>""\n | \n  This is <s>stroked</s> |
| \n This is ""~<u>underlined</u>""\n | \n This is <u>underlined</u> |
| \n This is ""~<w>waved</w>""\n | \n This is <w>waved</w> |

And color as a bonus...
<#silver>|= code|= output|
| \n This is ""~<s:""<color:green>""green""</color>"">stroked</s>""\n | \n  This is <s:green>stroked</s> |
| \n This is ""~<u:""<color:red>""red""</color>"">underlined</u>""\n | \n This is <u:red>underlined</u> |
| \n This is ""~<w:""<color:#0000FF>""#0000FF""</color>"">waved</w>""\n | \n This is <w:#0000FF>waved</w> |;
@endmindmap