0

在 Antora 生成的站点中包含您自己的 HTML、CSS 和 Javascript 页面是否有“本机”方式?

在 Asciidoc 源代码中包含一个带有内联 CSS 样式的 HTML 文件仅适用于这样的 HTML 和 CSS(结果请参见附图):

++++
include::partial$test.html[]
++++

但是,如果您要分离 CSS 并添加 Javascript,则 .css 和 .js 文件不会被发布,因为它们没有直接包含在任何地方,并且包含的​​ HTML 遵循 UI 包定义的样式。

手动将 CSS 和 Javascript 文件复制到构建文件中的正确位置可以按预期工作(Antora 页面已设置样式并按预期运行 .js)

我认为大多数 Antora 文档都是一些 CI/CD 管道的产品,因此您可能可以将 CSS 和 Javascript 作为管道的一部分添加到构建文件中,但这是一个混乱的解决方案。

真正需要的是一种强制 Antora 发布一些“额外”文件或文件夹的方法。

我知道 Antora 的全部意义在于制作一致的样式和格式的文档。想要这样做的原因是在文档中包含由 Plotly 或 Bokeh 生成的交互式图表。

它还开辟了包括任何类型的交互式窗口的可能性,例如播放音乐的按钮。就我而言,我想要一个“交互式和弦书”,可以播放和突出音乐和弦中的音符。

Antora 网站上的内联样式

4

1 回答 1

0

您的示例传递块有效,因为包含的文件已插入到该位置的内容流中。该test.html文件本身并未发布,但其内容存在于使用include宏的文件中。

同样,如果您使用此部分块:

++++
include::partial$test.js[]
++++

的内容在test.js此时被注入到内容流中。如果您只是嵌入几行代码,则不需要test.js发布它本身。

如果您确实需要test.js发布,您有以下三种选择:

  1. 存储test.js在模块的attachments文件夹中(而不是partials. 该partials文件夹旨在包含多次使用的“小型”Asciidoc 文档)。您需要include::attachment$test.js[],但该文件确实被复制到构建文件夹中。

  2. 使用supplemental_fileshttps ://docs.antora.org/antora/latest/playbook/ui-supplemental-files/ 补充文件允许您自定义 UI 中的资产。

  3. 分叉 UI 并直接添加您的自定义项。

后两种方法更可取。目前,Antora 仅发布 HTML。将来,可能会发布到其他输出格式,包括 PDF。PDF 不适用于嵌入的 HTML、CSS 或 JavaScript,因此 UI 自定义是首选方法。(PDF 生成可能会有不同的主题支持,类似于asciidoctor-pdf)。

于 2022-01-05T17:11:26.290 回答