Horsefeather

Horsefeather is an opinionated, modern, pretty, and clean Zola theme that has the purpose of greatly simplifying the process of rolling up your blog. It aims to provide all the necessary options for comfortable writing, while keeping the balance of simplicity. It is a fork of Duckquill with a few more features added on.

With it, you can change some configuration variables, tweak some of the included graphics, and have a nice blog up in minutes!

Some of the features Duckquill has to offer:

On top of these, Horsefeather adds:

If you use Horsefeather and enjoy it, please consider buying the original author of Duckquill a coffee, it would mean the world to me ^^.

Installation

First, if you already have Git setup, add this theme as a submodule:

git submodule init
git submodule add https://code.thishorsie.rocks/karcsesz/horsefeather.git themes/horsefeather

Otherwise, simply clone it to your themes directory:

git clone https://code.thishorsie.rocks/karcsesz/horsefeather.git themes/horsefeather

It is highly recommended to switch from the main branch to the latest release:

cd themes/horsefeather
git checkout tags/v7.0.0

Then, enable it in your config.toml:

theme = "horsefeather"

To update the theme, simply switch to a new tag:

git submodule update --remote --merge
cd themes/horsefeather
git checkout tags/v6.3.0

Check the changelog for all versions after the one you are using; there may be breaking changes that require manual involvement.

Options

Horsefeather offers some configuration options to make it fit you better; most options have pretty descriptive comments, so it should be easy to understand what they do.

Front Matter

Horsefeather has some front matter variables that you can use by setting them in the [extra] section:

Global

Configuration variables from config.toml that can be set/overriden per page/section:

Other variables:

Blog post specific:

In [extra.comments] section:

Localization

Horsefeather ships with a localization system based on one used in tabi, it’s very easy to use and quite flexible at the same time.

To add a translation, simply create a file in your site’s i18n directory called LANG_CODE.toml, e.g fr.toml. The language code should be either ISO 639-1 or BCP 47.

Inside that file, copy-paste one of the existing translations from Horsefeather and adapt it to your needs. You can also check tabi translation files for reference.

Additionally to translating Horsefeather, you can also override the English stings by copy-pasting en.toml from Horsefeather to the i18n directory of your website and adjusting the values to your liking.

Custom Styles

To add your own or override existing styles, create a custom style and add it in the config.toml:

[extra]
styles = [
  "YOUR_STYLE.css",
  "ALSO_YOUR_STYLE.css"
]

Additional styles are expected it to be in the static directory. If you are using Sass they will be compiled there by default.

If for some reason overridden style is not respected, try using !important (don’t use it unless needed). You can import styles from Horsefeather using:

@use "../themes/horsefeather/sass/NEEDED_FILE.scss";

You can also load styles per page/section by setting them inside page’s front matter:

[extra]
styles = [
  "YOUR_PAGE_STYLE.css"
]

Accent Color

Horsefeather respects chosen accent color everywhere. To use your own, simply change it in config.toml:

[extra]
accent_color = "#3584e4"

Additionally, you can set a separate color for dark mode:

[extra]
accent_color_dark = "#ff7800"

Favicon

Files named favicon.png and apple-touch-icon.png are used as favicon and Apple Touch Icon respectively. For animated favicon you can use APNG with the png file extension.

Assets Sources

All sources for the original Duckquill assets are available here and licensed under CC BY-SA 4.0.

Credits

Thanks To