我试图让 Jinja2 宏输出到调用模板的不同部分。我想这样做的原因是因为有内联 Javascript 作为宏的一部分,但我希望所有 Javascript 都在模板的末尾。我基本上想做这样的事情
{% import 'tooltip.html' as tooltip %}
<html>
<body>
{% block contents %}
{% tooltip('mytool') %}
{% endblock %}
<script>
{% block javascript %}
{% endblock %}
</script>
</body>
</html>
并在宏文件中
{% macro tooltip(name) %}
<div id='{{ name }}'>
This is my tooltip
</div>
{% block javascript %}
jQuery("#{{ name }}").click(function(){//do something});
{% endblock %}
{% endmacro %}
所以最终的结果会是这样的
<html>
<body>
<div id='mytool'>
This is my tooltip
</div>
<script>
jQuery("#mytool").click(function(){//do something});
</script>
</body>
</html>
我想要我所有的 javascript 在我的模板的末尾,但宏似乎只是在那里返回。
是否有我遗漏的东西或者这超出了标准的 Jinja2 并且需要编写扩展程序?
谢谢