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, 23 insertions(+), 0 deletions(-)

changed files
M README.mdREADME.md
@@ -73,6 +73,29 @@ ### Adding your branding / colors / css
Add a `custom_head.html`-file to your `templates/`-directory. In there you may add a `<style>`-tag, *or* you may add a `<link>`-tag referencing your own `custom.css` (in case you prefer to have a separate `.css`-file). Check out the [`style.html`](https://codeberg.org/alanpearce/zola-bearblog/src/branch/main/templates/style.html)-file to find out which CSS-styles are applied by default. +### Table of contents + +Table of contents are not rendered by default. To render them, set `extra.table_of_contents.show = true` in `config.toml`. + +The table of contents is rendered inside a `details` element. +If you want the section to be collapsed on page load, set `extra.table_of_contents.visible_on_load = false`. +This defaults to `true`. + +In addition, `extra.table_of_contents.max_level` can limit the maximum level of headers to show. +To show only `h1`s, set `max_level = 1`, to show `h1`s and `h2`s, set `max_level = 2`, and so on. +By default, `max_level` is set to 6, so all headers on the page are shown. + +Below is an example of how to configure the table of contents in `config.toml`. + +```toml +[extra.table_of_contents] +show = true +max_level = 2 +visible_on_load = false +``` + +It can also be toggled on page-by-page basis. Add `extra.hide_table_of_contents = true` to the page's frontmatter to hide the table of contents for that specific page. + ## Issues / Feedback / Contributing Please use [Codeberg issues](https://codeberg.org/alanpearce/zola-bearblog/issues) and [Pull Requests](https://codeberg.org/alanpearce/zola-bearblog/pulls).