导入jinja宏

时间:2016-03-05 06:15:28

标签: html jinja2

我有一个相对简单的宏,其中包含一些非常重复的代码的布局。

{% macro build_thing(var1, var2, var3) %} 
  <div class="col-md-4 col-sm-6">
    <a href="{{ var1 }}"></a>
    <div class="caption">
      <h4>{{ var2 }}</h4>
      <p class="text-muted">{{ var3 }}</p>
    </div>
  </div>
{% endmacro %}

实际的宏有点长,但基本上非常相似。如果我将代码直接放入我使用它的模板(比如home.html),并用

调用它
{{ build_thing("genericClass", "Lorem Ipsum", "More Filler") }}

然后页面呈现完美,没有问题。但是,如果我将代码放入另一个模板文件(例如macros.jinja)并尝试通过

导入宏
{% from "macros.jinja" import build_thing %}

它呈现页面,但在整个宏周围加上引号,所以所有代码都变为纯文本而不是html。我已经尝试在堆栈溢出中搜索解决方案,但我找不到类似的问题。此外,宏的documentation对提供任何见解也没有多大帮助。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

问题是您的文件的扩展名jina需要html,以便jinja将其识别为html并且不会将其转义。

有关详细信息,请参阅this answer