如何在asciidoc/asciidoctor中定义宏?
我将在文档的许多部分中使用重复模式,因此我想进行参数化替换,以避免多次输入相同的内容。
特别是,我有以下asciidoc片段:
{set:cellbgcolor:grey}
[grid=none, frame=none]
|===
| X >| Y
|===
{set:cellbgcolor!}
我需要将其放置在文档的不同部分中,用不同的文本替换来代替X和Y。如何实现?
请您参考如下方法:
我认为,使用Asciidoctor并不能获得在其他文档引擎中获得的所有灵活性/简单性:
LaTeX中的
我认为您可以使用Asciidoctor中的include宏和变量:
创建一个名为
snippet.adoc
的文件(我的示例基于您的示例):
{set:cellbgcolor:grey}
[grid=none, frame=none]
|===
| {paramX} >| {paramY}
|===
{set:cellbgcolor!}
在您的主文档中使用它,如下所示:
== My document
:paramX: lorem
:paramY: ipsum
include::snippet.adoc[]
Lorem ipsum dolore.
:paramX: aaaa
:paramY: bbbb
include::snippet.adoc[]
Lorem ipsum dolore.
那个asciidoctor可以扩展。您还可以创建自己的真实宏(用Java或Ruby编写),但这需要更多工作。根据您的用例,您可以在线找到几个示例。