11

我使用 asciidoc 来渲染文本。

我很难理解宏。我的目标是进行简单的宏处理(如在 LaTeX 中)。我想写两个宏:

  1. FOO应该替换为"bar"
  2. MYTEXT(xyz)应该替换为:("This is my text xyz!"
    可能用不同的方式来传递参数'xyz')

示例文件 abc.txt:

text text text
FOO text FOO
text text text
MYTEXT(jajaja)

这应该导致

text text text
bar text bar
text text text
This is my text jajaja!

我希望FOOand的定义MYTEXT必须进入文件abc.conf;可能进入部分[宏]。

附加问题:

模式匹配是否存在问题,是否 FOO应替换为'bar'和?FOOX'barbar'

4

1 回答 1

6

对于将 FOO 替换为 bar 并将 FOOX 替换为 barbar 的任务,我将使用替换语法:

= AsciiDoc title
:FOO: bar
:FOOX: barbar

Regular text here using substitutions: {FOO} is bar and {FOOX} is barbar.

如您所见,您将替换声明为 as:VARIABLE:并将其用作{VARIABLE}

至于实际创建新宏,宏通常是macroname:content[Text input]. 它们在此处记录在Python AsciiDoc 项目中,最终在此处记录在基于 ruby​​ 的 AsciiDoctor 项目中,但我从未真正使用过它们,我更喜欢替换和条件块。

于 2013-11-01T18:44:38.990 回答