Update content of landing page
Some checks are pending
Publish / publish (push) Waiting to run

This commit is contained in:
david-swift 2025-02-25 14:12:48 +01:00
parent ba168a1927
commit 65e58e13ce

View File

@ -12,21 +12,20 @@ jgs~^~^`---'~^~^~^`---'~^~^~^`---'~^~^~^`---'~^~^~^`---'~^~^~
```
{% end %}
# Duckquill
# Duckling
Duckquill is an opinionated, modern, pretty, and clean [Zola](https://www.getzola.org) 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.
Duckquill is an minimal and feature-rich [Zola](https://www.getzola.org) theme that has the purpose of greatly simplifying the process of rolling up your project website. It aims to provide all the necessary options for comfortable writing, while keeping the balance of simplicity.
With it, you can change some configuration variables, tweak some of the included graphics, and have a nice blog up in minutes!
It is based on the [Duckquill](https://duckquill.daudix.one) theme for blogs.
Some of the features Duckquill has to offer:
Some of the features Duckling has to offer:
- Cute and informative social media cards for Discourse, Facebook, LinkedIn, Mastodon and more.
- [Mastodon-powered comments](https://carlschwan.eu/2020/12/29/adding-comments-to-your-static-blog-with-mastodon/); comment under a post by using your Mastodon account.
- Lightweight by default, powerful when needed; no mandatory JavaScript is used by default.
- Privacy respecting analytics using [GoatCounter](https://www.goatcounter.com), with support for self-hosting.
- Estimated read time of the post; put away those with short attention spans.
- Light/dark/system theme switcher (for some reason everyone likes these).
- Everything is tinted with the user-defined accent color for a pleasant look.
- A user-defined accent color for a pleasant look.
- GitHub-style alerts. Yes, they're pretty, but don't overuse them.
- Post banners; they're even used in the social media cards!
- YouTube/Vimeo shortcodes for easy video embedding.
@ -39,11 +38,6 @@ Some of the features Duckquill has to offer:
- LaTeX markup support via the [KaTeX](https://katex.org) library.
- Emoji favicon if you're lazy to draw one.
- Copy button for code blocks.
- Search functionality.
{% alert(tip=true) %}
If you use Duckquill and enjoy it, or just like my work, please consider [buying me a coffee](https://daudix.one/coffee/), it would mean the world to me ^^.
{% end %}
## Installation
@ -51,13 +45,13 @@ First, if you already have Git setup, add this theme as a submodule:
```bash
git submodule init
git submodule add https://codeberg.org/daudix/duckquill.git themes/duckquill
git submodule add https://git.aparoksha.dev/david-swift/duckling themes/duckling
```
Otherwise, simply clone it to your `themes` directory:
```bash
git clone https://codeberg.org/daudix/duckquill.git themes/duckquill
git clone https://git.aparoksha.dev/david-swift/duckling themes/duckling
```
{% alert(important=true) %}
@ -65,22 +59,22 @@ It is highly recommended to switch from the `main` branch to the latest release:
{% end %}
```bash
cd themes/duckquill
git checkout tags/v6.1.1
cd themes/duckling
git checkout tags/v0.1.0
```
Then, enable it in your `config.toml`:
```toml
theme = "duckquill"
theme = "duckling"
```
To update the theme, simply switch to a new tag:
```bash
git submodule update --remote --merge
cd themes/duckquill
git checkout tags/v6.1.1
cd themes/duckling
git checkout tags/v0.1.0
```
{% alert(important=true) %}
@ -89,11 +83,11 @@ Check the changelog for all versions after the one you are using; there may be b
## 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.
Duckling 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
Duckquill has some [front matter](https://www.getzola.org/documentation/content/page/#front-matter) variables that you can use by setting them in the `[extra]` section:
Duckling has some [front matter](https://www.getzola.org/documentation/content/page/#front-matter) variables that you can use by setting them in the `[extra]` section:
### Global
@ -106,6 +100,7 @@ Configuration variables from `config.toml` that can be set/overriden per page/se
- `styles`: Additional CSS styles; expects them to be in the `./static/` directory. If you are using Sass it will be generated there automatically.
- `scripts`: Additional JavaScript scripts; expects them to be in the `./static/` directory.
- `katex`: Whether to enable the KaTeX library for rendering LaTeX.
<--! TODO: Check table of contents -->
- `toc`: Enables table of contents. Only first 2 levels of headings are listed.
- `toc_inline`: Whether to render inline table of contents at the top of all pages, in addition to floating quick navigation buttons.
- `toc_ordered`: Whether to use numbered (ordered) list for table of contents.
@ -120,7 +115,11 @@ Other variables:
- `trigger`: Displays a trigger warning message.
- `disclaimer`: Displays a disclaimer message.
### Blog post specific:
<--! TODO: Add instructions for documentation and subprojects -->
### Blog Post Specific
<--! TODO: Check archived/featured/hot/poor -->
- `banner`: Filename of the [colocated](https://www.getzola.org/documentation/content/overview/#asset-colocation) banner image. Recommended dimensions are 2:1 aspect ratio and 1920x960 resolution.
- `banner_pixels` Makes the banner use nearest neighbor algorithm for scaling, useful for keeping pixel-art sharp.
@ -137,13 +136,13 @@ In `[extra.comments]` section:
### Localization
Duckquill ships with a localization system based on one used in [tabi](https://github.com/welpo/tabi), it's very easy to use and quite flexible at the same time.
Duckling ships with a localization system based on one used in [tabi](https://github.com/welpo/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](https://localizely.com/iso-639-1-list/) or [BCP 47](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry).
Inside that file, copy-paste one of the existing translations from Duckquill and adapt it to your needs. You can also check [tabi](https://github.com/welpo/tabi/tree/main/i18n) translation files for reference.
Inside that file, copy-paste one of the existing translations from Duckling and adapt it to your needs. You can also check [tabi](https://github.com/welpo/tabi/tree/main/i18n) 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.
Additionally to translating Duckling, you can also override the English stings by copy-pasting `en.toml` from Duckling to the `i18n` directory of your website and adjusting the values to your liking.
### Custom Styles
@ -159,10 +158,10 @@ styles = [
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 Duckquill using:
If for some reason overridden style is not respected, try using `!important` (don't use it unless needed). You can import styles from Duckling using:
```scss
@use "../themes/duckquill/sass/NEEDED_FILE.scss";
@use "../themes/duckling/sass/NEEDED_FILE.scss";
```
You can also load styles per page/section by setting them inside page's front matter:
@ -176,7 +175,7 @@ styles = [
### Accent Color
Duckquill respects chosen accent color everywhere. To use your own, simply change it in `config.toml`:
Duckling respects chosen accent color everywhere. To use your own, simply change it in `config.toml`:
```toml
[extra]
@ -196,105 +195,10 @@ Files named `favicon.png` and `apple-touch-icon.png` are used as favicon and App
## In the Wild
<details>
<summary>This list is starting to get long, so click on it to expand it.</summary>
- [agustinramirodiaz.github.io](https://agustinramirodiaz.github.io)
- [alavi.me](https://alavi.me)
- [aparoksha.dev](https://www.aparoksha.dev)
- [arfh.pages.dev](https://arfh.pages.dev)
- [bambalabs.co](https://www.bambalabs.co)
- [bano.dev](https://bano.dev)
- [benjaminandre.be](https://benjaminandre.be)
- [blog.digital-horror.co](https://blog.digital-horror.com)
- [blog.millefeuille42.fr](https://blog.millefeuille42.fr)
- [blog.pansi21.xyz](https://blog.pansi21.xyz)
- [blog.thundernetwork.org](https://blog.thundernetwork.org)
- [blog2.maki0419.com](https://blog2.maki0419.com)
- [cabysm.github.io](https://cabysm.github.io)
- [daveparr.info](https://www.daveparr.info)
- [davepoltorak.com](https://davepoltorak.com)
- [drismir.ca](https://drismir.ca)
- [enriquekesslerm.com](https://enriquekesslerm.com)
- [gregorni.gitlab.io](https://gregorni.gitlab.io)
- [harrypotterexplained.com](http://harrypotterexplained.com)
- [hyouteki.github.io](https://hyouteki.github.io)
- [ikergimenez.neocities.org](https://ikergimenez.neocities.org)
- [kaipeacock.com](https://kaipeacock.com)
- [larrabyte.dev](https://larrabyte.dev)
- [lifailon.github.io](https://lifailon.github.io)
- [luciengheerbrant.com](https://luciengheerbrant.com)
- [lukoktonos.com](http://www.lukoktonos.com)
- [matteorisso.github.io](https://matteorisso.github.io)
- [maxffarrell.com](https://maxffarrell.com)
- [maxime.letemple.fr](https://maxime.letemple.fr)
- [mourelask.xyz](https://mourelask.xyz)
- [muelsyse.codeberg.page](https://muelsyse.codeberg.page)
- [mukuljoshi.xyz](https://mukuljoshi.xyz)
- [nbenedek.me](https://nbenedek.me)
- [nikos-archive.org](https://nikos-archive.org)
- [nisf.be](https://nisf.be)
- [nullpuppy.github.io](https://nullpuppy.github.io)
- [nutn-isc.gitlab.io](https://nutn-isc.gitlab.io/nutn-isc-website/)
- [orzklv.uz](https://orzklv.uz)
- [penandink.work](https://penandink.work)
- [pyter.at](https://pyter.at)
- [reallysimple.io](https://www.reallysimple.io)
- [rerere.unlogic.co.uk](https://rerere.unlogic.co.uk)
- [rossjr.dev](https://rossjr.dev)
- [samienr.com](https://samienr.com)
- [shrimple.srht.site](https://shrimple.srht.site)
- [siddharthsabron.in](https://siddharthsabron.in)
- [sorg.codeberg.page](https://sorg.codeberg.page)
- [sungsphinx.codeberg.page](https://sungsphinx.codeberg.page)
- [tmblog.pages.dev](https://tmblog.pages.dev)
- [treeniks.github.io](https://treeniks.github.io)
- [vegner.io](https://vegner.io)
- [voluxyy.github.io](https://voluxyy.github.io/portfolio/)
- [winnydows.com](https://winnydows.com)
- [zlog.si-on.top](https://zlog.si-on.top)
- [zstg.is-a.dev](https://zstg.is-a.dev)
- Yours? <small>(feel free to [contact me](https://daudix.one/find/#contacts) or send a pull request)</small>
</details>
## In Credits
- [andreatitolo.com](https://www.andreatitolo.com/credits)
- [aplos.gxbs.me](https://aplos.gxbs.me)
- [archaeoramblings.com](https://www.archaeoramblings.com/credits)
- [oomfie.town](https://oomfie.town/credits)
## Assets Sources
All sources for Duckquill's assets are available [here](https://codeberg.org/daudix/archive/src/branch/main/duckquill/src) 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
- [Quill image used in the metadata card](https://commons.wikimedia.org/wiki/File:3quills.jpg)
## Tools Used
- [VSCodium](https://vscodium.com) - Free/Libre Open Source Software Binaries of VS Code
- [Capitalize](https://marketplace.visualstudio.com/items?itemName=viablelab.capitalize) - Title capitalization without random websites.
- [Even Better TOML](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml) - For `config.toml` basically.
- [Monokai Pro](https://marketplace.visualstudio.com/items?itemName=monokai.theme-monokai-pro-vscode) - Awfully pretty theme.
- [PX to REM](https://marketplace.visualstudio.com/items?itemName=cipchk.cssrem) - Easy conversion from PX to REM and vice versa.
- [SCSS IntelliSense](https://marketplace.visualstudio.com/items?itemName=mrmlnc.vscode-scss) - Not sure if it actually works. ¯\\\_(ツ)_/¯
- [Sort CSS](https://marketplace.visualstudio.com/items?itemName=piyushsarkar.sort-css-properties) - A lifesaver for long CSS properties.
- [Tera](https://marketplace.visualstudio.com/items?itemName=karunamurti.tera) - Tera template engine (the one Zola uses) support.
- [Firefox developer tools](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Tools_and_setup/What_are_browser_developer_tools) - Best of its kind.
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.
- [duckling.aparoksha.dev](https://duckling.aparoksha.dev)
- Yours? <small>(feel free to send a pull request)</small>
## Thanks To
- [Jakub Steiner](https://jimmac.eu) for the [OS Component Website](https://jimmac.github.io/os-component-website), which served as a starting point and inspiration.
- [Óscar](https://osc.garden) for [tabi](https://welpo.github.io/tabi/) and its [translation system](https://github.com/welpo/tabi/blob/7b00ed1d9dca5c529d2816c5b6679bfe600d63fc/templates/macros/translate.html), [rel attributes](https://github.com/welpo/tabi/blob/7b00ed1d9dca5c529d2816c5b6679bfe600d63fc/templates/macros/rel_attributes.html), and [Content Security Policy](https://github.com/welpo/tabi/blob/7b00ed1d9dca5c529d2816c5b6679bfe600d63fc/templates/partials/content_security_policy.html).
- [Carl Schwan](https://carlschwan.eu) for the [Mastodon-powered Comments](https://carlschwan.eu/2020/12/29/adding-comments-to-your-static-blog-with-mastodon/).
- [Jonathan Neal](https://jonneal.dev) for the [normalize.css](https://csstools.github.io/normalize.css/).
- [GNOME design team](https://gitlab.gnome.org/Teams/Design) for the [icon development kit](https://gitlab.gnome.org/Teams/Design/icon-development-kit)
- [Modern Font Stacks](https://modernfontstacks.com) for the system font stack.
- [TheEvilSkeleton](https://tesk.page) for helping to improve the look and accessibility.
- [Dexter Reed](https://sungsphinx.codeberg.page) for being the first Duckquill user, preventing it from being axed.
- Everyone who supported me and said good stuff <3
- [David Lapshin](https://daudix.one) for [Duckquill](https://duckquill.daudix.one)
- [Everything Duckquill is based on](https://duckquill.daudix.one/#thanks-to)