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.