如何通过位于不同文件夹中的许多 .adoc 文件正确引用图像

Man*_*dan 4 asciidoc asciidoctor atom-editor

我正在使用 Atom Editor + 两个有关 asciidoctor 的插件/包。

  • asciidoc-预览
  • 语言asciidoc

一切都按预期工作。但我有以下情况:

我有以下目录结构:

xml
  figures
     findOneXml.adoc
     findOneXml.png
  urls
     findOne.adoc
Run Code Online (Sandbox Code Playgroud)

哪里findOneXml.adoc(在数字文件夹内)有

[[findOneXml]]
image::findOneXml.png[caption="Figure - " title="findOneXml"]
Run Code Online (Sandbox Code Playgroud)

通过实时预览,我可以看到图像及其各自的描述

现在 with findOne.adoc(在url文件夹中)包含以下行:

include::../figures/findOneXml.adoc[]
Run Code Online (Sandbox Code Playgroud)

我认为路径参考没问题。如果我使用其他,实时预览会显示一条关于无效或错误路径的错误消息。

但是通过实时预览,我看到图像损坏了,但我可以看到描述。

在此处输入图片说明

有什么问题或遗漏了什么?

即使include::./../figures/findOneXml.adoc[]失败

注意:在子/子文档中,我需要添加其他数据如何注释、提示(警告),该子文档将被其他父母多次重复使用。所以我只不需要参考图像。

谢谢

Mar*_*mak 5

图像相对于 asciidoc 渲染引擎的内部基本路径进行解析。在您的情况下,我假设引擎采用渲染(主、父)文档的路径。因此,图像是相对于它解析的。尝试:

image::../figures/findOneXml.png[]
Run Code Online (Sandbox Code Playgroud)

这应该适用于两个 adoc 文档,因为路径向上移动到父目录,然后明确向下移动到图形目录。

如果您想拥有一个通用的图像绝对基础,您还可以将 :imagesdir: 属性设置为图像目录的基础 url。这应该也适用于实时预览:http : //asciidoctor.org/docs/user-manual/#set-the-images-directory

  • @ManuelJordan一旦设置了 :imagesdir: 文件夹,它就会影响所有 image::* 引用,即使是子文件夹 - 因此,如果您需要引用 :imagesdir: 子文件夹中的图像,只需使用例如 image::sub/findTwoXml .png (2认同)