如何在asciidoc/asciidoctor中定义宏?

我将在文档的许多部分中使用重复模式,因此我想进行参数化替换,以避免多次输入相同的内容。

特别是,我有以下asciidoc片段:

{set:cellbgcolor:grey} 
[grid=none, frame=none] 
|=== 
| X >| Y 
|=== 
{set:cellbgcolor!} 

我需要将其放置在文档的不同部分中,用不同的文本替换来代替X和Y。如何实现?

请您参考如下方法:

我认为,使用Asciidoctor并不能获得在其他文档引擎中获得的所有灵活性/简单性:

LaTeX中的

  • 命令定义
  • MediaWiki中的
  • Templates


  • 我认为您可以使用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编写),但这需要更多工作。根据您的用例,您可以在线找到几个示例。


    评论关闭
    IT干货网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!