Modelos de Bugzilla: qual é a diferença entre [% e [%+
-
23-09-2019 - |
Pergunta
O código nos modelos Bugzilla é geralmente delimitado por [ % e %]. Mas às vezes eu vejo [%+ e [%-. Alguém pode explicar a diferença ou me apontar para a documentação adequada? O Google me falhou nesta ocasião.
Por exemplo:
[%- event.value.subject FILTER html %]
ou
[%+ END %]
Solução
[%-
(ou -%]
) remove o espaço em branco (à direita); [%+
(ou +%]
) mantém isso. Ver Pre_chomp, post_chomp No manual do kit de ferramentas de modelo (os modelos de bugzilla usam o kit de ferramentas de modelo) para os detalhes sangrentos (incluindo [=
e [~
:)).
Outras dicas
Aqui está algo que escrevi para a nossa equipe no ano passado:
Fiquei menos informado sobre o comportamento da TT do que deveria, e outro membro de nossa equipe me confessou que ele estava ainda menos informado do que eu!
Esta é uma breve explicação de como a mastigação funciona.
Suponha que eu tenha o seguinte modelo, com a variável x = 'foo'
<td>
[% x %]
</td>
se tornará
<td>
foo
</td>
Observe os espaços no início da segunda linha.
O TT possui definições de configuração para pre_chomp e post_chomp.
Se Pre_Chomp for 1, todo o espaço em branco na frente de uma diretiva, incluindo uma nova linha, será removido. O exemplo se torna
<td>foo
</td>
Se Post_Chomp for 1, o oposto ocorre do outro lado:
<td>
foo</td>
Se Pre/Post_Chomp for 2, todo o espaço em branco precedente/seguinte será colapso em um único espaço:
<td> foo </td>
Se Pre/Post_Chomp for 3, todo o espaço em branco precedente/seguinte será eliminado:
<td>foo</td>
== importante ==
O Bugzilla está configurado com pre_chomp = 1. Post_Chomp não está definido.
Você pode denotar explicitamente o comportamento de atirar com um dos caracteres -, =, ~ e + após o '[%' ou antes do '%]'. '-' denota o nível 1 de Chomp, = denota o nível 2 de Chomp, ~ denota o nível 3 de Chomp, + denota não mastigação, independentemente de estar definido na configuração geral.
Então, para repetir o exemplo:
<td>
[% x %]
</td>
Porque nós temos pre_chomp = 1, então isso se tornará
<td>foo
</td>
<td>
[%- x -%]
<td>
torna-se
<td>foo</td>
<td>
[%= x =%]
</td>
torna-se <td> foo </td>
<td>
[%~ x ~%]
</td>
torna-se <td>foo</td>
Finalmente,
<td>
[%+ x %]
</td>
torna-se
<td>
foo
</td>
Para uma explicação ainda mais detalhada, faça 'PerlDoc modelo :: manual :: config' e pesquise Chomp.