脚本块内的无空格标签

时间:2018-03-14 14:23:04

标签: twig

我正在尝试将其内联,因此呈现的页面不是100,000行。 似乎无空间标签在这里什么也没做。

输入:

{% for log in logs -%}
    {% spaceless %}
        {
            id: {{ log.id }},
            description: '{{ log.description }}'
        },
    {% endspaceless %}
{% endfor -%}

预期产出:

{id:17186,description:'Test Log'},
{id:17187,description:'Test Log 2'},

输出:

{
    id: 17186,
    description: 'Test Log'
},
{
    id: 17187,
    description: 'Test Log 2'
},

1 个答案:

答案 0 :(得分:0)

documentation说的一样,您可以使用spaceless标记删除HTML标记之间的空白 ,而不是HTML标记中的空白或纯文本中的空白"

您可以改为control whitespace,例如像这样:

{% for log in logs -%}
    {
        {{- 'id' }}: {{ log.id }},
        {{- 'description' }}: '{{ log.description }}'
    {{- '},' }}
{%- endfor %}

以上产生了这个:

{id: 17186,description: 'Test Log'},{id: 17187,description: 'Test Log 2'},

缺点是Twig代码更加丑陋。

这是使用string interpolation的替代方案:

{% for log in logs -%}
    {
        {{- 'id' }}: {{ log.id }},
        {{- 'description' }}: {{ "'#{log.description}'" -}}
    },
{%- endfor %}
{id: 17186,description: 'Test Log'},{id: 17187,description: 'Test Log 2'},

Twig代码现在看起来更好,但请注意单引号已转换为'。你可能想也可能不想做点什么。

您也可以像文档建议那样使用像Tidy这样的第三方库。