コーディングをしていると、htmlタグ間のスペースや、改行などを削除したいときがあると思います。
Twigでの空白の制御について解説します。
空白制御修飾子「-」を使う方法:空白の削除
Twigのタグや変数の記述に修飾子-
を使用することで空白を削除することが可能です。
使用例
{% set foo = 'test' %} // sample1 remove all whitespace (including newlines) <li> {{- foo }} </li> // result <li>test </li> // sample2 removes all whitespace (excluding newlines) <li> {{~ foo }} </li> // result <li> test</li>
サンプルを見ていただくとわかる通り、-
を付けた側のスペース(改行)が削除されます。
Filterを使って空白を制御する
spaceless
フィルターを使うことでも空白を削除することができます。
この場合は、フィルターが適用された値に対して、空白を削除します。
{{ "<div> foo </div> "|spaceless }} // result <div>foo</div>
上記のように使用します。
apply
タグを使うことでタグで囲った部分すべてに適用できます。
{% apply spaceless %} <div> foo bar </div> {% endapply %} // result <div>foo bar</div>
apply
はフィルターを囲った部分に対して適用してくれるタグです。
他のフィルターでも使えるので覚えておくと便利です。
※Twig 2.xの時は、{% spaceless %}
というタグがありました。
上記applyと同様に機能します。
Twigおすすめの書籍
Twigだけに特化した書籍は読んだことがないのですが、AmazonのKindleにありました。
これと同じくらいブログでまとめられたらと思います。