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を超えており、拡張機能を作成する必要がありますか?
ありがとう