Asciidoctor:激活CLI属性中的替换

问题描述

内联宏pass似乎不适用于CLI属性

如果我呈现以下代码段:

:foo: crazy
:bar: pass:q,a[{foo} *world*]

hello {bar}

我得到了我期望的结果:你好疯狂的世界

但是如果我将两个属性传递给CLI(asciidoctor-pdf -a foo=crazy -a bar='pass:q,a[{foo} *world*]' foo.adoc),它将无法正常工作:

hello pass:q,a [{foo} * world *]

我该怎么做才能使其正常工作?

添加一些背景信息,我计划使用antora编写我正在开发的软件的文档。我想在antora-playbook.ymlantora.yml中定义属性以充当“胶乳宏”。

解决方法

在命令行上指定的属性被视为字符串,而不是Asciidoc标记。这意味着pass宏未被处理。

但是,默认情况下,命令行上指定的属性会覆盖文档中指定的属性。因此,您可以按照上述说明使用包含属性定义的文档,然后运行:

asciidoctor-pdf -a foo=stable foo.adoc

foo属性的命令行定义将覆盖文档中的定义,结果为hello stable world