我在IntelliJ IDEA中使用AsciiDoc和Plant UML来编写文档。
在那里,我遇到了一个奇怪的问题,包括图表。我已经找到了一种方法,使它的工作,但我不明白为什么。我想知道为什么它的工作方式。
我使用下面的语句在页面上包含一个Plant UML图:
["plantuml","containers"]
----
include::../diagrams/containers.puml[]
----
然而,这并没有像预期的那样包含../diagrams/containers.puml
,而是包含了一个与../external-references/diagrams/external-components.puml
看起来不相关的资源不同的图,然后将其放大到../diagram/containers.puml '的大小。
出于某种原因,这种情况只发生在这一个include语句中,例如,下面包含了一个不同的PUML图,无论我把它放在AsciDoc中的什么位置,它都可以工作:
["plantuml","system-context"]
----
include::../diagrams/system-context.puml[]
----
现在,如前所述,我设法通过将整个语句更改为以下语句(删除标题中的",containers"
)来使其工作:
["plantuml"]
----
include::../diagrams/containers.puml[]
----
对我来说,这提出了两个问题:
1.为什么include对system-context.puml
有效,但对containers.puml
无效?
1.为什么它会受到语法第二部分的影响呢?我以为这是用于图像无法显示时的替代文本。
1条答案
按热度按时间5sxhfpxr1#
**解决方案:**删除或更改方括号中的
"containers"
参数。出现这个问题是因为项目中的某个地方存在另一个名为
"containers"
的图(或文件)。正如asciidoctor文档中所指定的,方括号中的第二个参数定义了一个目标输出文件名(在您的例子中是
containers
),我假设在渲染plantuml图表的过程中,asciidoctor创建并存储了一些图像文件(png,svg,或类似的东西),以便稍后嵌入。这里的“解剖图从asciidoddocs:
如果省略target,则会自动生成文件名。