如何使用 Twig 打印格式化 html?

How to print formatted html using Twig?

我传入包含 html 代码的 twig 模板变量。当我打印它时,我得到类似的东西:

<div class="links"> <span class="logo"></span> <a href="/">homepage</a> <a href="/page_1">page 1</a> <a href="/page_2">page 2</a> <a href="/page_3">page 3</a> </div> 

如何使代码看起来更具可读性?像这样:

 <div class="links">
    <span class="logo"></span>
    <a href="/">homepage</a>
    <a href="/page_1">page 1</a>
    <a href="/page_2">page 2</a>
    <a href="/page_3">page 3</a>
</div>

我正在为您的问题提供示例解决方案。希望对你有帮助。

{{ title }} {{ entity_print_css }} {{ content }}

示例节点--文章--pdf.html.twig

{{ content.field_name }} {{ content.body }} {{ label }} {{ content.field_name.0.value }}

源 HTML 完全按照您传入的方式显示。我能想到的解决此特定问题的一种方法是使用 to format the HTML and create a Twig filter/function 1 之类的解决方案在 Twig 模板中处理它。

如果您想按代码片段的原样显示 html,我建议您将 <pre> 包裹起来。

<pre>{{ html }}</pre>

demo

如果你只想保留换行符和制表符,你可以用 div 包装 var 并将 white-space 设置为 pre

<style>
    div.pre {
        white-space: pre;
    }
</style>
<div class="pre">{{ html }}</div>