PlantUML WBS多线节点无法应用Inline样式,求解决方法
如何为PlantUML WBS多行节点应用Inline样式?
我正在使用PlantUML和WBS Diagram构建简单的组织结构图,参考官方WBS文档。尝试为节点应用Inline样式时,单节点单行的写法可以正常生效:
@startwbs <style> wbsDiagram { .highlight { BackgroundColor pink } } node { Padding 12 Margin 30 HorizontalAlignment center LineColor #008AC9 LineThickness 3.0 BackgroundColor #A6E1FF RoundCorner 10 } </style> * John Doe <<highlight>> ** Jane Smith *** Bob Brown ** Alice Green @endwbs
生成的图表能正常显示样式:John Doe节点背景为粉色,其余节点为浅蓝色,所有样式规则均正确应用。
但使用多行节点格式时,样式无法生效:
@startwbs <style> wbsDiagram { .highlight { BackgroundColor pink } } node { Padding 12 Margin 30 HorizontalAlignment center LineColor #008AC9 LineThickness 3.0 BackgroundColor #A6E1FF RoundCorner 10 } </style> *:<b>Manager</b> John Doe <<highlight>>; **:<b>Lead Developer</b> Jane Smith; ***:<b>Senior Developer</b> Bob Brown; **:<b>QA Lead</b> Alice Green; @endwbs
生成的图表未应用样式:John Doe节点未呈现粉色背景,基础节点样式也未正确加载。
解决方案
调整多行节点的样式标记位置,将<<highlight>>放在节点内容的最后一行,与结束分号;处于同一行即可。修改后的代码如下:
@startwbs <style> wbsDiagram { .highlight { BackgroundColor pink } } node { Padding 12 Margin 30 HorizontalAlignment center LineColor #008AC9 LineThickness 3.0 BackgroundColor #A6E1FF RoundCorner 10 } </style> *:<b>Manager</b> John Doe <<highlight>>; **:<b>Lead Developer</b> Jane Smith; ***:<b>Senior Developer</b> Bob Brown; **:<b>QA Lead</b> Alice Green; @endwbs
原因说明
PlantUML解析多行WBS节点时,会以分号;作为节点内容的结束标记。样式标记<<xxx>>必须紧跟在节点内容末尾,与分号放在同一行,解析器才能正确识别该样式属于当前节点,进而应用对应的样式规则。
内容的提问来源于stack exchange,提问作者BML91
相关产品推荐
相关产品推荐

