如何允许HTML通过Nunjucks的设置块



我真的很高兴看到我们可以通过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块

最新更新