Шаблоны Bugzilla: в чем разница между [% и [%+]

Код в шаблонах Bugzilla обычно разделяется символами [% и %]. Но иногда я вижу [%+ и [%-. Может ли кто-нибудь объяснить разницу или указать мне подходящую документацию? Google подвел меня в этом случае.

Например:

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

or

[%+ END %]

person Peter Howe    schedule 27.01.2010    source источник


Ответы (2)


[%- (или -%]) удаляет начальные (конечные) пробелы; [%+ (или +%]) поддерживает его. См. PRE_CHOMP, POST_CHOMP в Руководстве по набору шаблонов (в шаблонах Bugzilla используется Template Toolkit) за кровавые подробности (включая [= и [~ :)).

person ax.    schedule 27.01.2010

Вот что я написал для нашей команды в прошлом году:

Я был менее информирован о поведении Т.Т., чем должен был быть, а другой член нашей команды признался мне, что он был еще менее информирован, чем я!

Это краткое объяснение того, как работает жевание.

Предположим, у меня есть следующий шаблон с переменной 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.

person David M    schedule 28.01.2010