正如我从 PlantUML 中的示例中看到的,您可以拥有某些带有文本的图形对象,例如
folder folder1 [
Here you can have some explanation with
====
--Markdown-- //formatting// ~~elements~~
]
呈现为
您还可以使用
folder
(以及其他元素)通过嵌套来对其他项目进行分组:
folder folder2 {
folder folder3 [
text bla bla
]
artifact art2 [
more text
]
}
但目前我看不出有什么办法可以组合两者 - 一个带有一些解释文本的对象和嵌套元素。
PlantUML 可以实现吗? (如何?)
我只能假设 PlantUML 尝试尽可能地类似于 UML。虽然可以向元素添加长描述 (
[...]
),但我几乎可以肯定它仅适用于某些元素类型(例如活动元素、用例等),这些元素通常不包含子元素。但是,对于更正式的图表,注释或进一步解释概念所需的任何“文本”都应添加为注释或标注。
我很多个月前就遇到了这个问题,并且确实按照您的要求做了。我深入研究了我的图表档案,找到了一个非常接近您想要实现的目标的示例。
因此,为了回答您的问题,在分组元素(例如文件夹)中包含描述性文本和 UML 元素的解决方案如下:
@startuml
skinparam rectangle<<desc>> {
backgroundColor Transparent
borderColor Transparent
titleFontColor Red
stereotypeFontColor Transparent
}
folder folder2 {
folder folder3 [
text bla bla
]
artifact art2 [
more text
]
rectangle f2<<desc>> [
Here you can have some explanation with
====
--Markdown-- //formatting// ~~elements~~
]
folder3 -[hidden]- f2
}
@enduml
正如您将注意到的,连接用于调整文本位置,并且可能需要一些更复杂的技巧,具体取决于文本的大小和元素的数量。
从早期开始,我就更加关注 UML 规范;有关评论的更多详细信息,请参阅此answer。不仅添加注释变得更加容易,而且 PlantUML 代码也更加简单。也就是说,以下是使用这种方法的上述变体。
@startuml
folder folder2 {
folder folder3 [
text bla bla
]
artifact art2 [
more text
]
}
note bottom of folder2
Here you can have some explanation with
====
--Markdown-- //formatting// ~~elements~~
end note
@enduml