PlantUML Pleasantness: Include Partial Content From Files
With PlantUML we can include external files in our definition with the !include
directive.
We specify the file name and the content is included in our PlantUML definition.
The included file can also have multiple @startuml ... @enduml
sections and we can refer to individual sections with the !include
directive.
We must append to the include file name an exclamation mark (!
) followed by either a number or identifier.
If we use a number we specify which section we want to include, where section are numbered starting from 0
.
So to get the second section from a file commons.puml
we would write !include commons.puml!1
.
Alternatively we can use identifiers in the include file.
We append to @startuml
an identifier as (id=idValue)
.
Then from the definition that is including the file we refer to the identifier after an exclamation mark (!
).
If our included file commons.puml
has a section with id user
then we would include it as !include commons.puml!user
.
In the following example PlantUML definition we define the file to be included.
We have two sections with @startuml ... @enduml
which both have an identifier:
' File: commons.puml
' section with id user to define user actor
@startuml(id=user)
actor "Application User" as User
@enduml
' section with id mail to define mail component
@startuml(id=mail)
[Mail server] as Mail <<Mail>> #ffcc66
@enduml
Next we write a definition where we include commons.puml
using a section number and section identifier:
' File: sample.puml
@startuml
' Include first section (0-based index) of commons.puml
!include commons.puml!0
' Include section with id mail of commons.puml
!include commons.puml!mail
[Sample Application] <<Software System>> as SampleApp
User --> SampleApp
SampleApp --> Mail
@enduml
Let's generate a diagram and look at the result where we see our user and mail components from the included file:
Written with PlantUML 8086.