Вот что я написал для нашей команды в прошлом году:
Я был менее осведомлен о поведении ТТ, чем следовало бы, и другой член нашей команды признался мне, что он был даже менее информирован, чем я!
Это краткое объяснение того, как работает чампинг.
Предположим, у меня есть следующий шаблон с переменной 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 не установлен.
Вы можете явно обозначить поведение при смешивании с одним из символов -, =, ~ и + после '[%' или до '%]'. '-' обозначает уровень 1 CHOMP, = обозначает уровень 2 CHOMP, ~ обозначает уровень 3 CHOMP, + обозначает отсутствие помехи независимо от того, установлен ли он в общей конфигурации.
Итак, повторим пример:
<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.