ドキュメント読んでたら、こんなの見つけました。常識?
CHOMP_NONE 0 +
CHOMP_ONE 1 -
CHOMP_COLLAPSE 2 =
CHOMP_GREEDY 3 ~
http://search.cpan.org/~abw/Template-Toolkit-2.19/lib/Template/Manual/Config.pod
PRE_CHOMP と POST_CHOMP は、 0 か 1 を指定するものだと思ったら、2 とか 3 も指定出来るみたいです。tag modifier(-, =, ~, +)の指定も可能だとのこと。それぞれの意味は以下のようになっています。
:chomp # for PRE_CHOMP and POST_CHOMP
CHOMP_NONE # do not remove whitespace
CHOMP_ONE # remove whitespace to newline
CHOMP_COLLAPSE # collapse whitespace to a single space
CHOMP_GREEDY # remove all whitespace including newlines
http://search.cpan.org/~abw/Template-Toolkit-2.19/lib/Template/Constants.pm
履歴を見たところ、[%= =%]と[%~ ~%]は2.15*1から追加されたようです。全然知らなかった。
モバイルのように「空白をとにかく削りたい」、って時は、[%~ ~%]を使うと幸せになれます。
検証
以下、これらのCHOMPのタイプの検証結果です。[%- -%]は改行コードにも依存します*2。
テンプレ
それぞれの行の末尾、先頭にスペース4個を加えています。[%+ +%]の部分を、-、=、~にして検証しました。
ghi[% # ここから後ろの空白除去 +%] jkl mno [%+ # これより前の空白除去 %]pqr
結果
[%+ +%] ghi jkl mno pqr [%- -%](改行LF) ghi jkl mno pqr [%- -%](改行CRLF) ghi jkl mno pqr [%= =%] ghi jkl mno pqr [%~ ~%] ghijkl mnopqr