将数据注入 asciidoc 模板中定义的变量

Inject data into variables defined in asciidoc template

我已经在网上四处寻找了一段时间,但我似乎无法确定这是否可行,所以希望有人能够指出我的方向..

我特别想知道是否可以通过编程将数据插入 asciidoc 模板,以便我可以使用它来生成发票文档之类的东西。我查看了 AsciidoctorJ,它似乎完成了生成 asciidoc 文件 pdf 的最后一步,这很好。

我查看了 asciidoc 中的宏文档,但似乎找不到我想要的内容..

我找到了一个使用 latex 的示例和一个名为 Java LaTeX Report 的库,它允许您使用以下内容定义 .tex 文件:

#foreach( $name in $services )
    \Fee{$name[0]} {$name[1]} {1} 
#end

然后从代码中的数据填充这些变量并通过以下方式处理模板:

ArrayList<ArrayList<String>> services = new ArrayList<ArrayList<String>>();

        ArrayList<String> subservice1 = new ArrayList<String>();
        ArrayList<String> subservice2 = new ArrayList<String>();
        ArrayList<String> subservice3 = new ArrayList<String>();

        subservice1.add("Software");
        subservice1.add("50");
        subservice2.add("Hardware1");
        subservice2.add("500");
        subservice3.add("Hardware2");
        subservice3.add("850");

        services.add(subservice1);
        services.add(subservice2);
        services.add(subservice3);      

        converter.replace("services", services);

        converter.parse(template, invoice1);

在乳胶中生成文本:

\Fee{Software} {50} {1} 
\Fee{Hardware1} {500} {1} 
\Fee{Hardware2} {850} {1} 

是否有一些库可以让我为 asciidoc 做类似的事情?任何帮助将不胜感激。

通过我在网上找到的内容,没有办法在 asciidoc 中以本地方式执行 LaTeX 替代方案所显示的内容。但是,您可以使用 FreeMarker 之类的模板语言来进行变量绑定,从而获得类似的结果。其输出将是插入了所有数据的 asciidoc 模板。您可以只定义输出文件的扩展名,这样您就可以参数化任何文件类型。