我正在尝试在另一个模板中包含 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 标记之间的空格,而不是内部。