我想在 Jinja2 模板中创建目录和尾注。怎样才能完成这些任务?
例如,我想要一个模板如下:
{% block toc %}
{# ... the ToC goes here ... #}
{% endblock %}
{% include "some other file with content.jnj" %}
{% block endnotes %}
{# ... the endnotes go here ... #}
{% endblock %}
其中some other file with content.jnj
有这样的内容:
{% section "One" %}
Title information for Section One (may be quite long); goes in Table of Contents
...
Content of section One
{% section "Two" %}
Title information of Section Two (also may be quite long)
<a href="#" id="en1">EndNote 1</a>
<script type="text/javsacript">...(may be reasonably long)
</script> {# ... Everything up to here is included in the EndNote #}
我说“可能相当长/相当长”的意思是说它不能合理地放在引号中作为宏或全局函数的参数。
我想知道在 Jinja2 的框架内是否有一种可以适应这种情况的模式。
我最初的想法是创建一个扩展,以便可以为部分和尾注设置一个块,如下所示:
{% section "One" %}
Title information goes here.
{% endsection %}
{% endnote "one" %}
<a href="#">...</a>
<script> ... </script>
{% endendnote %}
然后有全局函数(在 Jinja2 环境中传递):
{{ table_of_contents() }}
{% include ... %}
{{ endnotes() }}
但是,虽然这适用于尾注,但我认为它需要对目录进行第二次传递。
感谢您的阅读。我非常感谢您的想法和意见。
布赖恩