我真的很高兴看到我们可以通过Nunjucks为set应用块赋值。允许HTML通过这种方法传递的正确方式是什么?
我想从我最初的nunjucks文件中做以下事情:
{% set demoSetBlock %}
<div class="mClass">
<p>a header value in a nunjucks set block</p>
</div>
{% endset %}
然后我想把它称为我的nunjucks模板,就像这样…
{{demoSetBlock}}
但是。。。它在网页上打印出内容和HTML标记,就像这样。。。
<div class="mClass"> <p>a header value in a nunjucks set block</p> </div>
我们如何将其渲染为…
a header value in a nunjucks set block
不确定这是否是解决这种情况的官方方法,但现在似乎对我有效的是在调用set块时使用|safe作为属性,如下所示:
{{demoSetBlock|safe}}
因此,我的HTML在浏览器上得到了完美的呈现。
这在的情况下很有帮助
- 当我不想依赖宏时
- 当我想依赖set作为工具组件来定义数据并通过模板的各个部分传递数据时
- 其中我有直接附加到我的主模板文件的其他包含文件(即
_include-header.njk
、_include-footer.njk
(。然后,我可以对其中一个文件使用set块