我试图在另一个Twig模板中包含一个模板,但是由于模板中的尾部换行,导致出现了不理想的空白,我的使用情况是,包含发生在句子中间,就在逗号之前,我不想在逗号之前出现空白。
我的用例是,包含发生在句子中间,就在逗号之前,我不希望逗号之前有任何空白。
基本模板。
Né le {{ include("date.html.twig", {date: date}) }}, décédé le…
包含的模板。
<time datetime="...">
{{- date.format() -}}
</time>
期望的结果。
Né le 6 mai 1977, décédé le…
实际结果 :
Né le 6 mai 1977 , décédé le…
我可以确认尾部的换行是造成这个问题的原因,但删除它对我来说不是一个可行的解决方案,因为大多数工具都被配置为在缺失时添加它。
有什么办法可以修剪掉这个尾部的换行吗?
我在写这个问题的时候找到了解决方案。
用Twig标签来结束包含的模板似乎已经足够了。所以,我最后把内容包在了一个 spaceless
过滤器。
{% apply spaceless %}
<time datetime="...">
{{- date.format() -}}
</time>
{% endapply %}
技术上使用 {% if true %} … {%- endif %}
也能用,但就不那么容易理解了。
-
里面还需要修饰符 <time>
因为 spaceless
只删除HTML标签之间的空白,而不是里面的空白。