Bugzilla 模板中的代码通常由 [% 和 %] 分隔。但有时我会看到 [%+ 和 [%-. 有人可以解释区别或指出合适的文件吗?谷歌这次让我失望了。
例如:
[%- event.value.subject FILTER html %]
或者
[%+ END %]
Bugzilla 模板中的代码通常由 [% 和 %] 分隔。但有时我会看到 [%+ 和 [%-. 有人可以解释区别或指出合适的文件吗?谷歌这次让我失望了。
例如:
[%- event.value.subject FILTER html %]
或者
[%+ END %]
[%-
(或-%]
)删除前导(尾随)空格;[%+
(或+%]
)维护它。请参阅模板工具包手册中的PRE_CHOMP、POST_CHOMP(Bugzilla 模板使用模板工具包)了解血腥细节(包括[=
和[~
:))。
这是我去年为我们的团队写的东西:
我对 TT 的行为的了解比我应该了解的要少,我们团队的另一位成员向我承认,他比我更了解情况!
这是对chomping如何工作的简要说明。
假设我有以下模板,变量 x = 'foo'
<td>
[% x %]
</td>
会变成
<td>
foo
</td>
注意第二行开头的空格。
TT 具有 PRE_CHOMP 和 POST_CHOMP 的配置设置。
如果 PRE_CHOMP 为 1,则删除指令前面的所有空格,包括换行符。例子变成
<td>foo
</td>
如果 POST_CHOMP 为 1,则相反的情况发生在另一端:
<td>
foo</td>
如果 PRE/POST_CHOMP 为 2,则所有前面/后面的空格都折叠为一个空格:
<td> foo </td>
如果 PRE/POST_CHOMP 为 3,则消除所有前面/后面的空格:
<td>foo</td>
==重要==
Bugzilla 配置为 PRE_CHOMP = 1。未设置 POST_CHOMP。
您可以在 '[%' 之后或 '%]' 之前使用字符 -、=、~ 和 + 之一明确表示咀嚼行为。'-'表示CHOMP 1级,=表示CHOMP 2级,~表示CHOMP 3级,+表示无论是否在整体配置中都设置chomping。
所以重复这个例子:
<td>
[% x %]
</td>
因为我们有 PRE_CHOMP = 1,所以这将变成
<td>foo
</td>
<td>
[%- x -%]
<td>
变成
<td>foo</td>
<td>
[%= x =%]
</td>
变成<td> foo </td>
<td>
[%~ x ~%]
</td>
变成<td>foo</td>
最后,
<td>
[%+ x %]
</td>
变成
<td>
foo
</td>
要获得更详细的解释,请执行“perldoc Template::Manual::Config”并搜索 CHOMP。