正如我从 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
关于syntax - PlantUML:带有文本的嵌套组件可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45794732/