_          _          _          _          _
    >(')____,  >(')____,  >(')____,  >(')____,  >(') ___,
      (` =~~/    (` =~~/    (` =~~/    (` =~~/    (` =~~/
jgs~^~^`---'~^~^~^`---'~^~^~^`---'~^~^~^`---'~^~^~^`---'~^~^~

Duckquill

Duckquill is a modern, pretty, and clean (and opinionated) Zola theme that has the purpose of greatly simplifying the process of rolling up your blog. It aims to provide all the needed options for comfortable writing, keeping the balance of it being simple.

Edit a bit of metadata and tweak some of the included graphics and have a blog up in minutes!

Duckquill is made based on needs of my website, if you need some feature/configuration that doesn’t exist feel free to open an issue or better yet, pull request!

Installation

First, download this theme to your themes directory:

git clone https://codeberg.org/daudix/duckquill.git themes/duckquill

…or add as submodule for easy updating (recommended if you already have git setup on site):

git submodule init
git submodule add https://codeberg.org/daudix/duckquill.git themes/duckquill

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

cd themes/duckquill
git checkout tags/v3.1.0

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

Note: Check the changelog for all versions that came after the one you are using, there may be some breaking changes that need manual involvement.

git submodule update --remote --merge
git tag --list
git checkout tags/v3.1.0

Then, enable it in your config.toml:

theme = "duckquill"

Options

Duckquill 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.

Localization

Duckquill 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 ISO 639-1 or BCP 47.

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

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

Custom Stylesheets

You can add your own or override existing styles by creating custom stylesheet and adding it in the config.toml:

[extra]
stylesheets = [
  "YOUR_STYLE.css"
]

Additional stylesheets; expects it to be in the static directory. If you are using Sass it will be compiled there anyway.

If for some reason overridden class are not respected, try using !important. You can import styles from Duckquill using:

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

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

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

Primary Color

Duckquill respects chosen primary color everywhere, simply change the primary color in config.toml:

[extra]
primary_color = "COLOR_CODE"
primary_color_alpha = "COLOR_CODE"

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 png file extension.

Test Pages

In the Wild

It starts to get long, so click to expand.

In Credits

Assets Sources

All sources for Duckquill’s assets are available here and licensed under CC BY-SA 4.0. The reason for not putting the sources in the same repo as Duckquill itself is simple: I want it to be as small as possible, so that repo cloning is fast and doesn’t make the site significantly heavier; this is also why the demo uses remote images instead of local copies.

Credits

Tools Used

As for the code formatter I use built-in VSCodium one. Prettier is good but I don’t like how it tries to make code fit in a very narrow column, this can be changed of course, but built-in formatter does it’s job so I don’t bother doing so.

Thanks To