【发布时间】:2017-06-02 18:52:39
【问题描述】:
这个问题是关于 Template::Toolkit (Perl) 中宏的使用
我无法编写宏并将它们放入单独的文件中以在其他几个模板文件中使用它们。
我的宏位于名为 macros.tt 的单独模板文件中:
----- file macros.tt ------
[% MACRO decorateStatus(status) BLOCK -%]
[% ico = 'status_unknown' -%]
[% IF status == "New" -%][% ico = 'status_waiting' -%]
[% ELSIF status == "Working" -%][% ico = 'status_work' -%]
[% ELSIF status == "Deleted" -%][% ico = 'status_deleted' -%]
[% END -%]
[% status %] <img src="[% c.uri_for('/images/ico/' _ ico _ '.png') %]" text="[% status %]">
[% END-%]
现在我正在尝试在另一个模板中使用此宏 - 但由于宏未展开而失败:
----- file demo.tt -------
[% INCLUDE macros.tt %]
….
[% status = ‘New’ %]
<td>[% decorateStatus(status) %]</td>
….
将宏直接放在我想使用它的文件中,一切都按预期工作。
包含来自不同文件的宏的“正确”方法是什么?
【问题讨论】:
标签: perl template-toolkit