Zola ʕ•ᴥ•ʔ Bear Blog
🧸 A Zola-theme based on Bear Blog.
Free, no-nonsense, super-fast blogging.
Demo
This theme has multiple demo sites, to provide examples of how to set up deployment - Vercel - Netlify - Gitlab Pages - Cloudflare Pages
Screenshot
When the user's browser is running »dark mode«, the dark color scheme will be used automatically. The default is the light/white color scheme. Check out the style.html
-file for the implementation.
Installation
If you already have a Zola site on your machine, you can simply add this theme via
git submodule add https://codeberg.org/alanpearce/zola-bearblog themes/zola-bearblog
Then, adjust the config.toml
as detailed below.
For more information, read the official setup guide of Zola.
Alternatively, you can quickly deploy a copy of the theme site to Netlify using this button:
(Note that this method makes it harder to keep up-to-date with theme updates, which might be necessary for newer versions of Zola.)
Adjust configuration / config.toml
Please check out the included config.toml
Content & structure
Menu
Create an array in extra
with a key of main_menu
. url
is passed to get_url
[[extra.main_menu]]
name = "Home"
url = "@/_index.md"
[[extra.main_menu]]
name = "Bear"
url = "@/bear.md"
[[extra.main_menu]]
name = "Zola"
url = "@/zola.md"
[[extra.main_menu]]
name = "Blog"
url = "@/blog/_index.md"
Adding / editing content
Index-Page
The contents of the index
-page may be changed by editing your content/_index.md
-file.
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
-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
.
[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 and Pull Requests.
Special Thanks 🎁
A special thank you goes out to Herman, for creating the original ʕ•ᴥ•ʔ Bear Blog and Jan Raasch for creating the hugo port of the Bear Blog theme.