2012-01-28 33 views
6

我使用asciidoc来渲染文本。asciidoc宏

我有困难,了解宏

我的目标是有一个简单的宏处理(如在胶乳)

FOO应该由“酒吧”

MYTEXT(XYZ)来代替应换成:“这是我的文本zyz!”

(也许用不同的方式来传递参数 '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! 

我期望FOO和MYTEXT的定义必须进入文件abc.conf;有可能进入SECION [宏]。

其他问题:

是否有模式的匹配问题,如果

FOO应与 '酒吧' 和FOOX与 'BARBAR' 被取代?

回答

4

用于替代FOO到酒吧和FOOX到BARBAR我会使用替换语法的任务:

= AsciiDoc title 
:FOO: bar 
:FOOX: barbar 

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

正如你所看到的,你声明替换为:VARIABLE:,你使用它作为{VARIABLE}。关于实际创建新的宏,宏通常是macroname:content[Text input]类型的。对于Python AsciiDoc项目,他们被记录为here,对于基于ruby的AsciiDoctor项目,最终为here,但我从未真正使用它们,我更喜欢替换和条件块。

+0

您提供了一个备用解决方案,但实际上并未回答该问题。 – lscoughlin 2016-08-18 11:58:28