all repos — zola-bearblog @ baabcb634bdffb8623eacc410e8707a3b4afe2b5

Port of bear blog theme to zola

feat(table of contents): Add table of contents This feature is disabled by default, but can be enabled/disabled globally or per-page. Zola already provides `page.toc`, this PR simply adds a macro to recursively render that data in nested `ul`s. It also establishes some configuration options to display it and set a maximum headers level.

Emilio Ziniades
commit

baabcb634bdffb8623eacc410e8707a3b4afe2b5

parent

2c9ca00042ec7c1a4da5ad927f19e8849e5ae96c

1 file changed, 12 insertions(+), 0 deletions(-)

changed files
A templates/macros.html
@@ -0,0 +1,12 @@
+{% macro table_of_contents(toc, max_level) %} +<ul> + {% for header in toc %} + <li> + <a href="{{ header.permalink | safe }}">{{ header.title }}</a> + {% if header.children and header.level < max_level %} + {{ self::table_of_contents(toc=header.children, max_level=max_level) }} + {% endif %} + </li> + {% endfor %} +</ul> +{% endmacro %}