如何在 Template ToolKit 中输出 perl Template Toolkit 示例
我正在通过模板工具包文件为模板工具包制作一些文档。目标是展示我正在使用的代码以及代码的输出。现在,我通过复制代码并将所有“%
”字符替换为“%
”字符串来完成此操作。
所以,我会有这样的东西:
The Template Toolkit code:
[% FOREACH name IN nameArray %][% name %][% IF !loop.last %], [% END %][% END %]
Produces the output:
[% FOREACH name IN nameArray %][% name %][% IF !loop.last %], [% END %][% EN D%]
它将输出类似的东西:
The Template Toolkit code:
[% FOREACH name IN nameArray %][% name %][% IF !loop.last %], [% END %][% END %]
Produces the output:
George, Jane, Judy, Elroy
我的问题是是否有替代/更好的方法来做到这一点?理想情况下,我不必每次都有效地复制代码。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以将代码分配给变量,然后通过
eval< /代码>过滤器
。要防止在模板中解释
[%
和%]
标记,请使用TAGS
指令 将开始/结束标记设置为其他内容。例子:You can assign your code to a variable and then pipe it through the
eval
filter. To prevent the[%
and%]
tags from being interpreted in your template, use theTAGS
directive to set the start/end tags to something else. Example:我找到了一个非常简单的解决方案:
将示例代码移至其自己的文件中。
在主模板中,同时使用 INSERT 和 INCLUDE 模板工具包指令来调用示例代码文件。
INSERT 指令直接输出文件的内容(即不进行任何处理)。
INCLUDE
指令在输出之前以正常的 Template Toolkit 方式处理文件。例如,采用以下三个文件:
文件:process_template.pl
文件:main.tmpl
文件:code_example.tmpl
当运行“process_template.pl”时,它将产生预期的输出。作为一个额外的好处,将示例代码片段放在自己的文件中可以使它们更容易编辑/管理/维护。
I found a very simple solution:
Move the example code to its own file.
In the main template, use both the INSERT and INCLUDE Template Toolkit directives to call the example code file.
The
INSERT
directive outputs the contents of the file directly (i.e. with no processing). TheINCLUDE
directive processes the file in the normal Template Toolkit way before outputting it.For example, take the following three files:
File: process_template.pl
File: main.tmpl
File: code_example.tmpl
When "process_template.pl" is run, it will produce the expected output. As an added benefit, placing the sample snippets of code in their own files makes them easier to edit/manage/maintain.