这个问题涉及到使用Template::Toolkit(Perl)中的宏。
我无法编写宏并将它们放入单独的文件中,以便在几个其他模板文件中使用它们。
我的宏位于名为macros.tt的单独模板文件中:
将宏直接放在想要使用它的文件中,一切都按预期工作。
从不同的文件中包含宏的“正确”方式是什么?
我无法编写宏并将它们放入单独的文件中,以便在几个其他模板文件中使用它们。
我的宏位于名为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>
….
将宏直接放在想要使用它的文件中,一切都按预期工作。
从不同的文件中包含宏的“正确”方式是什么?