导入神社宏
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 并且不会转义它。
详情见
我有一个相对简单的宏,其中包含一些极其重复的代码的布局。
{% 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 并且不会转义它。
详情见