我正在尝试创建一个简单的宏来在asciidoctor
中呈现红色的文本项。
以下不起作用:
:redtext: [red]#some important text in red that occurs a lot#
{redtext}
或更简单的例子:
:redcross: [red]#✘#
我不清楚宏可以取代什么和不可取代的规则。 asciidoctor
手册目前有一个空格用于宏(http://asciidoctor.org/docs/user-manual/#macros)。 asciidoc
手册(http://www.methods.co.nz/asciidoc/chunked/ch21.html)也不是很清楚,但可能不适用于asciidoctor
。
相关未回答的问题是Resuable markup fragments with Asciidoctor。 与此相关的一个问题建议使用包含哪些内容过于苛刻。
宏的限制是什么?
答案 0 :(得分:1)
你定义的不是宏,它是一个属性。 (当你使用它时,它被称为属性引用)。
您可以使用内联传递宏在属性定义中急切地执行替换。在目标位置,它接受以逗号分隔的替换名称列表(或替换字母)。
在你的情况下,你可以写:
:redtext: pass:q[[red]#some important text in red that occurs a lot#]
相关部分是:
pass:q[...]
有关详细信息,请参阅substitutions in an attribute entry。
答案 1 :(得分:0)
我认为包括足够好的工作。我们有一个glossary.asciidoc
文件来包含所有可重复使用的代码段,例如:
tag::redtext[]
[red]#some important text in red that occurs a lot#
end::redtext[]
在index.asciidoc
中你可以添加一个小帮手:
:g: glossary.asciidoc
然后,只要您需要此代码段:
include::{g}[tag=redtext]