mirror of
https://github.com/welpo/tabi.git
synced 2025-10-11 07:46:15 +02:00
chore: Merge latest changes from the main branch
This commit is contained in:
commit
bb411abfc2
39 changed files with 1064 additions and 435 deletions
|
@ -5,7 +5,7 @@
|
||||||
<img src="https://img.shields.io/github/contributors/welpo/tabi?style=flat-square&labelColor=202b2d&color=087e96" alt="Contributors"></a>
|
<img src="https://img.shields.io/github/contributors/welpo/tabi?style=flat-square&labelColor=202b2d&color=087e96" alt="Contributors"></a>
|
||||||
<a href="https://github.com/welpo/tabi/forks">
|
<a href="https://github.com/welpo/tabi/forks">
|
||||||
<img src="https://img.shields.io/github/forks/welpo/tabi?style=flat-square&labelColor=202b2d&color=087e96" alt="Forks"></a>
|
<img src="https://img.shields.io/github/forks/welpo/tabi?style=flat-square&labelColor=202b2d&color=087e96" alt="Forks"></a>
|
||||||
<a hfref="https://github.com/welpo/tabi/commits/main/">
|
<a href="https://github.com/welpo/tabi/commits/main/">
|
||||||
<img src="https://img.shields.io/github/last-commit/welpo/tabi?style=flat-square&labelColor=202b2d&color=087e96" alt="Last commit"></a>
|
<img src="https://img.shields.io/github/last-commit/welpo/tabi?style=flat-square&labelColor=202b2d&color=087e96" alt="Last commit"></a>
|
||||||
<br>
|
<br>
|
||||||
<a href="https://github.com/welpo/tabi/releases">
|
<a href="https://github.com/welpo/tabi/releases">
|
||||||
|
@ -216,6 +216,7 @@ git pull
|
||||||
| [Nizzlay](https://nizzlay.com) | Niels Gouman ([Nizzlay](https://github.com/Nizzlay)) | Personal blog | [Source](https://github.com/Nizzlay/nizzlay.com) |
|
| [Nizzlay](https://nizzlay.com) | Niels Gouman ([Nizzlay](https://github.com/Nizzlay)) | Personal blog | [Source](https://github.com/Nizzlay/nizzlay.com) |
|
||||||
| [ZzMzaw's blog](https://zzmzaw.github.io/) | ZzMzaw ([ZzMzaw](https://github.com/ZzMzaw)) | Personal blog | [Source](https://github.com/ZzMzaw/zzmzaw.github.io) |
|
| [ZzMzaw's blog](https://zzmzaw.github.io/) | ZzMzaw ([ZzMzaw](https://github.com/ZzMzaw)) | Personal blog | [Source](https://github.com/ZzMzaw/zzmzaw.github.io) |
|
||||||
| [idle-ti.me](https://idle-ti.me/) | Jérôme Ramette ([be-next](https://github.com/be-next)) | Personal blog | [Source](https://github.com/be-next/idle-ti.me) |
|
| [idle-ti.me](https://idle-ti.me/) | Jérôme Ramette ([be-next](https://github.com/be-next)) | Personal blog | [Source](https://github.com/be-next/idle-ti.me) |
|
||||||
|
| [tzinm.me](https://tzinm.me/) | [Tzinm](https://github.com/tzinm) | Personal blog | [Source](https://codeberg.org/tzinm/blog) |
|
||||||
|
|
||||||
Using tabi? Feel free to create a PR and add your site to this list.
|
Using tabi? Feel free to create a PR and add your site to this list.
|
||||||
|
|
||||||
|
|
24
config.toml
24
config.toml
|
@ -468,3 +468,27 @@ avatar = true
|
||||||
voting = true
|
voting = true
|
||||||
page_author_hashes = "" # hash (or list of hashes) of the author.
|
page_author_hashes = "" # hash (or list of hashes) of the author.
|
||||||
lazy_loading = true # Loads when the comments are in the viewport (using the Intersection Observer API).
|
lazy_loading = true # Loads when the comments are in the viewport (using the Intersection Observer API).
|
||||||
|
|
||||||
|
# h-card configuration
|
||||||
|
# Will identify you on the indieweb (see https://microformats.org/wiki/h-card)
|
||||||
|
[extra.hcard]
|
||||||
|
# Enable home page h-card.
|
||||||
|
# enable = true
|
||||||
|
# Add your email to the card if extra.email is set and not encoded.
|
||||||
|
# with_mail = true
|
||||||
|
# Add your social links ('socials' config) to the card.
|
||||||
|
# with_social_links = true
|
||||||
|
# Homepage url. Defaults to the value of 'base_url'.
|
||||||
|
# homepage = "https://myhomepage.net"
|
||||||
|
# avatar = "img/profile.webp"
|
||||||
|
# Display name, default to the value of 'author'.
|
||||||
|
# full_name = "John Doe"
|
||||||
|
# Small bio, as shown on social media profiles.
|
||||||
|
# biography = "Fond of the indieweb"
|
||||||
|
#
|
||||||
|
# You can add any property from https://microformats.org/wiki/h-card#Properties
|
||||||
|
# Make sure to replace all '-' characters by '_'
|
||||||
|
# Examples:
|
||||||
|
# p_nickname = "nickname"
|
||||||
|
# p_locality = "Bordeaux"
|
||||||
|
# p_country_name = "France"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
+++
|
+++
|
||||||
title = "Lost in Translation? Explora les capacitats multilingües de tabi"
|
title = "Lost in Translation? Explora les capacitats multilingües de tabi"
|
||||||
date = 2023-09-12
|
date = 2023-09-12
|
||||||
updated = 2024-08-18
|
updated = 2025-04-02
|
||||||
description = "Descobreix com tabi t'ajuda a connectar amb una audiència global gràcies a les seves funcions multilingües. Aprèn a canviar la llengua per defecte, afegir més llengües i aportar les teves pròpies traduccions."
|
description = "Descobreix com tabi t'ajuda a connectar amb una audiència global gràcies a les seves funcions multilingües. Aprèn a canviar la llengua per defecte, afegir més llengües i aportar les teves pròpies traduccions."
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
|
@ -30,6 +30,7 @@ tabi admet les següents llengües:
|
||||||
- Coreà
|
- Coreà
|
||||||
- Espanyol
|
- Espanyol
|
||||||
- Estonià
|
- Estonià
|
||||||
|
- Finès
|
||||||
- Francès
|
- Francès
|
||||||
- Hindi
|
- Hindi
|
||||||
- Italià
|
- Italià
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
+++
|
+++
|
||||||
title = "¿Lost in Translation? Explora las capacidades multilingües de tabi"
|
title = "¿Lost in Translation? Explora las capacidades multilingües de tabi"
|
||||||
date = 2023-09-12
|
date = 2023-09-12
|
||||||
updated = 2024-08-18
|
updated = 2025-04-02
|
||||||
description = "Descubre cómo tabi te ayuda a conectar con una audiencia global gracias a sus funciones multilingües. Aprende a cambiar el idioma por defecto, añadir más idiomas y aportar tus propias traducciones."
|
description = "Descubre cómo tabi te ayuda a conectar con una audiencia global gracias a sus funciones multilingües. Aprende a cambiar el idioma por defecto, añadir más idiomas y aportar tus propias traducciones."
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
|
@ -30,6 +30,7 @@ tabi admite los siguientes idiomas:
|
||||||
- Coreano
|
- Coreano
|
||||||
- Español
|
- Español
|
||||||
- Estonio
|
- Estonio
|
||||||
|
- Finlandés
|
||||||
- Francés
|
- Francés
|
||||||
- Hindi
|
- Hindi
|
||||||
- Inglés
|
- Inglés
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
+++
|
+++
|
||||||
title = "Lost in Translation? Not with tabi's Multilingual Capabilities"
|
title = "Lost in Translation? Not with tabi's Multilingual Capabilities"
|
||||||
date = 2023-09-12
|
date = 2023-09-12
|
||||||
updated = 2024-03-01
|
updated = 2025-04-02
|
||||||
description = "Master the art of serving a global audience through tabi's built-in multilingual features. Learn how to change the default language, add multilingual support, and contribute your own translations."
|
description = "Master the art of serving a global audience through tabi's built-in multilingual features. Learn how to change the default language, add multilingual support, and contribute your own translations."
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
|
@ -29,6 +29,7 @@ tabi supports the following languages:
|
||||||
- Chinese (Traditional)
|
- Chinese (Traditional)
|
||||||
- English
|
- English
|
||||||
- Estonian
|
- Estonian
|
||||||
|
- Finnish
|
||||||
- French
|
- French
|
||||||
- German
|
- German
|
||||||
- Hindi
|
- Hindi
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
+++
|
+++
|
||||||
title = "Domina la configuració de tabi: guia completa"
|
title = "Domina la configuració de tabi: guia completa"
|
||||||
date = 2023-09-18
|
date = 2023-09-18
|
||||||
updated = 2025-02-21
|
updated = 2025-04-05
|
||||||
description = "Descobreix les múltiples maneres en què pots personalitzar tabi."
|
description = "Descobreix les múltiples maneres en què pots personalitzar tabi."
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
|
@ -1007,6 +1007,26 @@ Per a més informació, consulta la [pàgina de documentació de CSP](@/blog/sec
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Indieweb
|
||||||
|
|
||||||
|
### h-card representativa
|
||||||
|
|
||||||
|
| Pàgina | Secció | `config.toml` | Segueix la jerarquia | Requereix JavaScript |
|
||||||
|
| :--: | :-----: | :-----------: | :---------------: | :-----------------: |
|
||||||
|
| ❌ | ❌ | ✅ | ❌ | ❌ |
|
||||||
|
|
||||||
|
Per defecte, tabi afegeix una h-card representativa [h-card](https://microformats.org/wiki/h-card) **oculta** a la pàgina d'inici. Tot i que és invisible per als visitants, està disponible per als analitzadors de microformats. Pots comprovar la validesa de la targeta amb l'eina [Indiewebify.me](https://indiewebify.me/validate-h-card/).
|
||||||
|
|
||||||
|
Per desactivar l'h-card, estableix `enable = false` a la secció `[extra.hcard]` de `config.toml`.
|
||||||
|
|
||||||
|
L'h-card predeterminada inclou el teu nom, l'URL del lloc web i els enllaços a les xarxes socials.
|
||||||
|
|
||||||
|
Pots establir una imatge de perfil i una petita biografia amb els paràmetres `avatar` i `biography`.
|
||||||
|
|
||||||
|
Totes les altres [propietats h-card](https://microformats.org/wiki/h-card#Properties) es poden afegir llistant-les a la secció `[extra.hcard]` del fitxer de configuració. Simplement substitueix tots els caràcters `-` per `_`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
[^1]: Si estàs utilitzant un repositori Git remot, potser voldràs automatitzar el procés d'actualització del camp `updated`. Aquí tens una guia per a això: [Zola Git Hook: actualitzant les dates de les publicacions](https://osc.garden/ca/blog/zola-date-git-hook/).
|
[^1]: Si estàs utilitzant un repositori Git remot, potser voldràs automatitzar el procés d'actualització del camp `updated`. Aquí tens una guia per a això: [Zola Git Hook: actualitzant les dates de les publicacions](https://osc.garden/ca/blog/zola-date-git-hook/).
|
||||||
|
|
||||||
[^2]: Per a codificar el teu correu electrònic en base64 pots utilitzar [eines en línia](https://www.base64encode.org/) o, al teu terminal, executar: `printf 'mail@example.com' | base64`
|
[^2]: Per a codificar el teu correu electrònic en base64 pots utilitzar [eines en línia](https://www.base64encode.org/) o, al teu terminal, executar: `printf 'mail@example.com' | base64`
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
+++
|
+++
|
||||||
title = "Domina la configuración de tabi: guía completa"
|
title = "Domina la configuración de tabi: guía completa"
|
||||||
date = 2023-09-18
|
date = 2023-09-18
|
||||||
updated = 2025-02-21
|
updated = 2025-04-05
|
||||||
description = "Descubre las múltiples maneras en que puedes personalizar tabi."
|
description = "Descubre las múltiples maneras en que puedes personalizar tabi."
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
|
@ -1008,6 +1008,26 @@ Para obtener más información, consulta la [página de documentación de CSP](@
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Indieweb
|
||||||
|
|
||||||
|
### h-card representativa
|
||||||
|
|
||||||
|
| Página | Sección | `config.toml` | Sigue Jerarquía | Requiere JavaScript |
|
||||||
|
| :--: | :-----: | :-----------: | :---------------: | :-----------------: |
|
||||||
|
| ❌ | ❌ | ✅ | ❌ | ❌ |
|
||||||
|
|
||||||
|
Por defecto, tabi añade una [h-card](https://microformats.org/wiki/h-card) representativa **oculta** a la página de inicio. Aunque es invisible para los visitantes, está disponible para los analizadores de microformatos. Puedes comprobar la validez de la tarjeta con la herramienta [Indiewebify.me](https://indiewebify.me/validate-h-card/).
|
||||||
|
|
||||||
|
Para desactivar la h-card, establece `enable = false` en la sección `[extra.hcard]` de `config.toml`.
|
||||||
|
|
||||||
|
La h-card predeterminada incluye tu nombre, la URL del sitio web y los enlaces a redes sociales.
|
||||||
|
|
||||||
|
Puedes establecer una imagen de perfil y una pequeña biografía con los ajustes `avatar` y `biography`.
|
||||||
|
|
||||||
|
Todas las demás [propiedades de h-card](https://microformats.org/wiki/h-card#Properties) se pueden añadir listándolas en la sección `[extra.hcard]` del archivo de configuración. Simplemente reemplaza todos los caracteres `-` por `_`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
[^1]: Si estás utilizando un repositorio Git remoto, es posible que quieras automatizar el proceso de actualización del campo `updated`. Aquí tienes una guía para eso: [Zola Git Hook: actualizando las fechas de las publicaciones](https://osc.garden/es/blog/zola-date-git-hook/).
|
[^1]: Si estás utilizando un repositorio Git remoto, es posible que quieras automatizar el proceso de actualización del campo `updated`. Aquí tienes una guía para eso: [Zola Git Hook: actualizando las fechas de las publicaciones](https://osc.garden/es/blog/zola-date-git-hook/).
|
||||||
|
|
||||||
[^2]: Para codificar tu correo electrónico en base64 puedes utilizar [herramientas en línea](https://www.base64encode.org/) o, en tu terminal, ejecutar: `printf 'mail@example.com' | base64`
|
[^2]: Para codificar tu correo electrónico en base64 puedes utilizar [herramientas en línea](https://www.base64encode.org/) o, en tu terminal, ejecutar: `printf 'mail@example.com' | base64`
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
+++
|
+++
|
||||||
title = "Mastering tabi Settings: A Comprehensive Guide"
|
title = "Mastering tabi Settings: A Comprehensive Guide"
|
||||||
date = 2023-09-18
|
date = 2023-09-18
|
||||||
updated = 2025-03-19
|
updated = 2025-04-04
|
||||||
description = "Discover the many ways you can customise your tabi site."
|
description = "Discover the many ways you can customise your tabi site."
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
|
@ -1043,6 +1043,26 @@ See the [CSP documentation page](@/blog/security/index.md) for more information.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Indieweb
|
||||||
|
|
||||||
|
### Representative h-card
|
||||||
|
|
||||||
|
| Page | Section | `config.toml` | Follows Hierarchy | Requires JavaScript |
|
||||||
|
| :--: | :-----: | :-----------: | :---------------: | :-----------------: |
|
||||||
|
| ❌ | ❌ | ✅ | ❌ | ❌ |
|
||||||
|
|
||||||
|
By default, tabi adds a **hidden** representative [h-card](https://microformats.org/wiki/h-card) to the homepage. While invisible to visitors, it's available to microformat parsers. You can check the validity of the card with the [Indiewebify.me](https://indiewebify.me/validate-h-card/) tool.
|
||||||
|
|
||||||
|
To disable the h-card, set `enable = false` in the `[extra.hcard]` section of `config.toml`.
|
||||||
|
|
||||||
|
The default h-card includes your name, website url and social media links.
|
||||||
|
|
||||||
|
You can set a profile picture and a small bio with the `avatar` and `biography` settings.
|
||||||
|
|
||||||
|
All other [h-card properties](https://microformats.org/wiki/h-card#Properties) can be added by listing them under the `[extra.hcard]`section of the config file. Simply replace all `-` characters by `_`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
[^1]: If you're using a remote Git repository, you might want to automate the process of updating the `updated` field. Here's a guide for that: [Zola Git Pre-Commit Hook: Updating Post Dates](https://osc.garden/blog/zola-date-git-hook/).
|
[^1]: If you're using a remote Git repository, you might want to automate the process of updating the `updated` field. Here's a guide for that: [Zola Git Pre-Commit Hook: Updating Post Dates](https://osc.garden/blog/zola-date-git-hook/).
|
||||||
|
|
||||||
[^2]: To encode your email in base64 you can use [online tools](https://www.base64encode.org/) or, on your terminal, run: `printf 'mail@example.com' | base64`.
|
[^2]: To encode your email in base64 you can use [online tools](https://www.base64encode.org/) or, on your terminal, run: `printf 'mail@example.com' | base64`.
|
||||||
|
|
99
i18n/fi.toml
Normal file
99
i18n/fi.toml
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
language_name = "suomi" # Shown in language picker for multi-language sites.
|
||||||
|
date_locale = "fi_FI"
|
||||||
|
full_stop = "." # Used at the end of a sentence.
|
||||||
|
|
||||||
|
# Menu items.
|
||||||
|
# Should match the names in config.extra.menu and config.extra.footer_menu.
|
||||||
|
blog = "blogi"
|
||||||
|
archive = "arkisto"
|
||||||
|
tags = "tunnisteet"
|
||||||
|
projects = "projektit"
|
||||||
|
diagrams = "kaaviot"
|
||||||
|
about = "minusta"
|
||||||
|
contact = "yhteystiedot"
|
||||||
|
privacy = "tietosuojakäytäntö"
|
||||||
|
site_statistics = "tilastot"
|
||||||
|
sitemap = "sivustokartta"
|
||||||
|
|
||||||
|
# Search.
|
||||||
|
search = "Hae"
|
||||||
|
search_icon_title = "Paina $SHORTCUT avataksesi haun" # $SHORTCUT will be replaced with the actual keyboard shortcut.
|
||||||
|
clear_search = "Tyhjennä haku" # Title of the X icon next to search input.
|
||||||
|
zero_results = "Ei tuloksia"
|
||||||
|
one_results = "$NUMBER tulos" # "1 result"
|
||||||
|
many_results = "$NUMBER tulosta" # "3 results"
|
||||||
|
|
||||||
|
# Navigation.
|
||||||
|
# Some will prefer artikkeli (=article) instead of julkaisu (=publication), but this is more general
|
||||||
|
pinned = "Kiinnitetty"
|
||||||
|
jump_to_posts = "Siirry julkaisuihin"
|
||||||
|
read_more = "Lue lisää"
|
||||||
|
one_posts = "$NUMBER julkaisu"
|
||||||
|
many_posts = "$NUMBER julkaisua" # "3 posts"
|
||||||
|
prev = "Edellinen" # As in "Previous" page.
|
||||||
|
next = "Seuraava" # As in "Next" page.
|
||||||
|
of = "/" # E.g. Page 1 "of" 3
|
||||||
|
all_posts = "Kaikki julkaisut"
|
||||||
|
all_tags = "Kaikki tunnisteet"
|
||||||
|
all_projects = "Kaikki projektit"
|
||||||
|
featured_projects = "Esittelyprojektit"
|
||||||
|
language_selection = "Kielivalinta"
|
||||||
|
toggle_mode = "Vaihda $MODE" # $MODE will be replaced by a value (or both) below. Literally "Change $MODE"
|
||||||
|
# The declension assumes that both values are used. e.g. "Change dark mode" wouldn't work and would need the "to" preposition
|
||||||
|
# It also omits the "mode" word: "Change dark/light mode" instead of "Change dark mode/light mode"
|
||||||
|
dark = "tumma"
|
||||||
|
light = "vaalea tila"
|
||||||
|
reset_mode = "Palauta oletustilaan"
|
||||||
|
|
||||||
|
# Quick navigation buttons.
|
||||||
|
toggle_toc = "Sisällysluettelo päälle/pois"
|
||||||
|
go_to_top = "Siirry sivun alkuun"
|
||||||
|
go_to_comments = "Siirry kommenttiosioon"
|
||||||
|
|
||||||
|
# Post metadata.
|
||||||
|
by_author = "Kirjoittanut $AUTHOR" # $AUTHOR will be replaced by the author(s). Literally "Written by $AUTHOR"
|
||||||
|
author_separator = ", " # For multiple authors. Ensure spacing where necessary.
|
||||||
|
author_conjunction = " ja " # For multiple authors. Ensure spacing where necessary.
|
||||||
|
draft = "LUONNOS"
|
||||||
|
zero_min_read = "<1 min. lukuaika"
|
||||||
|
one_min_read = "$NUMBER min. lukuaika"
|
||||||
|
many_min_read = "$NUMBER min. lukuaika"
|
||||||
|
zero_words = "Ei sanoja"
|
||||||
|
one_words = "$NUMBER sana"
|
||||||
|
many_words = "$NUMBER sanaa"
|
||||||
|
last_updated_on = "Päivitetty $DATE"
|
||||||
|
see_changes = "Katso muutokset"
|
||||||
|
|
||||||
|
# Post body.
|
||||||
|
table_of_contents = "Sisällysluettelo"
|
||||||
|
load_comments = "Lataa kommentit"
|
||||||
|
|
||||||
|
# Copy code block button.
|
||||||
|
copied = "Kopioitu!"
|
||||||
|
copy_code_to_clipboard = "Kopioi koodi leikepöydälle"
|
||||||
|
|
||||||
|
# Footer: Powered by Zola and tabi.
|
||||||
|
powered_by = "Pyörii ohjelmilla" # "Works using the software"
|
||||||
|
and = "&"
|
||||||
|
site_source = "Sivuston lähdekoodi"
|
||||||
|
|
||||||
|
# 404 error.
|
||||||
|
# https://welpo.github.io/tabi/404.html
|
||||||
|
page_missing = "Pyytämääsi sivua ei löydy"
|
||||||
|
translation_missing = "tai sitä ei ole vielä käännetty kielellesi"
|
||||||
|
check_url = "Tarkista URL-osoitteesta mahdolliset virheet tai"
|
||||||
|
go_home = "palaa etusivulle"
|
||||||
|
|
||||||
|
# For multilingual quote shortcode.
|
||||||
|
# https://welpo.github.io/tabi/blog/shortcodes/#multilingual-quotes
|
||||||
|
show_original_quote = "Näytä alkuperäinen lainaus"
|
||||||
|
show_translation = "Näytä käännös"
|
||||||
|
open_quotation_mark = "“"
|
||||||
|
close_quotation_mark = "”"
|
||||||
|
|
||||||
|
# Translations for stylised Atom feed.
|
||||||
|
# https://welpo.github.io/tabi/atom.xml
|
||||||
|
# Must contain "About Feeds"; it will become a link.
|
||||||
|
about_feeds = "Tämä on verkkosyöte, joka tunnetaan myös nimellä Atom-syöte. Tilaa kopioimalla URL-osoite osoitepalkista uutislukijaasi. Käy sivulla About Feeds saadaksesi lisätietoja ja aloittaakeksi. Se on ilmaista."
|
||||||
|
visit_the_site = "Vieraile sivustolla"
|
||||||
|
recent_posts = "Viimeisimmät julkaisut"
|
|
@ -197,7 +197,7 @@ article {
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-title {
|
.section-title {
|
||||||
display: block;
|
display: flex;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
margin-top: -0.15em;
|
margin-top: -0.15em;
|
||||||
color: var(--text-color-high-contrast);
|
color: var(--text-color-high-contrast);
|
||||||
|
|
|
@ -45,6 +45,7 @@ code {
|
||||||
|
|
||||||
a:hover code {
|
a:hover code {
|
||||||
background-color: inherit;
|
background-color: inherit;
|
||||||
|
padding-block: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
|
|
|
@ -98,11 +98,11 @@ header {
|
||||||
.tag {
|
.tag {
|
||||||
margin-inline-end: 0;
|
margin-inline-end: 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.separator {
|
.separator {
|
||||||
margin-inline-end: 0.2rem;
|
margin-inline-end: 0.2rem;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.language-switcher {
|
.language-switcher {
|
||||||
|
|
|
@ -48,6 +48,9 @@ ul {
|
||||||
|
|
||||||
.title-container {
|
.title-container {
|
||||||
padding-bottom: 8px;
|
padding-bottom: 8px;
|
||||||
|
.social {
|
||||||
|
margin-inline-start: 0.5rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.bottom-divider {
|
.bottom-divider {
|
||||||
|
@ -85,30 +88,21 @@ a {
|
||||||
// External link styles with `external_links_class = "external"`.
|
// External link styles with `external_links_class = "external"`.
|
||||||
main {
|
main {
|
||||||
--external-link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M11 5h-6v14h14v-6'/%3E%3Cpath d='M13 11l7 -7'/%3E%3Cpath d='M21 3h-6M21 3v6'/%3E%3C/g%3E%3C/svg%3E");
|
--external-link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M11 5h-6v14h14v-6'/%3E%3Cpath d='M13 11l7 -7'/%3E%3Cpath d='M21 3h-6M21 3v6'/%3E%3C/g%3E%3C/svg%3E");
|
||||||
a.external:not(:has(img, svg, video, picture, figure)) {
|
|
||||||
display: inline-block;
|
|
||||||
padding-inline-end: 0.9em;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.external:not(:has(img, svg, video, picture, figure))::after {
|
a.external:not(:has(img, svg, video, picture, figure))::after {
|
||||||
-webkit-mask-image: var(--external-link-icon);
|
|
||||||
-webkit-mask-size: 100% 100%;
|
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
position: absolute;
|
vertical-align: -0.05em;
|
||||||
top: 50%;
|
margin-inline-start: 0.1em;
|
||||||
transform: translateY(-50%);
|
|
||||||
mask-image: var(--external-link-icon);
|
|
||||||
mask-size: 100% 100%;
|
|
||||||
margin-inline-start: 0.2em;
|
|
||||||
inset-inline-end: 0;
|
|
||||||
background-color: currentColor;
|
background-color: currentColor;
|
||||||
width: 0.8em;
|
width: 0.8em;
|
||||||
height: 0.8em;
|
height: 0.8em;
|
||||||
content: '';
|
content: '';
|
||||||
|
-webkit-mask-image: var(--external-link-icon);
|
||||||
|
-webkit-mask-size: 100% 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:dir(rtl) a.external:not(:has(img, svg, video, picture, figure))::after {
|
&:dir(rtl) a.external:not(:has(img, svg, video, picture, figure))::after {
|
||||||
transform: translateY(-50%) rotate(-90deg);
|
transform: rotate(-90deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.meta a.external:not(:has(img, svg, video, picture, figure))::after {
|
.meta a.external:not(:has(img, svg, video, picture, figure))::after {
|
||||||
|
|
|
@ -126,7 +126,7 @@ $padding: 2.5rem;
|
||||||
|
|
||||||
@media only screen and (max-width: 1100px) {
|
@media only screen and (max-width: 1100px) {
|
||||||
.bloglist-container {
|
.bloglist-container {
|
||||||
grid-template-columns: 1fr;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pinned-label svg {
|
.pinned-label svg {
|
||||||
|
|
|
@ -81,7 +81,14 @@ get_latest_version_github() {
|
||||||
|
|
||||||
get_local_mermaid_version() {
|
get_local_mermaid_version() {
|
||||||
local version
|
local version
|
||||||
|
# Old format.
|
||||||
version=$(grep -o '[A-Za-z]\+t="[0-9]\+\.[0-9]\+\.[0-9]\+"' "$MERMAID_PATH" | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+' || true)
|
version=$(grep -o '[A-Za-z]\+t="[0-9]\+\.[0-9]\+\.[0-9]\+"' "$MERMAID_PATH" | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+' || true)
|
||||||
|
|
||||||
|
# New format.
|
||||||
|
if [ -z "$version" ]; then
|
||||||
|
version=$(grep -o 'version:"[0-9]\+\.[0-9]\+\.[0-9]\+"' "$MERMAID_PATH" | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+' || true)
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "$version" ]; then
|
if [ -z "$version" ]; then
|
||||||
exit_with_message "Could not detect local Mermaid.js version"
|
exit_with_message "Could not detect local Mermaid.js version"
|
||||||
fi
|
fi
|
||||||
|
|
2
static/js/katex.min.js
vendored
2
static/js/katex.min.js
vendored
File diff suppressed because one or more lines are too long
1015
static/js/mermaid.min.js
vendored
1015
static/js/mermaid.min.js
vendored
File diff suppressed because one or more lines are too long
2
static/katex.min.css
vendored
2
static/katex.min.css
vendored
File diff suppressed because one or more lines are too long
1
static/social_icons/itchio.svg
Normal file
1
static/social_icons/itchio.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="235.452" width="261.728" viewBox="0 0 245.371 220.736"><path d="M31.99 1.365C21.287 7.72.2 31.945 0 38.298v10.516C0 62.144 12.46 73.86 23.773 73.86c13.584 0 24.902-11.258 24.903-24.62 0 13.362 10.93 24.62 24.515 24.62 13.586 0 24.165-11.258 24.165-24.62 0 13.362 11.622 24.62 25.207 24.62h.246c13.586 0 25.208-11.258 25.208-24.62 0 13.362 10.58 24.62 24.164 24.62 13.585 0 24.515-11.258 24.515-24.62 0 13.362 11.32 24.62 24.903 24.62 11.313 0 23.773-11.714 23.773-25.046V38.298c-.2-6.354-21.287-30.58-31.988-36.933C180.118.197 157.056-.005 122.685 0c-34.37.003-81.228.54-90.697 1.365zm65.194 66.217a28.025 28.025 0 0 1-4.78 6.155c-5.128 5.014-12.157 8.122-19.906 8.122a28.482 28.482 0 0 1-19.948-8.126c-1.858-1.82-3.27-3.766-4.563-6.032l-.006.004c-1.292 2.27-3.092 4.215-4.954 6.037a28.5 28.5 0 0 1-19.948 8.12c-.934 0-1.906-.258-2.692-.528-1.092 11.372-1.553 22.24-1.716 30.164l-.002.045c-.02 4.024-.04 7.333-.06 11.93.21 23.86-2.363 77.334 10.52 90.473 19.964 4.655 56.7 6.775 93.555 6.788h.006c36.854-.013 73.59-2.133 93.554-6.788 12.883-13.14 10.31-66.614 10.52-90.474-.022-4.596-.04-7.905-.06-11.93l-.003-.045c-.162-7.926-.623-18.793-1.715-30.165-.786.27-1.757.528-2.692.528a28.5 28.5 0 0 1-19.948-8.12c-1.862-1.822-3.662-3.766-4.955-6.037l-.006-.004c-1.294 2.266-2.705 4.213-4.563 6.032a28.48 28.48 0 0 1-19.947 8.125c-7.748 0-14.778-3.11-19.906-8.123a28.025 28.025 0 0 1-4.78-6.155 27.99 27.99 0 0 1-4.736 6.155 28.49 28.49 0 0 1-19.95 8.124c-.27 0-.54-.012-.81-.02h-.007c-.27.008-.54.02-.813.02a28.49 28.49 0 0 1-19.95-8.123 27.992 27.992 0 0 1-4.736-6.155zm-20.486 26.49l-.002.01h.015c8.113.017 15.32 0 24.25 9.746 7.028-.737 14.372-1.105 21.722-1.094h.006c7.35-.01 14.694.357 21.723 1.094 8.93-9.747 16.137-9.73 24.25-9.746h.014l-.002-.01c3.833 0 19.166 0 29.85 30.007L210 165.244c8.504 30.624-2.723 31.373-16.727 31.4-20.768-.773-32.267-15.855-32.267-30.935-11.496 1.884-24.907 2.826-38.318 2.827h-.006c-13.412 0-26.823-.943-38.318-2.827 0 15.08-11.5 30.162-32.267 30.935-14.004-.027-25.23-.775-16.726-31.4L46.85 124.08C57.534 94.073 72.867 94.073 76.7 94.073zm45.985 23.582v.006c-.02.02-21.863 20.08-25.79 27.215l14.304-.573v12.474c0 .584 5.74.346 11.486.08h.006c5.744.266 11.485.504 11.485-.08v-12.474l14.304.573c-3.928-7.135-25.79-27.215-25.79-27.215v-.006l-.003.002z" color="#000"/></svg>
|
After Width: | Height: | Size: 2.3 KiB |
|
@ -1,11 +1,13 @@
|
||||||
|
{% import "macros/feed_utils.html" as feed_utils %}
|
||||||
{% import "macros/format_date.html" as macros_format_date %}
|
{% import "macros/format_date.html" as macros_format_date %}
|
||||||
{% import "macros/list_posts.html" as macros_list_posts %}
|
{% import "macros/list_posts.html" as macros_list_posts %}
|
||||||
{% import "macros/page_header.html" as macros_page_header %}
|
{% import "macros/page_header.html" as macros_page_header %}
|
||||||
{% import "macros/rel_attributes.html" as macros_rel_attributes %}
|
{% import "macros/rel_attributes.html" as macros_rel_attributes %}
|
||||||
|
{% import "macros/series_page.html" as macros_series_page %}
|
||||||
{% import "macros/settings.html" as macros_settings %}
|
{% import "macros/settings.html" as macros_settings %}
|
||||||
{% import "macros/table_of_contents.html" as macros_toc %}
|
{% import "macros/table_of_contents.html" as macros_toc %}
|
||||||
|
{% import "macros/target_attribute.html" as macros_target_attribute %}
|
||||||
{% import "macros/translate.html" as macros_translate %}
|
{% import "macros/translate.html" as macros_translate %}
|
||||||
{% import "macros/series_page.html" as macros_series_page %}
|
|
||||||
|
|
||||||
{# Load the internationalisation data for the current language from
|
{# Load the internationalisation data for the current language from
|
||||||
the .toml files in the user's '/i18n' folder, falling back to the theme's.
|
the .toml files in the user's '/i18n' folder, falling back to the theme's.
|
||||||
|
|
17
templates/macros/feed_utils.html
Normal file
17
templates/macros/feed_utils.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{#- Feed utility macros -#}
|
||||||
|
|
||||||
|
{#- Zola 0.19.0 uses `generate_feeds`. Prior versions use `generate_feed` -#}
|
||||||
|
{%- macro get_generate_feed() -%}
|
||||||
|
{{- config.generate_feeds | default(value=config.generate_feed) -}}
|
||||||
|
{%- endmacro get_generate_feed -%}
|
||||||
|
|
||||||
|
{%- macro get_feed_url() -%}
|
||||||
|
{{- config.feed_filenames[0] | default(value=(config.feed_filename)) -}}
|
||||||
|
{%- endmacro get_feed_url -%}
|
||||||
|
|
||||||
|
{#- Check footer feed icon conditions -#}
|
||||||
|
{%- macro should_show_footer_feed_icon() -%}
|
||||||
|
{%- set generate_feed = feed_utils::get_generate_feed() -%}
|
||||||
|
{%- set feed_url = feed_utils::get_feed_url() -%}
|
||||||
|
{{- generate_feed and config.extra.feed_icon and feed_url -}}
|
||||||
|
{%- endmacro should_show_footer_feed_icon -%}
|
|
@ -83,7 +83,7 @@
|
||||||
<li class="date">{{- macros_format_date::format_date(date=post.date, short=false, language_strings=language_strings) -}}</li>
|
<li class="date">{{- macros_format_date::format_date(date=post.date, short=false, language_strings=language_strings) -}}</li>
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- if show_date and show_updated -%}
|
{%- if show_date and show_updated -%}
|
||||||
<li class="mobile-only">{{- separator -}}</li>
|
<li class="mobile-only separator">{{- separator -}}</li>
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- if show_updated -%}
|
{%- if show_updated -%}
|
||||||
{%- set last_updated_str = macros_translate::translate(key="last_updated_on", default="Updated on $DATE", language_strings=language_strings) -%}
|
{%- set last_updated_str = macros_translate::translate(key="last_updated_on", default="Updated on $DATE", language_strings=language_strings) -%}
|
||||||
|
@ -142,9 +142,9 @@
|
||||||
|
|
||||||
<div class="description">
|
<div class="description">
|
||||||
{% if post.description %}
|
{% if post.description %}
|
||||||
<p>{{ post.description }}</p>
|
<p>{{ post.description | markdown(inline=true) | safe }}</p>
|
||||||
{% elif post.summary %}
|
{% elif post.summary %}
|
||||||
<p>{{ post.summary | striptags | trim_end_matches(pat=".") | safe }}…</p>
|
<p>{{ post.summary | markdown(inline=true) | trim_end_matches(pat=".") | safe }}…</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<a class="readmore" href="{{ post.permalink }}">{{ macros_translate::translate(key="read_more", default="Read more", language_strings=language_strings) }} <span class="arrow">→</span></a>
|
<a class="readmore" href="{{ post.permalink }}">{{ macros_translate::translate(key="read_more", default="Read more", language_strings=language_strings) }} <span class="arrow">→</span></a>
|
||||||
|
|
|
@ -1,5 +1,18 @@
|
||||||
{% macro page_header(title) %}
|
{% macro page_header(title, show_feed_icon=false) %}
|
||||||
|
|
||||||
|
{% set rel_attributes = macros_rel_attributes::rel_attributes() | trim %}
|
||||||
|
|
||||||
|
|
||||||
|
{%- set blank_target = macros_target_attribute::target_attribute(new_tab=config.markdown.external_links_target_blank) -%}
|
||||||
|
|
||||||
<h1 class="title-container section-title bottom-divider">
|
<h1 class="title-container section-title bottom-divider">
|
||||||
{{ title }}
|
{{ title -}}
|
||||||
|
{% if show_feed_icon %}
|
||||||
|
{%- set feed_url = feed_utils::get_feed_url() -%}
|
||||||
|
<a class="no-hover-padding social" rel="{{ rel_attributes }}" {{ blank_target }} href="{{ get_url(path=term.path ~ feed_url, lang=lang, trailing_slash=false) | safe }}">
|
||||||
|
<img loading="lazy" alt="feed" title="feed" src="{{ get_url(path='/social_icons/rss.svg') }}">
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
{% endmacro page_header %}
|
{% endmacro page_header %}
|
||||||
|
|
11
templates/macros/target_attribute.html
Normal file
11
templates/macros/target_attribute.html
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{% macro target_attribute(new_tab) %}
|
||||||
|
|
||||||
|
{%- set blank_target = "" -%}
|
||||||
|
|
||||||
|
{%- if new_tab -%}
|
||||||
|
{%- set blank_target = "target=_blank" -%}
|
||||||
|
{%- endif -%}
|
||||||
|
|
||||||
|
{{ blank_target }}
|
||||||
|
|
||||||
|
{% endmacro target_attribute %}
|
|
@ -5,11 +5,7 @@
|
||||||
|
|
||||||
{%- set rel_attributes = macros_rel_attributes::rel_attributes() | trim -%}
|
{%- set rel_attributes = macros_rel_attributes::rel_attributes() | trim -%}
|
||||||
|
|
||||||
{%- if config.markdown.external_links_target_blank -%}
|
{%- set blank_target = macros_target_attribute::target_attribute(new_tab=config.markdown.external_links_target_blank) -%}
|
||||||
{%- set blank_target = "target=_blank" -%}
|
|
||||||
{%- else -%}
|
|
||||||
{%- set blank_target = "" -%}
|
|
||||||
{%- endif -%}
|
|
||||||
|
|
||||||
{# Debugging #}
|
{# Debugging #}
|
||||||
{# <div><pre>
|
{# <div><pre>
|
||||||
|
|
|
@ -7,11 +7,7 @@
|
||||||
{% break %}
|
{% break %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{# Determine which URL to use, default is page.permalink #}
|
{# Determine which URL to use, default is page.permalink #}
|
||||||
{%- if page.extra.link_to and config.markdown.external_links_target_blank -%}
|
{%- set blank_target = macros_target_attribute::target_attribute(new_tab=config.markdown.external_links_target_blank and page.extra.link_to) -%}
|
||||||
{%- set blank_target = "target=_blank" -%}
|
|
||||||
{%- else -%}
|
|
||||||
{%- set blank_target = "" -%}
|
|
||||||
{%- endif -%}
|
|
||||||
|
|
||||||
{% set target_url = page.extra.link_to | default(value=page.permalink) %}
|
{% set target_url = page.extra.link_to | default(value=page.permalink) %}
|
||||||
|
|
||||||
|
|
|
@ -2,17 +2,11 @@
|
||||||
|
|
||||||
{%- set rel_attributes = macros_rel_attributes::rel_attributes() | trim -%}
|
{%- set rel_attributes = macros_rel_attributes::rel_attributes() | trim -%}
|
||||||
|
|
||||||
{%- if config.markdown.external_links_target_blank -%}
|
{%- set blank_target = macros_target_attribute::target_attribute(new_tab=config.markdown.external_links_target_blank) -%}
|
||||||
{%- set blank_target = "target=_blank" -%}
|
|
||||||
{%- else -%}
|
|
||||||
{%- set blank_target = "" -%}
|
|
||||||
{%- endif -%}
|
|
||||||
|
|
||||||
{#- Feed icon -#}
|
{#- Feed icon -#}
|
||||||
{#- Zola 0.19.0 uses `generate_feeds`. Prior versions use `generate_feed` -#}
|
{%- set feed_url = feed_utils::get_feed_url() -%}
|
||||||
{%- set generate_feed = config.generate_feeds | default(value=config.generate_feed) -%}
|
{%- set should_show_feed = feed_utils::should_show_footer_feed_icon() -%}
|
||||||
{%- set feed_url = config.feed_filenames[0] | default(value=(config.feed_filename)) -%}
|
|
||||||
{%- set should_show_feed = generate_feed and config.extra.feed_icon and feed_url -%}
|
|
||||||
|
|
||||||
{%- set should_show_footer_icons = should_show_feed or config.extra.socials or config.extra.email -%}
|
{%- set should_show_footer_icons = should_show_feed or config.extra.socials or config.extra.email -%}
|
||||||
|
|
||||||
|
|
75
templates/partials/hcard.html
Normal file
75
templates/partials/hcard.html
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
{%- set hcard = config.extra.hcard -%}
|
||||||
|
|
||||||
|
{% set full_name = config.author %}
|
||||||
|
{% if hcard.full_name %}
|
||||||
|
{% set full_name = hcard.full_name %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{%- set homepage = config.base_url -%}
|
||||||
|
{% if hcard.homepage %}
|
||||||
|
{%- set homepage = hcard.homepage -%}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if hcard.enable %}
|
||||||
|
<div class="h-card hidden">
|
||||||
|
<div>
|
||||||
|
{%- if hcard.avatar -%}
|
||||||
|
<img
|
||||||
|
class="u-photo"
|
||||||
|
src="{{ get_url(path=hcard.avatar) }}"
|
||||||
|
width="200"
|
||||||
|
height="200"
|
||||||
|
alt="{{ full_name }}"
|
||||||
|
/>
|
||||||
|
{%- endif -%}
|
||||||
|
|
||||||
|
<span class="p-name" rel="me">{{ full_name }}</span>
|
||||||
|
|
||||||
|
{% if hcard.p_nickname %}
|
||||||
|
( <span class="p-nickname">{{ hcard.p_nickname }}</span> )
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if hcard.biography %}
|
||||||
|
<p class="p-note">{{ hcard.biography }}</p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{# links #}
|
||||||
|
<div>
|
||||||
|
{%- if hcard.with_mail and config.extra.email and not config.extra.encode_plaintext_email -%}
|
||||||
|
<span>
|
||||||
|
<a class="u-email" href="mailto:{{ config.extra.email | safe }}">email</a>
|
||||||
|
</span> -
|
||||||
|
{%- endif -%}
|
||||||
|
|
||||||
|
<span>
|
||||||
|
<a class="u-url u-id" href="{{ homepage }}">homepage</a>
|
||||||
|
</span> -
|
||||||
|
|
||||||
|
{%- if hcard.with_social_links and config.extra.socials %}
|
||||||
|
{% for social in config.extra.socials %}
|
||||||
|
<span>
|
||||||
|
<a class="p-url" rel="me" href="{{ social.url | safe }}">{{ social.name }}</a>
|
||||||
|
</span> -
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{# additional properties #}
|
||||||
|
{% set dl_started = false %}
|
||||||
|
{% for key, value in hcard %}
|
||||||
|
{% if key not in ['enable', 'with_mail', 'with_social_links', 'homepage', 'full_name', 'avatar', 'biography', 'p_nickname'] %}
|
||||||
|
{% if not dl_started %}
|
||||||
|
<dl>
|
||||||
|
{% set_global dl_started = true %}
|
||||||
|
{% endif %}
|
||||||
|
<dt>{{ key | replace(from="p_", to="") | replace(from="u_", to="") | replace(from="dt_", to="") | replace(from="_", to=" ") | capitalize }}</dt>
|
||||||
|
<dd class="{{ key | replace(from="_", to="-") }}">{{ value }}</dd>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% if dl_started %}
|
||||||
|
</dl>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
|
@ -1,4 +1,7 @@
|
||||||
{#- Setup -#}
|
{#- Setup -#}
|
||||||
|
{% if not config.title %}
|
||||||
|
{{ throw(message="ERROR: No `title` set in `config.toml`. tabi requires a title to function.") }}
|
||||||
|
{% endif %}
|
||||||
{%- set prefix = config.title | safe -%}
|
{%- set prefix = config.title | safe -%}
|
||||||
{%- set custom_separator = config.extra.separator | default(value="•") -%}
|
{%- set custom_separator = config.extra.separator | default(value="•") -%}
|
||||||
{%- set separator = " " ~ custom_separator ~ " " -%}
|
{%- set separator = " " ~ custom_separator ~ " " -%}
|
||||||
|
|
|
@ -24,6 +24,9 @@
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
|
|
||||||
<main {% if more_than_one_section_shown %}class="{{ first_section }}-first"{% endif %}>
|
<main {% if more_than_one_section_shown %}class="{{ first_section }}-first"{% endif %}>
|
||||||
|
{%- if config.extra.hcard %}
|
||||||
|
{%- include "partials/hcard.html" -%}
|
||||||
|
{% endif -%}
|
||||||
{%- if section.extra.header %}
|
{%- if section.extra.header %}
|
||||||
{%- include "partials/home_banner.html" -%}
|
{%- include "partials/home_banner.html" -%}
|
||||||
{%- elif section.content -%}
|
{%- elif section.content -%}
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
{#- Fallback to absolute path if relative path doesn't work -#}
|
{#- Fallback to absolute path if relative path doesn't work -#}
|
||||||
{%- if not meta -%}
|
{%- if not meta -%}
|
||||||
{%- set meta = get_image_metadata(path=src, allow_missing=true) -%}
|
{%- set meta = get_image_metadata(path=src, allow_missing=true) -%}
|
||||||
{%- set image_url = get_url(path=src) -%}
|
{%- set image_url = get_url(path=src, cachebust=true) -%}
|
||||||
{%- else -%}
|
{%- else -%}
|
||||||
{%- set image_url = get_url(path=relative_path) -%}
|
{%- set image_url = get_url(path=relative_path, cachebust=true) -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
|
|
||||||
|
|
|
@ -16,9 +16,9 @@
|
||||||
{%- set relative_light_path = colocated_path ~ light_src -%}
|
{%- set relative_light_path = colocated_path ~ light_src -%}
|
||||||
{%- set light_meta = get_image_metadata(path=relative_light_path, allow_missing=true) -%}
|
{%- set light_meta = get_image_metadata(path=relative_light_path, allow_missing=true) -%}
|
||||||
{%- if not light_meta -%}
|
{%- if not light_meta -%}
|
||||||
{%- set light_image_url = get_url(path=light_src) -%}
|
{%- set light_image_url = get_url(path=light_src, cachebust=true) -%}
|
||||||
{%- else -%}
|
{%- else -%}
|
||||||
{%- set light_image_url = get_url(path=relative_light_path) -%}
|
{%- set light_image_url = get_url(path=relative_light_path, cachebust=true) -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
|
|
||||||
|
@ -29,9 +29,9 @@
|
||||||
{%- set relative_dark_path = colocated_path ~ dark_src -%}
|
{%- set relative_dark_path = colocated_path ~ dark_src -%}
|
||||||
{%- set dark_meta = get_image_metadata(path=relative_dark_path, allow_missing=true) -%}
|
{%- set dark_meta = get_image_metadata(path=relative_dark_path, allow_missing=true) -%}
|
||||||
{%- if not dark_meta -%}
|
{%- if not dark_meta -%}
|
||||||
{%- set dark_image_url = get_url(path=dark_src) -%}
|
{%- set dark_image_url = get_url(path=dark_src, cachebust=true) -%}
|
||||||
{%- else -%}
|
{%- else -%}
|
||||||
{%- set dark_image_url = get_url(path=relative_dark_path) -%}
|
{%- set dark_image_url = get_url(path=relative_dark_path, cachebust=true) -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
{#- Fallback to absolute path if relative path doesn't work -#}
|
{#- Fallback to absolute path if relative path doesn't work -#}
|
||||||
{%- if not meta -%}
|
{%- if not meta -%}
|
||||||
{%- set meta = get_image_metadata(path=src, allow_missing=true) -%}
|
{%- set meta = get_image_metadata(path=src, allow_missing=true) -%}
|
||||||
{%- set image_url = get_url(path=src) -%}
|
{%- set image_url = get_url(path=src, cachebust=true) -%}
|
||||||
{%- else %}
|
{%- else %}
|
||||||
{%- set image_url = get_url(path=relative_path) -%}
|
{%- set image_url = get_url(path=relative_path, cachebust=true) -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
|
|
||||||
|
|
|
@ -21,9 +21,9 @@
|
||||||
{%- set relative_default_path = colocated_path ~ default_src -%}
|
{%- set relative_default_path = colocated_path ~ default_src -%}
|
||||||
{%- set default_meta = get_image_metadata(path=relative_default_path, allow_missing=true) -%}
|
{%- set default_meta = get_image_metadata(path=relative_default_path, allow_missing=true) -%}
|
||||||
{%- if not default_meta -%}
|
{%- if not default_meta -%}
|
||||||
{%- set default_image_url = get_url(path=default_src) -%}
|
{%- set default_image_url = get_url(path=default_src, cachebust=true) -%}
|
||||||
{%- else -%}
|
{%- else -%}
|
||||||
{%- set default_image_url = get_url(path=relative_default_path) -%}
|
{%- set default_image_url = get_url(path=relative_default_path, cachebust=true) -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
|
|
||||||
|
@ -34,9 +34,9 @@
|
||||||
{%- set relative_hovered_path = colocated_path ~ hovered_src -%}
|
{%- set relative_hovered_path = colocated_path ~ hovered_src -%}
|
||||||
{%- set hovered_meta = get_image_metadata(path=relative_hovered_path, allow_missing=true) -%}
|
{%- set hovered_meta = get_image_metadata(path=relative_hovered_path, allow_missing=true) -%}
|
||||||
{%- if not hovered_meta -%}
|
{%- if not hovered_meta -%}
|
||||||
{%- set hovered_image_url = get_url(path=hovered_src) -%}
|
{%- set hovered_image_url = get_url(path=hovered_src, cachebust=true) -%}
|
||||||
{%- else -%}
|
{%- else -%}
|
||||||
{%- set hovered_image_url = get_url(path=relative_hovered_path) -%}
|
{%- set hovered_image_url = get_url(path=relative_hovered_path, cachebust=true) -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
|
|
||||||
|
|
|
@ -25,9 +25,9 @@
|
||||||
{%- set relative_default_path = colocated_path ~ default_src -%}
|
{%- set relative_default_path = colocated_path ~ default_src -%}
|
||||||
{%- set default_meta = get_image_metadata(path=relative_default_path, allow_missing=true) -%}
|
{%- set default_meta = get_image_metadata(path=relative_default_path, allow_missing=true) -%}
|
||||||
{%- if not default_meta -%}
|
{%- if not default_meta -%}
|
||||||
{%- set default_image_url = get_url(path=default_src) -%}
|
{%- set default_image_url = get_url(path=default_src, cachebust=true) -%}
|
||||||
{%- else -%}
|
{%- else -%}
|
||||||
{%- set default_image_url = get_url(path=relative_default_path) -%}
|
{%- set default_image_url = get_url(path=relative_default_path, cachebust=true) -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
|
|
||||||
|
@ -38,9 +38,9 @@
|
||||||
{%- set relative_toggled_path = colocated_path ~ toggled_src -%}
|
{%- set relative_toggled_path = colocated_path ~ toggled_src -%}
|
||||||
{%- set toggled_meta = get_image_metadata(path=relative_toggled_path, allow_missing=true) -%}
|
{%- set toggled_meta = get_image_metadata(path=relative_toggled_path, allow_missing=true) -%}
|
||||||
{%- if not toggled_meta -%}
|
{%- if not toggled_meta -%}
|
||||||
{%- set toggled_image_url = get_url(path=toggled_src) -%}
|
{%- set toggled_image_url = get_url(path=toggled_src, cachebust=true) -%}
|
||||||
{%- else -%}
|
{%- else -%}
|
||||||
{%- set toggled_image_url = get_url(path=relative_toggled_path) -%}
|
{%- set toggled_image_url = get_url(path=relative_toggled_path, cachebust=true) -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
{#- Fallback to absolute path if relative path doesn't work -#}
|
{#- Fallback to absolute path if relative path doesn't work -#}
|
||||||
{%- if not meta -%}
|
{%- if not meta -%}
|
||||||
{%- set meta = get_image_metadata(path=src, allow_missing=true) -%}
|
{%- set meta = get_image_metadata(path=src, allow_missing=true) -%}
|
||||||
{%- set image_url = get_url(path=src) -%}
|
{%- set image_url = get_url(path=src, cachebust=true) -%}
|
||||||
{%- else %}
|
{%- else %}
|
||||||
{%- set image_url = get_url(path=relative_path) -%}
|
{%- set image_url = get_url(path=relative_path, cachebust=true) -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,13 @@
|
||||||
|
|
||||||
{% block main_content %}
|
{% block main_content %}
|
||||||
|
|
||||||
{{ macros_page_header::page_header(title=term.name) }}
|
{#- Feed icon -#}
|
||||||
|
{%- set generate_feed = feed_utils::get_generate_feed() -%}
|
||||||
|
{%- set feed_url = feed_utils::get_feed_url() -%}
|
||||||
|
{%- set feed_pre_conditions = generate_feed and feed_url and taxonomy.feed -%}
|
||||||
|
{%- set show_feed_icon = feed_pre_conditions and term.pages | filter(attribute="date") -%}
|
||||||
|
|
||||||
|
{{ macros_page_header::page_header(title=term.name, show_feed_icon=show_feed_icon) }}
|
||||||
|
|
||||||
{% set max = section.extra.max_posts | default(value=999999) %}
|
{% set max = section.extra.max_posts | default(value=999999) %}
|
||||||
{{ macros_list_posts::list_posts(posts=term.pages, max=max, language_strings=language_strings) }}
|
{{ macros_list_posts::list_posts(posts=term.pages, max=max, language_strings=language_strings) }}
|
||||||
|
|
|
@ -2,7 +2,13 @@
|
||||||
|
|
||||||
{% block main_content %}
|
{% block main_content %}
|
||||||
|
|
||||||
{{ macros_page_header::page_header(title=term.name) }}
|
{#- Feed icon -#}
|
||||||
|
{%- set generate_feed = feed_utils::get_generate_feed() -%}
|
||||||
|
{%- set feed_url = feed_utils::get_feed_url() -%}
|
||||||
|
{%- set feed_pre_conditions = generate_feed and feed_url and taxonomy.feed -%}
|
||||||
|
{%- set show_feed_icon = feed_pre_conditions and term.pages | filter(attribute="date") | length > 0 -%}
|
||||||
|
|
||||||
|
{{ macros_page_header::page_header(title=term.name, show_feed_icon=show_feed_icon) }}
|
||||||
|
|
||||||
{% set max = section.extra.max_posts | default(value=999999) %}
|
{% set max = section.extra.max_posts | default(value=999999) %}
|
||||||
{{ macros_list_posts::list_posts(posts=term.pages, max=max, language_strings=language_strings) }}
|
{{ macros_list_posts::list_posts(posts=term.pages, max=max, language_strings=language_strings) }}
|
||||||
|
|
24
theme.toml
24
theme.toml
|
@ -416,3 +416,27 @@ custom_subset = true
|
||||||
# voting = true
|
# voting = true
|
||||||
# page_author_hashes = "" # hash (or list of hashes) of the author.
|
# page_author_hashes = "" # hash (or list of hashes) of the author.
|
||||||
# lazy_loading = true # Loads when the comments are in the viewport (using the Intersection Observer API).
|
# lazy_loading = true # Loads when the comments are in the viewport (using the Intersection Observer API).
|
||||||
|
|
||||||
|
# h-card configuration
|
||||||
|
# Will identify you on the indieweb (see https://microformats.org/wiki/h-card)
|
||||||
|
[extra.hcard]
|
||||||
|
# Enable home page h-card.
|
||||||
|
enable = true
|
||||||
|
# Add your email to the card if extra.email is set and not encoded.
|
||||||
|
# with_mail = true
|
||||||
|
# Add your social links ('socials' config) to the card.
|
||||||
|
with_social_links = true
|
||||||
|
# Homepage url. Defaults to the value of 'base_url'.
|
||||||
|
# homepage = "https://myhomepage.net"
|
||||||
|
# avatar = "img/profile.webp"
|
||||||
|
# Display name, default to the value of 'author'.
|
||||||
|
# full_name = "John Doe"
|
||||||
|
# Small bio, as shown on social media profiles.
|
||||||
|
# biography = "Fond of the indieweb"
|
||||||
|
#
|
||||||
|
# You can add any property from https://microformats.org/wiki/h-card#Properties
|
||||||
|
# Make sure to replace all '-' characters by '_'
|
||||||
|
# Examples:
|
||||||
|
# p_nickname = "nickname"
|
||||||
|
# p_locality = "Bordeaux"
|
||||||
|
# p_country_name = "France"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue