PlantUML:可能带有文本的嵌套组件?
PlantUML: nested components with text possible?
正如我从 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。虽然可以向元素添加长描述 ([...]
),但我几乎可以肯定它仅适用于某些元素类型(例如 activity 元素、用例等),通常会这样做不包含子元素。但是,对于更正式的图表,任何需要注释或进一步解释概念的 "text" 都应添加为注释或标注。
我 运行 很久以前就研究过这个问题,并且确实按照您的要求做了。我深入研究了图表档案,发现了一个非常接近您想要实现的示例。
因此,为了回答您的问题,在文件夹等分组元素中包含描述性文本和 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
正如我从 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。虽然可以向元素添加长描述 ([...]
),但我几乎可以肯定它仅适用于某些元素类型(例如 activity 元素、用例等),通常会这样做不包含子元素。但是,对于更正式的图表,任何需要注释或进一步解释概念的 "text" 都应添加为注释或标注。
我 运行 很久以前就研究过这个问题,并且确实按照您的要求做了。我深入研究了图表档案,发现了一个非常接近您想要实现的示例。
因此,为了回答您的问题,在文件夹等分组元素中包含描述性文本和 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