保持包含Twig subtemplate的缩进级别

Pro*_*r44 6 symfony twig

我正在使用Twig模板引擎,并希望包含一个子模板linke以下示例:

<header>
  <div id="menu">
    {% include 'menu.twig' %}
  </div>
</header>
Run Code Online (Sandbox Code Playgroud)

包含的文件包含以下代码:

<ul>
  <li>item 1</li>
  <li>item 2</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

现在Twig生成followig HTML代码:

<header>
  <div id="menu">
    <ul>
  <li>item 1</li>
  <li>item 2</li>
</ul>
  </div>
</header>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,缩进级别仅适用于所包含文件的第一行,这导致上面的代码非常不整洁且难以维护.

如何通过这样正确的缩进从Twig获得正确的输出?

<header>
  <div id="menu">
    <ul>
      <li>item 1</li>
      <li>item 2</li>
    </ul>
  </div>
</header>
Run Code Online (Sandbox Code Playgroud)

Jav*_*luz 1

我认为在包含模板时没有办法保持缩进。我能想到的唯一解决方案是在变量中传递缩进级别,并在包含的模板中使用循环来为每行中的空白数量添加前缀。显然,这个“解决方案”是疯狂的,维护起来也是一场噩梦。

关于此评论:“[...] 这导致上面的代码非常混乱且难以维护。” 我想说以下几点:

  • HTML 是否“不整洁”并不重要。浏览器不会抱怨,用户也不会看到它。
  • 确实不好维护。幸运的是,您维护的是精美对齐的 Twig 模板,而不是生成的 HTML 代码。

如果 Twig 模板生成强制“完美对齐”的格式,则上述所有内容都会有所不同。但对于 HTML,请不要浪费时间来对齐标签。