4

我正在构建一个模式库,该库显示我的生产树枝部分以及一些附加信息。在每种模式下,我都希望从我的模式中生成两个代码片段。一种是解析后的 H​​TML,另一种是我的 Twig 代码,直接来自部分文件,包括变量和其他 Twig 代码。

问题

如何重用已经在页面上解析和呈现的块,但以未解析的形式?

文件:

  • moduleXYZ.html(生产模块代码),它扩展了……</li>
  • _pattern.html(带有用于模式库的附加信息代码的包装器),它使用...</li>
  • _pattern_foot.html(在这里,定义_pattern.html和覆盖的块moduleXYZ.html应该逐字显示)

模块XYZ.html:

{% extends '_pattern.html' %}
{% block pattern %}
  <h2>{{ variable|default('Some placeholder text') }}</h2>
{% endblock %}

_pattern.html:

{% block pattern %}
  No pattern defined.
{% endblock %}
{% use '_pattern-foot.html' %}
{% block('patternfoot') %}

_pattern-foot.html:

{% block patternfoot %}
  <h2>HTML for this pattern:</h2>
  <pre><code>
  {{ block('pattern')|e }} {# THIS WORKS, escaped HTML is displayed. #}
  </code></pre>

  <h2>Twig for this pattern:</h2>
  <pre><code>
  {{ block('pattern')|e }} {# THIS IS NOT WORKING, of course, because the block is already parsed. #}
  </code></pre>

{% endblock %}

什么没用

我设法通过将“模式”块包装在中来获得我想要的结果moduleXYZ.html{% verbatim %}但是当然我的逻辑/变量在模块本身中也没有被解析。

我知道不可能将变量传递给block()函数,所以我也不能有条件地为我重用的块逐字切换(或者我可以吗?)。

4

0 回答 0