我正在构建一个模式库,显示我的生产枝条部分和一些附加信息。在每个模式下,我希望有两个代码片段,我想从我的模式生成。一个是解析的HTML,另一个是我的Twig代码,直接来自部分文件,包括变量和其他Twig代码。
如何重复使用我已在页面上解析和呈现的块,但是以未解析的形式?
moduleXYZ.html
(生产模块代码),扩展...... _pattern.html
(带有模式库附加信息代码的包装器),它使用... _pattern_foot.html
(此处,_pattern.html
中定义并在moduleXYZ.html
中覆盖的块应逐字显示){% extends '_pattern.html' %}
{% block pattern %}
<h2>{{ variable|default('Some placeholder text') }}</h2>
{% endblock %}
{% block pattern %}
No pattern defined.
{% endblock %}
{% use '_pattern-foot.html' %}
{% block('patternfoot') %}
{% 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 %}
我设法通过包装&#34;模式&#34;得到了我想要的结果。 moduleXYZ.html
中的{% verbatim %}
中阻止,但当然我的逻辑/变量也会在模块本身中解析。
我知道将变量传递到block()
函数是不可能的,所以我也不能有条理地为我重复使用的块切换(或者我可以吗?)。