Bugzilla模板:[%和[%+]之间有什么区别

时间:2010-01-27 16:11:21

标签: syntax bugzilla template-toolkit

Bugzilla模板中的代码通常由[%和%]分隔。但有时候我会看到[%+和[% - 。有人可以解释差异或指出我适当的文件?谷歌在这个场合失败了。

例如:

[%- event.value.subject FILTER html %]

[%+ END %]

2 个答案:

答案 0 :(得分:2)

[%-(或-%])删除前导(尾随)空格; [%+(或+%])维护它。请参阅模板工具包手册中的PRE_CHOMP, POST_CHOMP(Bugzilla模板使用模板工具包)以获取详细信息(包括[=[~ :))。

答案 1 :(得分:2)

以下是我去年为团队撰写的内容:

我对TT的行为知之甚少,而且我们团队的另一名成员向我承认他的信息比我还要少!

这是对咀嚼如何运作的简要说明。

假设我有以下模板,变量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,+表示无扼杀,无论是否在整体配置中设置。

所以重复这个例子:

<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。