From baabcb634bdffb8623eacc410e8707a3b4afe2b5 Mon Sep 17 00:00:00 2001 From: Emilio Ziniades Date: Sun, 12 May 2024 15:54:40 +0200 Subject: 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. --- templates/page.html | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'templates/page.html') 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 @@

{%- endif %} {%- endif %} + {%- if config.extra.table_of_contents.show and not page.extra.hide_table_of_contents and page.toc %} +
+ Table of Contents + {{ macros::table_of_contents(toc=page.toc, max_level=config.extra.table_of_contents.max_level) }} +
+ {%- endif %}
{{ page.content | safe }}
-- cgit 1.4.1