Fork of tabi https://github.com/welpo/tabi but without the bloat
Find a file
github-actions[bot] 479fd96e50
⬆️ chore(deps): upgrade mermaid to v11.10.0 (#563)
Co-authored-by: welpo <welpo@users.noreply.github.com>
2025-08-20 15:03:21 +02:00
.githooks 👷 misc(CI): ignore deleted files in pre-commit 2024-11-16 19:01:14 +01:00
.github ⬆️ chore(deps): update actions/checkout action to v5 (#562) 2025-08-15 18:26:59 +02:00
content feat: allow custom archive date format (#557) 2025-08-15 18:59:15 +02:00
i18n 🌐 fix(i18n): iine Arabic translation (#551) 2025-08-01 22:40:15 +02:00
sass feat(iine): add like buttons (#550) 2025-08-01 21:43:04 +02:00
scripts 🐛 misc(CI): fix Mermaid version detection 2025-03-15 09:25:40 +01:00
static ⬆️ chore(deps): upgrade mermaid to v11.10.0 (#563) 2025-08-20 15:03:21 +02:00
templates feat: allow custom archive date format (#557) 2025-08-15 18:59:15 +02:00
.gitignore 🙈 chore: add gitignore 2023-02-03 02:55:34 +09:00
.gitmodules 👷 misc(deps): replace local release script w/ git submodule 2024-09-25 00:41:11 +02:00
.prettierignore 🎨 refactor: format JS with Prettier (#240) 2024-01-03 01:44:31 +01:00
.prettierrc.toml 🎨 refactor: format JS with Prettier (#240) 2024-01-03 01:44:31 +01:00
CHANGELOG.md 🔖 chore(release): prepare for v4.1.0 2025-06-14 09:53:41 +02:00
cliff.toml 👷 misc: update git-cliff variables to commit.remote 2024-10-18 19:01:16 +02:00
CODE_OF_CONDUCT.md 📝 chore: update contact e-mail 2023-10-27 22:26:59 +02:00
config.toml feat: allow custom archive date format (#557) 2025-08-15 18:59:15 +02:00
CONTRIBUTING.md 📝 docs(CONTRIBUTING): fix broken link to commit message style 2024-10-15 17:54:30 +02:00
LICENSE 📄 docs: add license 2023-02-04 13:10:24 +01:00
light_dark_screenshot.png 📝 docs: update tabi screenshots 2024-02-16 01:07:51 +01:00
lighthouse_score.png 📝 docs: mention perfect Lighthouse score 2023-04-16 03:40:52 +02:00
README.md feat(iine): add like buttons (#550) 2025-08-01 21:43:04 +02:00
screenshot.png 📝 docs: update tabi screenshots 2024-02-16 01:07:51 +01:00
sumi.toml 🔧 misc(git-sumi): improve emoji matching 2024-02-11 13:31:07 +01:00
theme.toml feat: allow custom archive date format (#557) 2025-08-15 18:59:15 +02:00

PRs welcome Contributors Forks Last commit
Latest release Documentation License Clean commits Average time to resolve an issue Percentage of issues still open

🌱 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 real-world applications.

tabi (旅, /tɐˈbi/): Journey.

tabi

tabi has a perfect score on Google's Lighthouse audit:

lighthouse

Features

Installation

Note

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:

  1. Initialize a Git repository in your project directory (if you haven't already):
git init
  1. Add the theme as a git submodule:
git submodule add https://github.com/welpo/tabi.git themes/tabi

Or clone the theme into your themes directory:

git clone https://github.com/welpo/tabi.git themes/tabi

Required configuration

  1. Enable the theme in your config.toml:
theme = "tabi"
  1. Set a title in your config.toml:
title = "Your Site Title"
  1. Configure code block highlighting in your config.toml:
[markdown]
highlight_code = true
highlight_theme = "css"
  1. 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.

  1. If you want an introduction section (see screenshot above), add these lines to content/_index.md:
[extra]
header = {title = "Hello! I'm tabi~", img = "img/main.webp", img_alt = "Your Name" }

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…".

  1. 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:
[languages.es]
title = "~/tabi"
taxonomies = [{name = "tags", feed = true}]

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.

To learn more about multilingual support, see the Frequently Asked Questions.

Updating tabi

If you added the theme as a git submodule, run:

git submodule update --remote themes/tabi

If you cloned it:

cd themes/tabi
git pull

Sites using tabi

Website Creator Description Site Source
osc.garden Óscar Fernández (welpo) Data science, psychology, and Zola Source
seadve.github.io Dave Patrick Caberto (SeaDve) Personal blog and portfolio with custom CSS Source
mikufan.page Nadia Personal blog Source
tim-boettcher.online Tim Böttcher Insights and ramblings of a deafblind programmer Source
www.richtman.au Ariel Richtman Personal tech blog Source
Ponderosa Games John Burak (JVimes) A friendly indie game company
jmbhughes.com Marcus Hughes (jmbhughes) Personal blog Source
szabolcs.me Szabolcs Fazekas (szabolcsf) Personal blog Source
Nizzlay Niels Gouman (Nizzlay) Personal blog Source
ZzMzaw's blog ZzMzaw (ZzMzaw) Personal blog Source
idle-ti.me Jérôme Ramette (be-next) Personal blog Source
tzinm.me Tzinm Personal blog Source
b1n.io b1nhack Linux kernel vulnerability researcher Source

Using tabi? Feel free to create a PR and add your site to this list.

Inspiration

This theme was inspired by:

Support

Something not working? Have an idea? Let us know!

Contributing

Please do! We appreciate bug reports, improvements to translations or documentation (however minor), feature requests…

Take a look at the Contributing Guidelines to learn more.

License

The code is available under the MIT license.