在Jinja2中转义HTML

时间:2016-02-22 04:04:20

标签: html jinja2

我正在使用jinja2撰写我的博客。我的许多博客文章都包含html代码段作为代码示例,但替换了<和>与& gt;和& lt;是乏味和烦人的。我想做这样的事情:

<pre><code class="html">
  {% escapehtml %}
  <div>This is how you make a div</div>
  {% endescapehtml %}
</pre></code>

我喜欢渲染pre和code标签的结果,但是逃避div。我尝试过使用autoescape,逐字和原始版本,但它们似乎都没有做我想要的(我相信它们围绕着javascript和jinja&#39; s {{}}转义)。有没有内置的方法来做到这一点?我是否需要编写自己的模板标签?

1 个答案:

答案 0 :(得分:0)

Filter sections允许您对模板数据块应用常规Jinja2过滤器。

只需将代码包装在特殊的过滤器部分中:

<pre><code class="html">
  {% filter escape %}
  <div>This is how you make a div</div>
  {% endfilter %}
</pre></code>