问题描述
我想在不同的模块中使用相同的键属性,但值不同。
我在 antora.yml 中定义了属性,但是好像没有办法区分模块。
我该怎么办?
解决方法
antora.yml
中的属性定义对于包含 antora.yml
的组件是全局的。无法将这些属性定位到特定模块。但是它们很容易在使用它们的页面中被覆盖。
例如,如果您在 antora.yml
中定义一个属性:
asciidoc:
attributes:
foo: bar
然后,无论您在组件页面中的何处使用 {foo}
,您都会在生成的 HTML 中看到 bar
。
要在特定页面中覆盖它:
:foo: FOO
当在同一页面上的任何位置遇到 {foo}
属性时,在该定义之后,您会在生成的 HTML 中看到 FOO
。
如果一个模块中有多个页面需要共享相同的定义,则可以将这些定义放入单独的 Asciidoc 文件中,例如 attributes.adoc
。如果将该文件放入模块的 partials
文件夹中,则可以将其包含在任何需要属性定义的模块页面中:
include::partial$attributes.adoc[]
您不必在 attributes.adoc
中定义所有属性,只需为模块重新定义那些属性即可。