🌱 tabi An accessible Zola theme with search, multi-language support, optional JavaScript, a perfect Lighthouse score, and comprehensive documentation. Crafted for personal websites and blogs. [!TIP] Want to start blogging right away? Use the tabi-start template to get a complete site up and running in minutes. See a live preview (and the theme's documentation) here. Explore the Sites Using tabi section to see…
An accessible Zola theme with search, multi-language support, optional JavaScript, a perfect Lighthouse score, and comprehensive documentation. Crafted for personal websites and blogs.
The fastest way to create a new site is to use the tabi-start template. This gives you a complete blog setup with all the essential configuration ready to go.
Manual installation
To add tabi to you existing Zola site:
Initialize a Git repository in your project directory (if you haven’t already):
Zola generates and tabi loads the stylesheet for the configured theme. Choose any theme from this list. tabi requires style = "class".
Create a content/_index.md file. This file controls how your home page looks and behaves. Choose one of the following options:
Option A: Serve posts from /:
+++
title = "Home"
paginate_by = 5 # Show 5 posts per page.
+++
This will display posts in content/ with pagination.
Option B: Serve posts from a different path (e.g., blog/):
+++
title = "Home"
# Note we're not setting `paginate_by` here.
[extra]
section_path = "blog/_index.md" # Where to find your posts.
max_posts = 5 # Show 5 posts on the home page.
+++
This will display the latest 5 posts from the blog/ section.
Do not set paginate_by if you choose this option.
Use the full path to the section’s _index.md file. Using section_path = "blog/" will not work.
Warning 警告
Do not set both paginate_by and section_path in content/_index.md.
These settings are mutually exclusive and using both may result in no posts being displayed.
If you want an introduction section (see screenshot above), add these lines to content/_index.md:
The content outside the front matter will be rendered between the header title and the posts listing. In the screenshot above, it’s the text that reads “tabi is a fast, lightweight, and modern Zola theme…”.
If you want a multilingual site, you will need to set up each language. In config.toml, set the title and taxonomies for each language, like:
You will need an _index.{language_code}.md per language for each section (e.g. /blog or /projects) that you want to enable in that language.
The same is true for individual posts, which should have the exact same name as the default language, with an extra .{code} before the extension (e.g. the Spanish version of security.md would be security.es.md).
This configuration allows the language switcher to take the user to the translation of the current URL. If a translation doesn’t exist, the 404 page will be displayed, with an explanation in each language set in the config.
评论