导入神社宏

Importing jinja macros

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

{% 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 对于提供任何见解也不是很有帮助。

如有任何帮助,我们将不胜感激!

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

详情见