Giter Site home page Giter Site logo

FR: Table of Contents about tabi HOT 4 CLOSED

welpo avatar welpo commented on May 28, 2024
FR: Table of Contents

from tabi.

Comments (4)

stevenroose avatar stevenroose commented on May 28, 2024

Oh, I see that it is already provided as an [extra] field, but not documented :)

Then maybe change this in an issue to move the field to the top-level front-matter because it seems that Zola supports this field natively.

You could support both I guess. Maybe I can fix that.

from tabi.

stevenroose avatar stevenroose commented on May 28, 2024

Wait, I'm confused, I see this line

51:        {% if page.extra.toc | default(value=false) and page.toc %}

What does that do/mean exactly? I thought the top-level toc field was a boolean too (because the page I linked does if page.toc { but I guess that check just checks if the variable is provided.

So the extra.toc boolean is necessary and we can't use the top-level toc fields?

from tabi.

welpo avatar welpo commented on May 28, 2024

Hey Steven!

  • page.extra.toc is tabi's own boolean value to enable the ToC at the top of the page.

  • page.toc is an array of Header objects that Zola generates automatically based on the headings in the markdown content. Each Header object has a few fields.

The line of code you shared is checking whether two conditions are met:

  1. page.extra.toc = true: the ToC should be rendered at the top of the article (defaults to false)
  2. page.toc: the page actually has a ToC (the array of Header). It will evaluate tofalse if it doesn't.

It's important to check the second part because not all pages have ToCs. For example, this page has no headers in the article, so it doesn't get a page.toc.

Zola doesn't actually have a built-in ToC. The page you linked simply shows an example as to how it could be implemented. In tabi, the ToC is built by the table_of_contents.html macro.

I'm glad you found the documentation on the theme's demo. In the future, I plan on adding a long page explaining all of tabi's features (both in config.toml and within the [extra] section of post's front matter).

from tabi.

welpo avatar welpo commented on May 28, 2024

The guide to all of tabi's settings is live! Check it out: Mastering tabi Settings: A Comprehensive Guide

from tabi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.