Spaceless не хочет работать правильно в Symfony2 Twig Template

Следующий код:

{% spaceless %}
    blablabla
        blablabla
            blablabla
        blablabla
    blablabla
{% endspaceless %}

Я думал, что он должен вернуть следующую строку:

blablabla blablabla blablabla blablabla blablabla

но в источнике страницы я вижу следующее:

    blablabla
        blablabla
            blablabla
        blablabla
    blablabla

Wtf?

Как это сделать без какого-либо html <tags>?

Ответ 1

Вы можете добиться этого, используя модификатор управления пробелами в комментарии твига:

{#-  #}blablabla {# -#}
    blablabla {# -#}
            blablabla {# -#}
    blablabla {# -#}
blablabla{# -#}

Комментарий 'regular' выглядит следующим образом: {# my comment #}

Добавление '-' приведет к удалению пробелов до или после комментария (или обоих):

  • удалить пробелы перед комментарием: {# - мой комментарий #}
  • удалить пробелы после комментария: {# мой комментарий - #}
  • удалить пробелы до и после: {# - мой комментарий - #}

Кстати, это также работает для {{-... -} и {% -... -%}

Ответ 2

Как объясняется в документации:" Используйте тег без пространства для удаления пробелов между тегами HTML, пробелы NOT в пределах HTML-теги или пробелы в тексте:

{% spaceless %}
    <div>blablabla</div>
        <div>blablabla</div>
            <div>blablabla</div>
        <div>blablabla</div>
    <div>blablabla</div>
{% endspaceless %}

Будет выводиться:

<div>blablabla</div><div>blablabla</div><div>blablabla</div><div>blablabla</div><div>blablabla</div>