diff options
Diffstat (limited to 'templates')
-rw-r--r-- | templates/macros.html | 12 | ||||
-rw-r--r-- | templates/page.html | 7 |
2 files changed, 19 insertions, 0 deletions
diff --git a/templates/macros.html b/templates/macros.html new file mode 100644 index 0000000..2ad23e6 --- /dev/null +++ b/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 %} diff --git a/templates/page.html b/templates/page.html index 5c1a80b..2e2ef86 100644 --- a/templates/page.html +++ b/templates/page.html @@ -1,3 +1,4 @@ +{% import "macros.html" as macros %} {% extends "base.html" %} {% block title %}{{ page.title }} | {{ super() }}{% endblock %} @@ -15,6 +16,12 @@ </p> {%- endif %} {%- endif %} + {%- if config.extra.table_of_contents.show and not page.extra.hide_table_of_contents and page.toc %} + <details {%if config.extra.table_of_contents.visible_on_load %}open{% endif %}> + <summary>Table of Contents</summary> + {{ macros::table_of_contents(toc=page.toc, max_level=config.extra.table_of_contents.max_level) }} + </details> + {%- endif %} <main> {{ page.content | safe }} </main> |