PlantUML Pleasantness: Layout Elements With Hidden Lines
In a previous post we learned how to use a together
block to keep elements together.
We can also layout elements in a different way: using hidden lines.
We define our elements and by using the keyword [hidden]
in our line definition the elements are layout as if there was a line, but we don’t see it.
This gives us great flexibility on how we layout our elements.
In the following sample we first have a PlantUML definition where we rely on the default layout:
@startuml
package "Core Components" {
[Backend Client] as BackendClient
[File Reader] as FileReader
[Content Transform] as ContentTransform
[Logging]
}
BackendClient ~~> ContentTransform : uses
FileReader ~~> ContentTransform: uses
@enduml
This definition renders the following diagram:
We want the Logging component at the bottom right corner of the Core Components.
Using a visible line we would connect the BackendClient to the Logging component.
This would place the Logging component beneath the BackendClient, just like we want.
So we add a connecting line and we add the [hidden]
attribute on our line definition.
The Logging component is placed where we want and we don’t see the line supporting this:
@startuml package "Core Components" { [Backend Client] as BackendClient [File Reader] as FileReader [Content Transform] as ContentTransform [Logging] } BackendClient ~~> ContentTransform : uses FileReader ~~> ContentTransform: uses ' Layout Logging under BackendClient BackendClient -[hidden]- Logging @enduml
When we regenerate the diagram we get the result we want:
Written with PlantUML 1.2017.16.