Up to now, diagrams descriptions have to start with @startuml and to finish with @enduml. PlantUML will allow in some future to generate other diagrams than UML, and in that cases, @startuml would not make sense anymore.

So, the general convention is changed to let diagrams descriptions start with @startXXX and to finish with @endXXX, where XXX has to be changed with the type of diagrams.

Note that XXX could be any strings of characters (includings spaces).

This means that plugin developpers are encouraged to change their code to recognise @start instead of @startuml.


Ditaa is an Open Source project that allows to generate general diagrams from a text descriptions. The idea is close to PlantUML, and it may be usefull for documentation to generate other diagrams than UML.

So last version of PlantUML allows this :

+--------+   +-------+    +-------+
|        +---+ ditaa +--> |       |
|  Text  |   +-------+    |diagram|
|Document|   |!magic!|    |       |
|     {d}|   |       |    |       |
+---+----+   +-------+    +-------+
    :                         ^
    |       Lots of work      |
You will find here the complete documentation about this.

If your plugin does not support @startditaa yet, a temporary feature has been set up : it is also possible to use Ditaa with @startuml by using ditaa keyword on the very first line of your description.

You can also use some option, after the @startditaa or @ditaa keyword:

  • -E or --no-separation to remove separator
  • -S or --no-shadows to remove shadow
  • scale=XXX to scale up or down the diagram
ditaa(--no-shadows, scale=0.8)
/--------\   +-------+
|cAAA    +---+Version|
|  Data  |   |   V3  |
|  Base  |   |cRED{d}|
|     {s}|   +-------+
DIagrams Through Ascii Art
Only PNG generation is supported now.


Since PlantUML uses Graphviz/DOT, it is possible to directly use DOT language.
This means that you can use Graphviz/DOT with all tools that support PlantUML.

Note that the very first line has to be:

digraph XXXX {
Note that you can also use @startuml/@enduml instead of @startdot/@enddot.
Here is a working example:
digraph foo {
  node [style=rounded]
  node1 [shape=box]
  node2 [fillcolor=yellow, style="rounded,filled", shape=diamond]
  node3 [shape=record, label="{ a | b | c }"]

  node1 -> node2 -> node3
dot graphviz example