Trim 包含的 Twig 模板末尾的空格(尾随换行符)

Trim whitespace (trailing newline) at the end of included Twig template

我正在尝试将一个 Twig 模板包含在另一个模板中,但包含模板中的尾随换行符导致出现不需要的空白。

我的用例是 include 发生在句子中间,就在逗号之前,我不希望逗号之前有任何空格。

基本模板:

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…

我可以确认尾随换行符是问题的原因,但删除它对我来说不是一个可行的解决方案,因为大多数工具都配置为在缺少它时添加它。

有什么方法可以 trim 这个尾随换行符吗?

我在写题的时候找到了答案:

用 Twig 标签结束包含的模板似乎就足够了。所以我最终将内容包装在 spaceless 过滤器中:

{% apply spaceless %}
<time datetime="...">
  {{- date.format() -}}
</time>
{% endapply %}

从技术上讲,使用 {% if true %} … {%- endif %} 也可以,但不太容易理解。

- 修饰符在 <time> 中仍然需要,因为 spaceless 只删除 HTML 标签之间的空格,而不是内部。