mirror of
https://github.com/welpo/tabi.git
synced 2025-10-10 23:38:53 +02:00
Compare commits
28 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
e1860ad1a0 | ||
![]() |
e8dcd0528e | ||
![]() |
13f88a8e86 | ||
![]() |
ea53c823cf | ||
f0e804b4ff | |||
![]() |
e33c1cc00d | ||
![]() |
83b0a5d011 | ||
![]() |
57277a0f23 | ||
![]() |
c36d868b55 | ||
![]() |
479fd96e50 | ||
![]() |
a7a0c05100 | ||
![]() |
a21edd31d5 | ||
![]() |
7e12f9acf3 | ||
![]() |
515fd078a5 | ||
![]() |
2064beae78 | ||
![]() |
3a40ae5a83 | ||
![]() |
daa8b1a412 | ||
![]() |
79b5dcf9a7 | ||
![]() |
0639c0c397 | ||
![]() |
9f5f307444 | ||
![]() |
9b7a45db53 | ||
![]() |
36adac03a4 | ||
![]() |
bda9f22f79 | ||
![]() |
d241fc1fda | ||
![]() |
0f8733b91a | ||
![]() |
0dfd434ce2 | ||
![]() |
2499387693 | ||
![]() |
9b115904d7 |
69 changed files with 2001 additions and 1056 deletions
2
.github/workflows/cd.yml
vendored
2
.github/workflows/cd.yml
vendored
|
@ -13,7 +13,7 @@ jobs:
|
|||
contents: write
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
|
|
10
.github/workflows/ci.yml
vendored
10
.github/workflows/ci.yml
vendored
|
@ -15,15 +15,15 @@ jobs:
|
|||
if: github.event_name == 'pull_request'
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Zola Build
|
||||
uses: shalzz/zola-deploy-action@v0.20.0
|
||||
uses: shalzz/zola-deploy-action@v0.21.0
|
||||
env:
|
||||
BUILD_ONLY: true
|
||||
|
||||
- name: Zola Check
|
||||
uses: shalzz/zola-deploy-action@v0.20.0
|
||||
uses: shalzz/zola-deploy-action@v0.21.0
|
||||
env:
|
||||
BUILD_ONLY: true
|
||||
CHECK_LINKS: true
|
||||
|
@ -34,10 +34,10 @@ jobs:
|
|||
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Build and Deploy
|
||||
uses: shalzz/zola-deploy-action@v0.20.0
|
||||
uses: shalzz/zola-deploy-action@v0.21.0
|
||||
env:
|
||||
PAGES_BRANCH: gh-pages
|
||||
TOKEN: ${{ secrets.TOKEN }}
|
||||
|
|
2
.github/workflows/upgrade-deps.yml
vendored
2
.github/workflows/upgrade-deps.yml
vendored
|
@ -25,7 +25,7 @@ jobs:
|
|||
dependency: ${{ github.event_name == 'schedule' && fromJson('["mermaid", "katex"]') || fromJson(format('["{0}"]', github.event.inputs.dependency)) }}
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
|
|
|
@ -56,6 +56,7 @@ tabi has a perfect score on Google's Lighthouse audit:
|
|||
- [X] [Mermaid support](https://welpo.github.io/tabi/blog/shortcodes/#mermaid-diagrams) to create diagrams and charts with text.
|
||||
- [X] [Local search](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#search) with an accessible, multi-lingual interface.
|
||||
- [X] [Custom Twitter card](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#social-media-cards) and automatic Open Graph tags.
|
||||
- [X] Anonymous [like buttons](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#iine) powered by [iine](https://iine.to).
|
||||
- [X] [KaTeX](https://katex.org/) support for mathematical notation.
|
||||
- [X] [Stylized and human readable Atom feed](https://welpo.github.io/tabi/atom.xml).
|
||||
- [X] [Stylized and human readable sitemap](https://welpo.github.io/tabi/sitemap.xml).
|
||||
|
@ -206,7 +207,6 @@ git pull
|
|||
| Website | Creator | Description | Site Source |
|
||||
| - | - | - | - |
|
||||
| [osc.garden](https://osc.garden) | Óscar Fernández ([welpo](https://github.com/welpo)) | Data science, psychology, and Zola | [Source](https://github.com/welpo/osc.garden) |
|
||||
| [sandip.live](https://sandip.live) | Sandip G ([sandman](https://github.com/sandman)) | Startups, tech and the good life | [Source](https://github.com/sandman/sandman.github.io) |
|
||||
| [seadve.github.io](https://seadve.github.io/) | Dave Patrick Caberto ([SeaDve](https://github.com/SeaDve/)) | Personal blog and portfolio with custom CSS | [Source](https://github.com/SeaDve/seadve.github.io) |
|
||||
| [mikufan.page](https://mikufan.page) | [Nadia](https://github.com/nyadiia) | Personal blog | [Source](https://github.com/nyadiia/mikufan.page) |
|
||||
| [tim-boettcher.online](https://tim-boettcher.online/) | [Tim Böttcher](https://codeberg.org/Tim-Boettcher/) | Insights and ramblings of a deafblind programmer | [Source](https://codeberg.org/Tim-Boettcher/tim-boettcher-online/) |
|
||||
|
@ -219,6 +219,7 @@ git pull
|
|||
| [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) |
|
||||
| [b1n.io](https://b1n.io) | [b1nhack](https://github.com/b1nhack) | Linux kernel vulnerability researcher | [Source](https://github.com/b1nhack/blog) |
|
||||
| [posixlycorrect.com](https://posixlycorrect.com/) | [Fabian Montero](https://git.posixlycorrect.com/fabian) | Personal homepage | [Source](https://git.posixlycorrect.com/fabian/homepage) |
|
||||
|
||||
Using tabi? Feel free to create a PR and add your site to this list.
|
||||
|
||||
|
|
25
config.toml
25
config.toml
|
@ -108,6 +108,9 @@ skin = ""
|
|||
browser_theme_color = "#087e96"
|
||||
# browser_theme_color = ["#ffffff", "#000000"] # Example of light/dark colours.
|
||||
|
||||
# For multilingual sites: show current language code on the language switcher.
|
||||
show_selected_language_code_in_language_switcher = false
|
||||
|
||||
# List additional stylesheets to load site-wide.
|
||||
# These stylesheets should be located in your site's `static` directory.
|
||||
# Example: stylesheets = ["extra1.css", "path/extra2.css"]
|
||||
|
@ -166,6 +169,14 @@ show_date = true
|
|||
# "both" - Show both the original date and the last updated date.
|
||||
post_listing_date = "date"
|
||||
|
||||
# Enable iine like buttons on all posts: https://iine.to/
|
||||
# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy
|
||||
iine = true
|
||||
iine_icon = "thumbs_up" # See https://iine.to/#customise
|
||||
# Unify like counts across all language versions of the same page.
|
||||
# When enabled, likes on /es/blog/hello/ will count towards /blog/hello/ (default language).
|
||||
iine_unified_languages = true
|
||||
|
||||
# Show "Jump to posts" link next to series' title.
|
||||
# By default, the link appears automatically when a series description exceeds 2000 characters.
|
||||
# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy
|
||||
|
@ -227,6 +238,17 @@ long_date_format = "%d %B %Y"
|
|||
# Default is "6th July 2049" in English and "%-d %B %Y" in other languages.
|
||||
short_date_format = ""
|
||||
|
||||
# Date format used for the archive page.
|
||||
# Default is "06 July" in English and "%d %b" in other languages.
|
||||
archive_date_format = ""
|
||||
|
||||
# Per-language date format overrides.
|
||||
# Examples: Spanish uses "3 de febrero de 2024", German uses "3. Februar 2024"
|
||||
date_formats = [
|
||||
{ lang = "es", long = "%d de %B de %Y", short = "%-d %b %Y" },
|
||||
{ lang = "de", long = "%d. %B %Y", short = "%d.%m.%Y", archive = "%d. %b" },
|
||||
]
|
||||
|
||||
# Custom separator used in title tag and posts metadata (between date, time to read, and tags).
|
||||
separator = "•"
|
||||
|
||||
|
@ -372,6 +394,9 @@ service = "goatcounter"
|
|||
# Leave this field empty if you're using the service's default hosting.
|
||||
self_hosted_url = "https://tabi-stats.osc.garden"
|
||||
|
||||
# Optional: For Umami, enable this option to respect users' Do Not Track (DNT) settings. The default is true.
|
||||
do_not_track = true
|
||||
|
||||
# giscus support for comments. https://giscus.app
|
||||
# Setup instructions: https://welpo.github.io/tabi/blog/comments/#setup
|
||||
[extra.giscus]
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
+++
|
||||
title = "Lost in Translation? Explora les capacitats multilingües de tabi"
|
||||
date = 2023-09-12
|
||||
updated = 2025-04-02
|
||||
updated = 2025-09-14
|
||||
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]
|
||||
|
@ -107,6 +107,19 @@ Per tant, si crees `i18n/ca.toml` al teu directori base, tabi llegirà les caden
|
|||
|
||||
Assegura't de copiar tot el fitxer per a aquest idioma primer, o el tema utilitzarà l'anglès per les claus que faltin.
|
||||
|
||||
## Com personalitzo els formats de data per a diferents idiomes?
|
||||
|
||||
Pots establir formats de data específics per idioma al teu `config.toml` utilitzant la matriu `date_formats`:
|
||||
|
||||
```toml
|
||||
date_formats = [
|
||||
{ lang = "es", long = "%d de %B de %Y", short = "%-d %b %Y", archive = "%d de %b" },
|
||||
{ lang = "de", long = "%d. %B %Y", short = "%d.%m.%Y", archive = "%d. %b" },
|
||||
]
|
||||
```
|
||||
|
||||
Això permet que cada idioma mostri les dates segons les convencions locals. Per exemple, l'espanyol mostrarà «3 de febrero de 2024» mentre que l'alemany mostrarà «3. Februar 2024». Si no es defineix un format específic per a un idioma, tabi utilitzarà la configuració global `long_date_format`, `short_date_format` i `archive_date_format`.
|
||||
|
||||
## Què passa si falta una traducció o està incompleta?
|
||||
|
||||
Si una cadena no es troba en el fitxer d'idioma, tabi utilitzarà a la cadena predeterminada en anglès.
|
||||
|
@ -134,3 +147,7 @@ Si ho vas fer, hauràs d'actualitzar manualment les traduccions. Pots fer-ho cop
|
|||
## tabi tradueix el meu contingut?
|
||||
|
||||
No. tabi només tradueix les cadenes de text del tema. Hauràs de traduir el teu contingut tu mateix.
|
||||
|
||||
## Com puc mostrar el codi de l'idioma actual al commutador d'idioma?
|
||||
|
||||
Afegeix `show_selected_language_code_in_language_switcher = true` a la secció `[extra]` del teu `config.toml`.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
+++
|
||||
title = "¿Lost in Translation? Explora las capacidades multilingües de tabi"
|
||||
date = 2023-09-12
|
||||
updated = 2025-04-02
|
||||
updated = 2025-09-14
|
||||
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]
|
||||
|
@ -107,6 +107,19 @@ Por lo tanto, si creas `i18n/en.toml` en tu directorio base, tabi leerá las cad
|
|||
|
||||
Asegúrate de copiar todo el archivo para ese idioma primero, o el tema usará el inglés para las claves faltantes.
|
||||
|
||||
## ¿Cómo personalizo los formatos de fecha para diferentes idiomas?
|
||||
|
||||
Puedes establecer formatos de fecha específicos por idioma en tu `config.toml` usando la matriz `date_formats`:
|
||||
|
||||
```toml
|
||||
date_formats = [
|
||||
{ lang = "es", long = "%d de %B de %Y", short = "%-d %b %Y", archive = "%d de %b" },
|
||||
{ lang = "de", long = "%d. %B %Y", short = "%d.%m.%Y", archive = "%d. %b" },
|
||||
]
|
||||
```
|
||||
|
||||
Esto permite que cada idioma muestre las fechas según las convenciones locales. Por ejemplo, el español mostrará «3 de febrero de 2024» mientras que el alemán mostrará «3. Februar 2024». Si no se define un formato específico para un idioma, tabi usará la configuración global `long_date_format`, `short_date_format` y `archive_date_format`.
|
||||
|
||||
## ¿Qué pasa si falta una traducción o está incompleta?
|
||||
|
||||
Si una cadena no se encuentra en el archivo de idioma, tabi recurrirá a la cadena predeterminada en inglés.
|
||||
|
@ -134,3 +147,7 @@ Si lo hiciste, tendrás que actualizar manualmente las traducciones. Puedes hace
|
|||
## ¿tabi traduce el contenido de mi sitio?
|
||||
|
||||
No. tabi sólo traduce el tema. Los posts deberás traducirlos tú mismo.
|
||||
|
||||
## ¿Cómo puedo mostrar el código del idioma actual en el conmutador de idioma?
|
||||
|
||||
Añade `show_selected_language_code_in_language_switcher = true` en la sección `[extra]` de tu `config.toml`.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
+++
|
||||
title = "Lost in Translation? Not with tabi's Multilingual Capabilities"
|
||||
date = 2023-09-12
|
||||
updated = 2025-04-02
|
||||
updated = 2025-09-14
|
||||
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]
|
||||
|
@ -108,6 +108,19 @@ So if you create `i18n/en.toml` in your base directory, tabi will read the stri
|
|||
|
||||
Make sure to copy the entire file for that language first, or the theme will fall back to the default English strings.
|
||||
|
||||
## How do I customize date formats for different languages?
|
||||
|
||||
You can set language-specific date formats in your `config.toml` using the `date_formats` array:
|
||||
|
||||
```toml
|
||||
date_formats = [
|
||||
{ lang = "es", long = "%d de %B de %Y", short = "%-d %b %Y", archive = "%d de %b" },
|
||||
{ lang = "de", long = "%d. %B %Y", short = "%d.%m.%Y", archive = "%d. %b" },
|
||||
]
|
||||
```
|
||||
|
||||
This allows each language to display dates according to local conventions. For example, Spanish will show "3 de febrero de 2024" while German will show "3. Februar 2024". If no language-specific format is defined, tabi will use the global `long_date_format`, `short_date_format` and `archive_date_format` settings.
|
||||
|
||||
## What happens if a translation is missing or incomplete?
|
||||
|
||||
If a string is not found in the language file, tabi will fall back to the default English string.
|
||||
|
@ -135,3 +148,7 @@ If you did, you will need to manually update the translations. You can do this b
|
|||
## Does tabi translate my content?
|
||||
|
||||
No. tabi only translates the theme's text strings. You will need to translate your content yourself.
|
||||
|
||||
# How to show current language code on the language switcher?
|
||||
|
||||
Add `show_selected_language_code_in_language_switcher = true` in your config extras.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
+++
|
||||
title = "Domina la configuració de tabi: guia completa"
|
||||
date = 2023-09-18
|
||||
updated = 2025-06-08
|
||||
updated = 2025-08-07
|
||||
description = "Descobreix les múltiples maneres en què pots personalitzar tabi."
|
||||
|
||||
[taxonomies]
|
||||
|
@ -223,7 +223,7 @@ Les skins («pells») de tabi canvien el color principal del lloc web. Pots conf
|
|||
|
||||
{{ image_toggler(default_src="blog/customise-tabi/skins/lavender_light.webp", toggled_src="blog/customise-tabi/skins/lavender_dark.webp", default_alt="pell lavender en mode clar", toggled_alt="pell lavender en mode fosc", full_width=true) }}
|
||||
|
||||
Explora les skins disponibles i aprèn com crear la teva pròpia consultant [la documentació](/ca/blog/customise-tabi/#skins).
|
||||
Explora les skins disponibles i aprèn com crear la teva pròpia consultant [la documentació](@/blog/customise-tabi/index.ca.md#skins).
|
||||
|
||||
### Font sans serif (pal sec)
|
||||
|
||||
|
@ -780,6 +780,35 @@ Si has activat un sistema de forma global i vols desactivar-lo per a una pàgina
|
|||
|
||||
Llegeix la [documentació](@/blog/comments/index.ca.md) per a més informació sobre els sistemes disponibles i la seva configuració.
|
||||
|
||||
### Botons d'iine {#iine}
|
||||
|
||||
| Pàgina | Secció | `config.toml` | Segueix la jerarquia | Requereix JavaScript |
|
||||
|:------:|:------:|:-------------:|:--------------------:|:--------------------:|
|
||||
| ✅ | ✅ | ✅ | ✅ | ❌ |
|
||||
|
||||
tabi permet botons d'[iine](https://iine.to/) per mostrar apreciació anònima pel teu contingut. Aquests botons centrats en la privadesa funcionen sense JavaScript i no rastegen usuaris.
|
||||
|
||||
Per activar els botons iine globalment:
|
||||
|
||||
```toml
|
||||
[extra]
|
||||
iine = true
|
||||
```
|
||||
|
||||
Pots personalitzar la icona usada als botons (segueix la jerarquia):
|
||||
|
||||
```toml
|
||||
[extra]
|
||||
iine_icon = "thumbs_up" # Opcions: "heart", "thumbs_up", "upvote", o qualsevol emoji
|
||||
```
|
||||
|
||||
Per a llocs multilingües, pots unificar els recomptes de likes entre versions en diferents idiomes del mateix contingut (configuració només de config; valor per defecte és `true`):
|
||||
|
||||
```toml
|
||||
[extra]
|
||||
iine_unified_languages = true # Els likes a /ca/blog/hello/ compten cap a /blog/hello/
|
||||
```
|
||||
|
||||
### Anàlisi web
|
||||
|
||||
| Pàgina | Secció | `config.toml` | Segueix la jerarquia | Requereix JavaScript |
|
||||
|
@ -802,6 +831,8 @@ Pots configurar-los en la secció `[extra.analytics]` del teu arxiu `config.toml
|
|||
- Per a Umami: `"https://umami.example.com"`
|
||||
- Per a Plausible: `"https://plausible.example.com"`
|
||||
|
||||
- `do_not_track`: (només per a Umami) opcional. Quan s'estableix com a `true`, es desactiva el seguiment per als usuaris els navegadors dels quals envien una capçalera "Do Not Track".
|
||||
|
||||
Un exemple de configuració per a GoatCounter no auto-allotjada seria:
|
||||
|
||||
```toml
|
||||
|
@ -937,12 +968,25 @@ Per defecte, la data es mostra sota el títol de la publicació. Pots amagar-la
|
|||
|:------:|:-------:|:-------------:|:---------------------:|:-------------------:|
|
||||
| ❌ | ❌ | ✅ | ❌ | ❌ |
|
||||
|
||||
tabi té dos formats de data: `long_date_format` i `short_date_format`. El format curt s'utilitza a les metadades d'una publicació, mentre que el format llarg s'utilitza al llistar les publicacions (és a dir, a la [secció de blog](/ca/blog/) o a la [pàgina principal](/ca/)).
|
||||
tabi té tres formats de data: `long_date_format`, `short_date_format` i `archive_data_format`. El format curt s'utilitza a les metadades d'una publicació, mentre que el format llarg s'utilitza al llistar les publicacions (és a dir, a la [secció de blog](/ca/blog/) o a la [pàgina principal](/ca/)). El format d'arxiu s'utilitza per mostrar el dia i el mes a la pàgina d'arxiu.
|
||||
|
||||
Per defecte és "6th July 2049" per a ambdós formats en anglès. Per a altres idiomes, el predeterminat és `"%d %B %Y"` per al format llarg i `"%-d %b %Y"` per al format curt.
|
||||
Per defecte és "6th July 2049" per als formats curt i llarg en anglès. Per a altres idiomes, el predeterminat és `"%d %B %Y"` per al format llarg i `"%-d %b %Y"` per al format curt. El format d'arxiu predeterminat universal és `"%d %b"`.
|
||||
|
||||
A Zola, la sintaxi per al format de temps està inspirada en strftime. Una referència completa està disponible a la [documentació de chrono](https://docs.rs/chrono/0.4.31/chrono/format/strftime/index.html).
|
||||
|
||||
#### Formats de data per idioma
|
||||
|
||||
Pots personalitzar els formats de data per idiomes específics utilitzant la matriu `date_formats` a `config.toml`:
|
||||
|
||||
```toml
|
||||
date_formats = [
|
||||
{ lang = "es", long = "%d de %B de %Y", short = "%-d %b %Y", archive = "%d de %b" },
|
||||
{ lang = "de", long = "%d. %B %Y", short = "%d.%m.%Y", archive = "%d. %b" },
|
||||
]
|
||||
```
|
||||
|
||||
Això permet que diferents idiomes utilitzin formats de data culturalment apropiats (per exemple, "6. Juli 2049" per a alemany VS "6 de julio de 2049" per a espanyol).
|
||||
|
||||
### Separador personalitzat
|
||||
|
||||
| Pàgina | Secció | `config.toml` | Segueix la jerarquia | Requereix JavaScript |
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
+++
|
||||
title = "Domina la configuración de tabi: guía completa"
|
||||
date = 2023-09-18
|
||||
updated = 2025-06-08
|
||||
updated = 2025-08-07
|
||||
description = "Descubre las múltiples maneras en que puedes personalizar tabi."
|
||||
|
||||
[taxonomies]
|
||||
|
@ -224,7 +224,7 @@ Las pieles de tabi cambian el color principal del sitio. Puedes configurar la pi
|
|||
|
||||
{{ image_toggler(default_src="blog/customise-tabi/skins/lavender_light.webp", toggled_src="blog/customise-tabi/skins/lavender_dark.webp", default_alt="piel lavender en modo claro", toggled_alt="piel lavender en modo oscuro", full_width=true) }}
|
||||
|
||||
Explora las pieles disponibles y aprende cómo crear la tuya propia consultando [la documentación](/es/blog/customise-tabi/#skins).
|
||||
Explora las pieles disponibles y aprende cómo crear la tuya propia consultando [la documentación](@/blog/customise-tabi/index.es.md#skins).
|
||||
|
||||
### Fuente sans serif (paloseco)
|
||||
|
||||
|
@ -781,6 +781,37 @@ Si has activado un sistema globalmente, pero quieres desactivarlo en una página
|
|||
|
||||
Lee la [documentación](@/blog/comments/index.es.md) para obtener más información sobre los sistemas disponibles y su configuración.
|
||||
|
||||
### Botones de iine {#iine}
|
||||
|
||||
| Página | Sección | `config.toml` | Sigue la jerarquía | Requiere JavaScript |
|
||||
|:------:|:-------:|:-------------:|:-------------------:|:-------------------:|
|
||||
| ✅ | ✅ | ✅ | ✅ | ❌ |
|
||||
|
||||
tabi soporta botones de [iine](https://iine.to/) para mostrar apreciación anónima por tu contenido. Estos botones centrados en la privacidad funcionan sin JavaScript y no rastrean usuarios.
|
||||
|
||||
Para activar los botones iine globalmente:
|
||||
|
||||
```toml
|
||||
[extra]
|
||||
iine = true
|
||||
```
|
||||
|
||||
Puedes personalizar el icono usado en los botones (esta configuración sigue la jerarquía):
|
||||
|
||||
```toml
|
||||
[extra]
|
||||
iine_icon = "thumbs_up" # Opciones: "heart", "thumbs_up", "upvote", o cualquier emoji
|
||||
```
|
||||
|
||||
Para sitios multilingües, puedes unificar los conteos de likes entre versiones en diferentes idiomas del mismo contenido (configuración solo de config; valor predeterminado: `true`):
|
||||
|
||||
```toml
|
||||
[extra]
|
||||
iine_unified_languages = true # Los likes en /es/blog/hello/ cuentan hacia /blog/hello/
|
||||
```
|
||||
|
||||
También puedes activar los botones iine en páginas o secciones individuales estableciendo `iine = true` en su front matter, o personalizar el icono con `iine_icon = "🚀"`.
|
||||
|
||||
### Análisis web
|
||||
|
||||
| Página | Sección | `config.toml` | Sigue Jerarquía | Requiere JavaScript |
|
||||
|
@ -803,6 +834,8 @@ Puedes configurarlos en la sección `[extra.analytics]` de tu archivo `config.to
|
|||
- Para Umami: `"https://umami.example.com"`
|
||||
- Para Plausible: `"https://plausible.example.com"`
|
||||
|
||||
- `do_not_track`: (sólo para Umami) opcional. Cuando se establece en `true`, se desactiva el seguimiento para los usuarios cuyos navegadores envían un encabezado "Do Not Track".
|
||||
|
||||
Un ejemplo de configuración para GoatCounter no auto-alojada sería:
|
||||
|
||||
```toml
|
||||
|
@ -940,12 +973,25 @@ Por defecto, la fecha se muestra debajo del título de la publicación. Puedes o
|
|||
|:------:|:-------:|:-------------:|:------------------:|:-------------------:|
|
||||
| ❌ | ❌ | ✅ | ❌ | ❌ |
|
||||
|
||||
tabi tiene dos formatos de fecha: `long_date_format` y `short_date_format`. El formato corto se utiliza en los metadatos de una publicación, mientras que el formato largo se utiliza al listar las publicaciones (es decir, en la [sección de blog](/es/blog/) o en la [página principal](/es/)).
|
||||
tabi tiene tres formatos de fecha: `long_date_format`, `short_date_format` y `archive_date_format`. El formato corto se utiliza en los metadatos de una publicación, mientras que el formato largo se utiliza al listar las publicaciones (es decir, en la [sección de blog](/es/blog/) o en la [página principal](/es/)). El formato de archivo se usa para mostrar el día y el mes en la página de archivo.
|
||||
|
||||
Por defecto es "6th July 2049" para ambos formatos en inglés. Para otros idiomas, el predeterminado es `"%d %B %Y"` para el formato largo y `"%-d %b %Y"` para el formato corto.
|
||||
Por defecto es "6th July 2049" para los formatos corto y largo en inglés. Para otros idiomas, el predeterminado es `"%d %B %Y"` para el formato largo y `"%-d %b %Y"` para el formato corto. El formato de archivo predeterminado universal es `"%d %b"`.
|
||||
|
||||
En Zola, la sintaxis para el formateo de tiempo está inspirada en strftime. Una referencia completa está disponible en la [documentación de chrono](https://docs.rs/chrono/0.4.31/chrono/format/strftime/index.html).
|
||||
|
||||
#### Formatos de fecha por idioma
|
||||
|
||||
Puedes personalizar los formatos de fecha para idiomas específicos usando la matriz `date_formats` en `config.toml`:
|
||||
|
||||
```toml
|
||||
date_formats = [
|
||||
{ lang = "es", long = "%d de %B de %Y", short = "%-d %b %Y", archive = "%d de %b" },
|
||||
{ lang = "de", long = "%d. %B %Y", short = "%d.%m.%Y", archive = "%d. %b" },
|
||||
]
|
||||
```
|
||||
|
||||
Esto permite que diferentes idiomas usen formatos de fecha culturalmente apropiados (por ejemplo, "6 de julio de 2049" en español o "6. Juli 2049" en alemán).
|
||||
|
||||
### Separador personalizado
|
||||
|
||||
| Página | Sección | `config.toml` | Sigue la jerarquía | Requiere JavaScript |
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
+++
|
||||
title = "Mastering tabi Settings: A Comprehensive Guide"
|
||||
date = 2023-09-18
|
||||
updated = 2025-06-08
|
||||
updated = 2025-08-07
|
||||
description = "Discover the many ways you can customise your tabi site."
|
||||
|
||||
[taxonomies]
|
||||
|
@ -228,7 +228,7 @@ tabi's skins change the main colour of the site. You can set the skin in `config
|
|||
|
||||
{{ image_toggler(default_src="blog/customise-tabi/skins/lavender_light.webp", toggled_src="blog/customise-tabi/skins/lavender_dark.webp", default_alt="lavender skin in light mode", toggled_alt="lavender skin in dark mode", full_width=true) }}
|
||||
|
||||
Explore the available skins and learn how to create your own reading [the documentation](/blog/customise-tabi/#skins).
|
||||
Explore the available skins and learn how to create your own reading [the documentation](@/blog/customise-tabi/index.md#skins).
|
||||
|
||||
### Sans-serif Font
|
||||
|
||||
|
@ -789,6 +789,37 @@ If you have enabled a system globally, but want to disable it on a specific page
|
|||
|
||||
Read [the docs](@/blog/comments/index.md) for more information on the available systems and their setup.
|
||||
|
||||
### iine Like Buttons {#iine}
|
||||
|
||||
| Page | Section | `config.toml` | Follows Hierarchy | Requires JavaScript |
|
||||
|:----:|:-------:|:-------------:|:-----------------:|:-------------------:|
|
||||
| ✅ | ✅ | ✅ | ✅ | ❌ |
|
||||
|
||||
tabi supports [iine](https://iine.to/) like buttons for anonymous appreciation of your content. These privacy-focused buttons work without JavaScript and don't track users.
|
||||
|
||||
To enable iine buttons globally:
|
||||
|
||||
```toml
|
||||
[extra]
|
||||
iine = true
|
||||
```
|
||||
|
||||
You can customise the icon used for the buttons (follows the hierarchy):
|
||||
|
||||
```toml
|
||||
[extra]
|
||||
iine_icon = "thumbs_up" # Options: "heart", "thumbs_up", "upvote", or any emoji
|
||||
```
|
||||
|
||||
For multilingual sites, you can unify like counts across language versions of the same content (config-only setting; true by default):
|
||||
|
||||
```toml
|
||||
[extra]
|
||||
iine_unified_languages = true # Likes on /es/blog/hello/ count towards /blog/hello/
|
||||
```
|
||||
|
||||
You can also enable iine buttons on individual pages or sections by setting `iine = true` in their front matter, or override the icon with `iine_icon = "🚀"`.
|
||||
|
||||
### Analytics
|
||||
|
||||
| Page | Section | `config.toml` | Follows Hierarchy | Requires JavaScript |
|
||||
|
@ -811,6 +842,8 @@ You can set them up in the `[extra.analytics]` section of your `config.toml`.
|
|||
- For Umami: `"https://umami.example.com"`
|
||||
- For Plausible: `"https://plausible.example.com"`
|
||||
|
||||
- `do_not_track`: (Umami only) Optional. When set to `true`, the generated tracking script will include the `data-do-not-track="true"` attribute, which disables tracking for users whose browsers send a "Do Not Track" header.
|
||||
|
||||
An example configuration for non-self-hosted GoatCounter would look like this:
|
||||
|
||||
```toml
|
||||
|
@ -950,12 +983,25 @@ By default, the date is shown below the post title. You can hide it with `show_d
|
|||
|:----:|:-------:|:-------------:|:-----------------:|:-------------------:|
|
||||
| ❌ | ❌ | ✅ | ❌ | ❌ |
|
||||
|
||||
tabi has two date formats: `long_date_format` and `short_date_format`. The short format is used in a post's metadata, while the long format is used when listing posts (i.e. on the [blog section](@/blog/_index.md) or the [main page](@/_index.md)).
|
||||
tabi has three date formats: `long_date_format`, `short_date_format` and `archive_date_format`. The short format is used in a post's metadata, while the long format is used when listing posts (i.e. on the [blog section](@/blog/_index.md) or the [main page](@/_index.md)). The archive format is used to display day and month on the archive page.
|
||||
|
||||
The default is "6th July 2049" for both formats in English. For other languages, the defaut is `"%d %B %Y"` for the long format and `"%-d %b %Y"` for the short format.
|
||||
The default is "6th July 2049" for `long_date_format` and `short_date_format` in English. For other languages, the defaut is `"%d %B %Y"` for the long format and `"%-d %b %Y"` for the short format. The universal default for the archive format is `"%d %b"`.
|
||||
|
||||
In Zola, time formatting syntax is inspired fom strftime. A full reference is available in the [chrono docs](https://docs.rs/chrono/0.4.31/chrono/format/strftime/index.html).
|
||||
|
||||
#### Per-language date formats
|
||||
|
||||
You can customise date formats for specific languages using the `date_formats` array in `config.toml`:
|
||||
|
||||
```toml
|
||||
date_formats = [
|
||||
{ lang = "es", long = "%d de %B de %Y", short = "%-d %b %Y", archive = "%d de %b" },
|
||||
{ lang = "de", long = "%d. %B %Y", short = "%d.%m.%Y", archive = "%d. %b" },
|
||||
]
|
||||
```
|
||||
|
||||
This allows different languages to use culturally appropriate date formatting (e.g. Spanish "3 de febrero de 2024" vs German "3. Februar 2024").
|
||||
|
||||
### Custom Separator
|
||||
|
||||
| Page | Section | `config.toml` | Follows Hierarchy | Requires JavaScript |
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
+++
|
||||
title = "Shortcodes personalitzats"
|
||||
date = 2023-02-19
|
||||
updated = 2025-02-15
|
||||
updated = 2025-08-01
|
||||
description = "Aquest tema inclou alguns shortcodes personalitzats útils que pots utilitzar per millorar les teves publicacions. Ja sigui per mostrar imatges que s'adapten als temes clar i fosc, o per donar format a una secció de referències amb un aspecte professional, aquests shortcodes personalitzats t'ajudaran."
|
||||
|
||||
[taxonomies]
|
||||
|
@ -187,6 +187,28 @@ Tots els altres shortcodes d'imatges poden utilizar l'amplada completa assignant
|
|||
{{/* full_width_image(src="img/amsterdam_by_oskerwyld.webp", alt="Fotografia d'un canal a Àmsterdam") */}}
|
||||
```
|
||||
|
||||
## Shortcodes socials
|
||||
|
||||
### iine
|
||||
|
||||
{{ aside(text="Per afegir-lo a totes les publicacions, estableix `iine = true` a la secció `[extra]` del teu `config.toml`.") }}
|
||||
|
||||
Aquest shortcode et permet afegir botons addicionals d'[iine.to](https://iine.to) a les teves publicacions, com aquest:
|
||||
|
||||
{{ iine(slug="/blog/shortcodes/demo-button") }}
|
||||
|
||||
#### Ús
|
||||
|
||||
```
|
||||
{{/* iine(icon="heart", slug="/post/el-meu-slug-de-post/like", label="M'agrada aquesta publicació") */}}
|
||||
```
|
||||
|
||||
El shortcode accepta els següents paràmetres opcionals:
|
||||
|
||||
- `icon`: La icona a mostrar. Pot ser `heart`, `thumbs_up`, `upvote`, o qualsevol emoji.
|
||||
- `slug`: Un identificador únic. Per defecte és la ruta de la pàgina actual. Útil si vols més d'un botó a la mateixa pàgina.
|
||||
- `label`: L'etiqueta d'accessibilitat per al botó. Per defecte és "M'agrada aquesta publicació".
|
||||
|
||||
## Shortcodes de codi
|
||||
|
||||
### Mostrar ruta o URL
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
+++
|
||||
title = "Shortcodes personalizados"
|
||||
date = 2023-02-19
|
||||
updated = 2025-02-15
|
||||
updated = 2025-08-01
|
||||
description = "Este tema incluye algunos shortcodes personalizados útiles que puedes utilizar para mejorar tus publicaciones. Puedes mostrar imágenes que se adapten a los temas claro y oscuro, dar formato a una sección de referencias con un aspecto profesional, y más."
|
||||
|
||||
[taxonomies]
|
||||
|
@ -186,6 +186,28 @@ Todos los otros shortcodes de imágenes pueden usar el ancho completo asignando
|
|||
{{/* full_width_image(src="img/amsterdam_by_oskerwyld.webp", alt="Fotografía de un canal en Ámsterdam") */}}
|
||||
```
|
||||
|
||||
## Shortcodes sociales
|
||||
|
||||
### iine
|
||||
|
||||
{{ aside(text="Para añadirlo a todas las publicaciones, establece `iine = true` en la sección `[extra]` de tu `config.toml`.") }}
|
||||
|
||||
Este shortcode te permite añadir botones adicionales de [iine.to](https://iine.to) a tus publicaciones, como este:
|
||||
|
||||
{{ iine(slug="/blog/shortcodes/demo-button") }}
|
||||
|
||||
#### Uso
|
||||
|
||||
```
|
||||
{{/* iine(icon="heart", slug="/post/mi-slug-de-post/like", label="Me gusta esta publicación") */}}
|
||||
```
|
||||
|
||||
El shortcode acepta los siguientes parámetros opcionales:
|
||||
|
||||
- `icon`: El icono a mostrar. Puede ser `heart`, `thumbs_up`, `upvote`, o cualquier emoji.
|
||||
- `slug`: Un identificador único. Por defecto es la ruta de la página actual. Útil si quieres más de un botón en la misma página.
|
||||
- `label`: La etiqueta de accesibilidad para el botón. Por defecto es "Me gusta esta publicación".
|
||||
|
||||
## Shortcodes de código
|
||||
|
||||
### Mostrar ruta o URL
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
+++
|
||||
title = "Custom shortcodes"
|
||||
date = 2023-02-19
|
||||
updated = 2025-05-18
|
||||
updated = 2025-07-26
|
||||
description = "This theme includes some useful custom shortcodes that you can use to enhance your posts. Whether you want to display images that adapt to light and dark themes, or format a professional-looking reference section, these custom shortcodes have got you covered."
|
||||
|
||||
[taxonomies]
|
||||
|
@ -188,6 +188,28 @@ All other image shortcodes can be made into full-width by setting the optional p
|
|||
{{/* full_width_image(src="img/amsterdam_by_oskerwyld.webp", alt="Photograph of a canal in Amsterdam") */}}
|
||||
```
|
||||
|
||||
## Engagement shortcodes
|
||||
|
||||
### iine
|
||||
|
||||
{{ aside(text="To add it to all posts, set `iine = true` in the `[extra]` section of your `config.toml`.") }}
|
||||
|
||||
This shortcode allows you to add extra [iine.to](https://iine.to) buttons to your posts, like this:
|
||||
|
||||
{{ iine(slug="/blog/shortcodes/demo-button") }}
|
||||
|
||||
#### Usage
|
||||
|
||||
```
|
||||
{{/* iine(icon="heart", slug="/post/my-post-slug/like", label="Like this post") */}}
|
||||
```
|
||||
|
||||
The shortcode takes the following optional parameters:
|
||||
|
||||
- `icon`: The icon to display. Can be `heart`, `thumbs_up`, `upvote`, or any emoji.
|
||||
- `slug`: A unique identifier. Defaults to the current page's path. Useful if you want more than one button on the same page.
|
||||
- `label`: The accessibility label for the button. Defaults to "Like this post".
|
||||
|
||||
## Code shortcodes
|
||||
|
||||
### Show source or path
|
||||
|
|
|
@ -8,4 +8,5 @@ insert_anchor_links = "left"
|
|||
social_media_card = "projects/projects.jpg"
|
||||
show_reading_time = false
|
||||
quick_navigation_buttons = true
|
||||
iine_icon = 'heart'
|
||||
+++
|
||||
|
|
BIN
content/projects/iine/iine_logo.webp
Normal file
BIN
content/projects/iine/iine_logo.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 39 KiB |
52
content/projects/iine/index.ca.md
Normal file
52
content/projects/iine/index.ca.md
Normal file
|
@ -0,0 +1,52 @@
|
|||
+++
|
||||
title = "iine"
|
||||
description = "Botons d'apreciació centrats en la privadesa i accessibles per a la web petita/independent."
|
||||
weight = 15
|
||||
|
||||
[taxonomies]
|
||||
tags = ["web", "JavaScript", "privadesa", "backend"]
|
||||
|
||||
[extra]
|
||||
local_image = "projects/iine/iine_logo.webp"
|
||||
social_media_card = "social_cards/projects_iine.jpg"
|
||||
canonical_url = "https://osc.garden/projects/iine/"
|
||||
+++
|
||||
|
||||
Botons d'apreciació per al teu blog, jardí digital, portafoli… No cal compte. Sense seguiment.
|
||||
|
||||
#### [GitHub](https://github.com/welpo/iine) • [Web](https://iine.to) {.centered-text}
|
||||
|
||||
## Característiques
|
||||
|
||||
- Sense marques de temps, sense IPs, sense seguiment
|
||||
- ~3KB de JavaScript vanilla
|
||||
- Funciona sense JavaScript
|
||||
- Diverses icones: cor, polze amunt, vot positiu, o qualsevol emoji
|
||||
- Construït per a la web petita/independent
|
||||
- Gratuït per sempre
|
||||
- Accessible per disseny
|
||||
- Auto-hostejable
|
||||
|
||||
## Inici ràpid
|
||||
|
||||
Afegeix botons d'apreciació al teu lloc amb dues línies. Carrega l'script:
|
||||
|
||||
```html
|
||||
<script defer src="https://cdn.jsdelivr.net/gh/welpo/iine@main/iine.mini.js"></script>
|
||||
```
|
||||
|
||||
Afegeix el botó:
|
||||
|
||||
```html
|
||||
<button class="iine-button" aria-hidden="true"></button>
|
||||
```
|
||||
|
||||
Fet. Els teus visitants ja poden mostrar apreciació anònima pel teu contingut.
|
||||
|
||||
## Per què iine?
|
||||
|
||||
Volia afegir botons de m'agrada/felicitacions/alegria/apreciació al [meu blog](https://osc.garden) sense registrar-me a res, i assegurant-me que els meus visitants no fossin rastrejats.
|
||||
|
||||
Esperant que altres ho trobin útil, vaig fer el servei públic (codi obert) i gratuït per sempre (almenys fins que doni suport a més de 100k llocs web).
|
||||
|
||||
Construït per a blogs, portafolis, jardins digitals, i qualsevol que cregui que la web hauria de ser més humana.
|
52
content/projects/iine/index.es.md
Normal file
52
content/projects/iine/index.es.md
Normal file
|
@ -0,0 +1,52 @@
|
|||
+++
|
||||
title = "iine"
|
||||
description = "Botones de apreciación centrados en la privacidad y accesibles para la web pequeña."
|
||||
weight = 15
|
||||
|
||||
[taxonomies]
|
||||
tags = ["web", "JavaScript", "privacidad", "backend"]
|
||||
|
||||
[extra]
|
||||
local_image = "projects/iine/iine_logo.webp"
|
||||
social_media_card = "social_cards/projects_iine.jpg"
|
||||
canonical_url = "https://osc.garden/projects/iine/"
|
||||
+++
|
||||
|
||||
Botones de apreciación para tu blog, jardín digital, portafolio… Sin cuenta requerida. Sin seguimiento.
|
||||
|
||||
#### [GitHub](https://github.com/welpo/iine) • [Sitio web](https://iine.to) {.centered-text}
|
||||
|
||||
## Características
|
||||
|
||||
- Sin marcas de tiempo, sin IPs, sin seguimiento
|
||||
- ~3KB de JavaScript vanilla
|
||||
- Funciona sin JavaScript
|
||||
- Varios iconos: corazón, pulgar arriba, voto positivo, o cualquier emoji
|
||||
- Construido para la web pequeña/independiente
|
||||
- Gratis para siempre
|
||||
- Accesible por diseño
|
||||
- Auto-hosteable
|
||||
|
||||
## Inicio rápido
|
||||
|
||||
Añade botones de apreciación a tu sitio con dos líneas. Carga el script:
|
||||
|
||||
```html
|
||||
<script defer src="https://cdn.jsdelivr.net/gh/welpo/iine@main/iine.mini.js"></script>
|
||||
```
|
||||
|
||||
Añade el botón:
|
||||
|
||||
```html
|
||||
<button class="iine-button" aria-hidden="true"></button>
|
||||
```
|
||||
|
||||
Listo. Tus visitantes ya pueden mostrar apreciación anónima por tu contenido.
|
||||
|
||||
## ¿Por qué iine?
|
||||
|
||||
Quería añadir botones de me gusta/felicitaciones/alegría/apreciación a [mi blog](https://osc.garden) sin registrarme en nada, y asegurándome de que mis visitantes no fueran rastreados.
|
||||
|
||||
Esperando que otros lo encuentren útil, hice el servicio público (código abierto) y gratis para siempre (al menos hasta que soporte más de 100k sitios web).
|
||||
|
||||
Construido para blogs, portafolios, jardines digitales, y cualquiera que crea que la web debería ser más humana.
|
52
content/projects/iine/index.md
Normal file
52
content/projects/iine/index.md
Normal file
|
@ -0,0 +1,52 @@
|
|||
+++
|
||||
title = "iine"
|
||||
description = "Privacy-focused & accessible like buttons for the small web."
|
||||
weight = 15
|
||||
|
||||
[taxonomies]
|
||||
tags = ["web", "JavaScript", "privacy", "backend"]
|
||||
|
||||
[extra]
|
||||
local_image = "projects/iine/iine_logo.webp"
|
||||
social_media_card = "social_cards/projects_iine.jpg"
|
||||
canonical_url = "https://osc.garden/projects/iine/"
|
||||
+++
|
||||
|
||||
Appreciation buttons for your blog, digital garden, portfolio… No account required. No tracking.
|
||||
|
||||
#### [GitHub](https://github.com/welpo/iine) • [Website](https://iine.to) {.centered-text}
|
||||
|
||||
## Features
|
||||
|
||||
- No timestamps, no IPs, no tracking
|
||||
- ~3KB of vanilla JavaScript
|
||||
- Works without JavaScript
|
||||
- Various icons: heart, thumbs up, upvote, or any emoji
|
||||
- Built for the small/indie web
|
||||
- Free forever
|
||||
- Accessible by design
|
||||
- Self-hostable
|
||||
|
||||
## Quick start
|
||||
|
||||
Add appreciation buttons to your site with two lines. Load the script:
|
||||
|
||||
```html
|
||||
<script defer src="https://cdn.jsdelivr.net/gh/welpo/iine@main/iine.mini.js"></script>
|
||||
```
|
||||
|
||||
Add the button:
|
||||
|
||||
```html
|
||||
<button class="iine-button" aria-hidden="true"></button>
|
||||
```
|
||||
|
||||
Done. Your visitors can now show anonymous appreciation for your content.
|
||||
|
||||
## Why iine?
|
||||
|
||||
I wanted to add like/kudos/cheers/appreciation buttons to [my blog](https://osc.garden) without signing up for anything, and making sure my visitors weren't tracked.
|
||||
|
||||
Hoping others find it useful, I made the service public (open source) and free forever (at least until it supports over 100k websites).
|
||||
|
||||
Built for blogs, portfolios, digital gardens, and anyone who believes the web should be more human.
|
BIN
content/projects/iine/social_cards/projects_iine.jpg
Normal file
BIN
content/projects/iine/social_cards/projects_iine.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 105 KiB |
|
@ -10,6 +10,7 @@ tags = ["Japonès", "interactiu", "web app", "web", "PWA", "JavaScript"]
|
|||
local_image = "projects/ramu/ramu_logo.webp"
|
||||
canonical_url = "https://osc.garden/ca/projects/ramu/"
|
||||
social_media_card = "social_cards/projects_ramu.jpg"
|
||||
iine_icon = '🐏'
|
||||
+++
|
||||
|
||||
<ruby>ラ<rt>ra</rt>ム<rt>mu</rt></ruby> és una aplicació web progressiva per practicar la lectura i comprensió auditiva de nombres en japonès. El nom reflecteix el seu propòsit: aconseguir accès aleatori (RAM; memòria d'accés aleatori) als nombres, en contraposició a una memòria seqüencial (1, 2, 3…).
|
||||
|
|
|
@ -10,6 +10,7 @@ tags = ["Japonés", "interactivo", "web app", "web", "PWA", "JavaScript"]
|
|||
local_image = "projects/ramu/ramu_logo.webp"
|
||||
canonical_url = "https://osc.garden/es/projects/ramu/"
|
||||
social_media_card = "social_cards/projects_ramu.jpg"
|
||||
iine_icon = '🐏'
|
||||
+++
|
||||
|
||||
<ruby>ラ<rt>ra</rt>ム<rt>mu</rt></ruby> es una aplicación web progresiva para practicar la lectura y comprensión auditiva de números en japonés. El nombre refleja su propósito: lograr acceso aleatorio (RAM; memoria de acceso aleatorio) a los números, en contraposición a una memoria secuencial (1, 2, 3…).
|
||||
|
|
|
@ -10,6 +10,7 @@ tags = ["Japanese", "interactive", "web app", "web", "PWA", "JavaScript"]
|
|||
local_image = "projects/ramu/ramu_logo.webp"
|
||||
canonical_url = "https://osc.garden/projects/ramu/"
|
||||
social_media_card = "social_cards/projects_ramu.jpg"
|
||||
iine_icon = '🐏'
|
||||
+++
|
||||
|
||||
<ruby>ラ<rt>ra</rt>ム<rt>mu</rt></ruby> is a Progressive Web App to practice reading and listening to Japanese numbers. The name reflects its purpose: achieving RAM (Random Access Memory) to numbers, as opposed to sequential memory (1, 2, 3…).
|
||||
|
|
|
@ -10,6 +10,7 @@ tags = ["web", "JavaScript"]
|
|||
local_image = "projects/tabi/tabi.webp"
|
||||
canonical_url = "https://osc.garden/ca/projects/tabi/"
|
||||
social_media_card = "social_cards/ca_projects_tabi.jpg"
|
||||
iine_icon = '🌱'
|
||||
+++
|
||||
|
||||
[**tabi**](https://github.com/welpo/tabi) és un tema modern i ric en funcionalitat per a [Zola](https://www.getzola.org/), un generador de llocs web estàtics molt ràpid.
|
||||
|
@ -26,8 +27,9 @@ social_media_card = "social_cards/ca_projects_tabi.jpg"
|
|||
- [Suport multilingüe complet](https://welpo.github.io/tabi/ca/blog/faq-languages/#com-gestiona-tabi-el-suport-multilingue). Afegeix tants idiomes com vulguis i deixa que els teus usuaris triin amb el selector d'idioma.
|
||||
- [Suport per a sèries](https://welpo.github.io/tabi/ca/blog/series/) per crear contingut seqüencial com tutorials, cursos i històries multipart.
|
||||
- Puntuació perfecta en Lighthouse (Rendiment, Accessibilitat, Millors Pràctiques i SEO).
|
||||
- Suport per a [Indieweb](https://indieweb.org/) amb microformats, suport per a [hcard](https://welpo.github.io/tabi/ca/blog/mastering-tabi-settings/#h-card-representativa) i [webmentions](https://welpo.github.io/tabi/blog/ca/mastering-tabi-settings/#webmentions).
|
||||
- Suport per a [Indieweb](https://indieweb.org/) amb microformats, suport per a [hcard](https://welpo.github.io/tabi/ca/blog/mastering-tabi-settings/#h-card-representativa) i [webmentions](https://welpo.github.io/tabi/ca/blog/mastering-tabi-settings/#webmentions).
|
||||
- Suport per a [diagrames de Mermaid](https://welpo.github.io/tabi/ca/blog/shortcodes/#diagrames-de-mermaid) per a crear diagrames i gràfics amb text.
|
||||
- Botons de «m'agrada» d'[iine](https://iine.to/) per mostrar apreciació anònima pel teu contingut.
|
||||
- Ressaltat de sintaxi de codi amb colors basats en [Catppuccin](https://github.com/catppuccin/catppuccin) Frappé.
|
||||
- Suport per a [comentaris usant giscus, utterances, Hyvor Talk o Isso](https://welpo.github.io/tabi/ca/blog/comments/).
|
||||
- [Cerca local](https://welpo.github.io/tabi/ca/blog/mastering-tabi-settings/#cerca) amb una interfície accessible i multilingüe.
|
||||
|
|
|
@ -10,6 +10,7 @@ tags = ["web", "JavaScript"]
|
|||
local_image = "projects/tabi/tabi.webp"
|
||||
canonical_url = "https://osc.garden/es/projects/tabi/"
|
||||
social_media_card = "social_cards/es_projects_tabi.jpg"
|
||||
iine_icon = '🌱'
|
||||
+++
|
||||
|
||||
[**tabi**](https://github.com/welpo/tabi) es un tema moderno y rico en funcionalidad para [Zola](https://www.getzola.org/), un generador de sitios web estáticos muy rápido.
|
||||
|
@ -27,6 +28,7 @@ social_media_card = "social_cards/es_projects_tabi.jpg"
|
|||
- [Soporte para series](https://welpo.github.io/tabi/es/blog/series/) para crear contenido secuencial como tutoriales, cursos e historias en varias partes.
|
||||
- Puntuación perfecta en Lighthouse (Rendimiento, Accesibilidad, Mejores Prácticas y SEO).
|
||||
- Soporte para [Indieweb](https://indieweb.org/) con microformatos, soporte para [hcard](https://welpo.github.io/tabi/es/blog/mastering-tabi-settings/#h-card-representativa) y [webmentions](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#webmentions).
|
||||
- Botones de «me gusta» de [iine](https://iine.to/) para mostrar aprecio anónimo por tu contenido.
|
||||
- Soporte para [diagramas de Mermaid](https://welpo.github.io/tabi/es/blog/shortcodes/#diagramas-de-mermaid) para crear diagramas y gráficos con texto.
|
||||
- Resaltado de sintaxis de código con colores basados en [Catppuccin](https://github.com/catppuccin/catppuccin) Frappé.
|
||||
- Soporte para [comentarios usando giscus, utterances, Hyvor Talk o Isso](https://welpo.github.io/tabi/es/blog/comments/).
|
||||
|
|
|
@ -9,6 +9,7 @@ tags = ["web", "JavaScript"]
|
|||
[extra]
|
||||
local_image = "projects/tabi/tabi.webp"
|
||||
social_media_card = "social_cards/projects_tabi.jpg"
|
||||
iine_icon = '🌱'
|
||||
+++
|
||||
|
||||
[**tabi**](https://github.com/welpo/tabi) is a modern, feature-rich theme for [Zola](https://www.getzola.org/), a fast static site generator.
|
||||
|
@ -29,6 +30,7 @@ social_media_card = "social_cards/projects_tabi.jpg"
|
|||
- Support for [comments using giscus, utterances, Hyvor Talk, or Isso](https://welpo.github.io/tabi/blog/comments/).
|
||||
- [Indieweb](https://indieweb.org/) ready with microformats, [hcard](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#representative-h-card) and [webmentions](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#webmentions) support.
|
||||
- Code syntax highlighting with colours based on [Catppuccin](https://github.com/catppuccin/catppuccin) Frappé.
|
||||
- [iine like buttons](https://iine.to/) for anonymous appreciation of your content.
|
||||
- [Mermaid support](https://welpo.github.io/tabi/blog/shortcodes/#mermaid-diagrams) to create diagrams and charts with text.
|
||||
- [Local search](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#search) with an accessible, multi-lingual interface.
|
||||
- [Custom Twitter card](https://welpo.github.io/tabi/blog/mastering-tabi-settings/#social-media-cards) and automatic Open Graph tags.
|
||||
|
|
|
@ -30,6 +30,7 @@ few_results = "تم العثور على $NUMBER نتائج" # for 3 to 10 searc
|
|||
many_results = "تم العثور على $NUMBER نتيجة" # 11 or more search results.
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "الإنتقال إلى المحتوى"
|
||||
pinned = "مثبتة"
|
||||
jump_to_posts = "الإنتقال إلى التدوينات"
|
||||
read_more = "إقرأ المزيد"
|
||||
|
@ -83,6 +84,9 @@ load_comments = "إظهار التعليقات"
|
|||
copied = "تم النسخ!"
|
||||
copy_code_to_clipboard = "نسخ الشِفرة إلى الحافظة"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "أعجبني"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "مُشَغل بواسطة"
|
||||
and = "و"
|
||||
|
|
|
@ -23,6 +23,7 @@ one_results = "$NUMBER resultat" # "1 result"
|
|||
many_results = "$NUMBER resultats" # "3 results"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "Saltar al contingut"
|
||||
pinned = "Fixada"
|
||||
jump_to_posts = "Saltar als articles"
|
||||
read_more = "Llegir més"
|
||||
|
@ -68,6 +69,9 @@ load_comments = "Carregar comentaris"
|
|||
copied = "Copiat!"
|
||||
copy_code_to_clipboard = "Copia el codi al porta-retalls"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "M'agrada aquesta publicació"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "Propulsat per"
|
||||
and = "i"
|
||||
|
|
|
@ -27,6 +27,7 @@ one_results = "$NUMBER Ergebnis" # "1 result"
|
|||
many_results = "$NUMBER Ergebnisse" # "3 results"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "Zum Inhalt springen"
|
||||
pinned = "Angeheftet"
|
||||
jump_to_posts = "Zu den Beiträgen springen"
|
||||
read_more = "Weiterlesen"
|
||||
|
@ -72,6 +73,9 @@ load_comments = "Kommentare laden"
|
|||
copied = "Kopiert!"
|
||||
copy_code_to_clipboard = "Code in die Zwischenablage kopieren"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "Dieser Beitrag gefällt mir"
|
||||
|
||||
# Footer.
|
||||
powered_by = "Angetrieben von"
|
||||
and = "und"
|
||||
|
|
|
@ -23,6 +23,7 @@ one_results = "$NUMBER result" # "1 result"
|
|||
many_results = "$NUMBER results" # "3 results"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "Skip to content"
|
||||
pinned = "Pinned"
|
||||
jump_to_posts = "Jump to posts"
|
||||
read_more = "Read more"
|
||||
|
@ -68,6 +69,9 @@ load_comments = "Load comments"
|
|||
copied = "Copied!"
|
||||
copy_code_to_clipboard = "Copy code to clipboard"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "Like this post"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "Powered by"
|
||||
and = "&"
|
||||
|
|
|
@ -23,6 +23,7 @@ one_results = "$NUMBER resultado"
|
|||
many_results = "$NUMBER resultados"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "Saltar al contenido"
|
||||
pinned = "Fijada"
|
||||
jump_to_posts = "Saltar a las entradas"
|
||||
read_more = "Leer más"
|
||||
|
@ -68,6 +69,9 @@ load_comments = "Cargar comentarios"
|
|||
copied = "Copiado!"
|
||||
copy_code_to_clipboard = "Copiar código al portapapeles"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "Me gusta esta publicación"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "Impulsado por"
|
||||
and = "y"
|
||||
|
|
|
@ -23,6 +23,7 @@ one_results = "$NUMBER tulemus" # "1 result"
|
|||
many_results = "$NUMBER tulemust" # "3 results"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "Hüppa sisu juurde"
|
||||
pinned = "Kinnitatud"
|
||||
jump_to_posts = "Hüppa postitusteni"
|
||||
read_more = "Loe edasi"
|
||||
|
@ -68,6 +69,9 @@ load_comments = "Lae kommentaarid"
|
|||
copied = "Kopeeritud!"
|
||||
copy_code_to_clipboard = "Kopeeri kood lõikelauale"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "Mulle meeldib see postitus"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "Toetab"
|
||||
and = "ja"
|
||||
|
|
|
@ -23,6 +23,7 @@ one_results = "$NUMBER نتیجه" # "1 result"
|
|||
many_results = "$NUMBER نتیجه" # "3 results"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "پرش به محتوا"
|
||||
pinned = "سنجاقشده"
|
||||
jump_to_posts = "پرش به نوشتهها"
|
||||
read_more = "ادامه مطلب"
|
||||
|
@ -69,6 +70,9 @@ load_comments = "بارگذاری نظرات"
|
|||
copied = "کپی شد!"
|
||||
copy_code_to_clipboard = "کپی کد به کلیپبورد"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "این مقاله را دوست دارم"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "قدرت گرفته از"
|
||||
and = "و"
|
||||
|
|
|
@ -24,6 +24,7 @@ one_results = "$NUMBER tulos" # "1 result"
|
|||
many_results = "$NUMBER tulosta" # "3 results"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "Siirry sisältöön"
|
||||
# Some will prefer artikkeli (=article) instead of julkaisu (=publication), but this is more general
|
||||
pinned = "Kiinnitetty"
|
||||
jump_to_posts = "Siirry julkaisuihin"
|
||||
|
@ -72,6 +73,9 @@ load_comments = "Lataa kommentit"
|
|||
copied = "Kopioitu!"
|
||||
copy_code_to_clipboard = "Kopioi koodi leikepöydälle"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "Pidän tästä kirjoituksesta"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "Pyörii ohjelmilla" # "Works using the software"
|
||||
and = "&"
|
||||
|
|
|
@ -23,6 +23,7 @@ one_results = "$NUMBER résultat" # "1 result"
|
|||
many_results = "$NUMBER résultats" # "3 results"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "Passer au contenu"
|
||||
pinned = "Épinglé"
|
||||
jump_to_posts = "Aller aux articles"
|
||||
read_more = "Lire plus"
|
||||
|
@ -68,6 +69,9 @@ load_comments = "Afficher les commentaires"
|
|||
copied = "Copié !"
|
||||
copy_code_to_clipboard = "Copier le code dans le presse-papier"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "J'aime cet article"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "Propulsé par"
|
||||
and = "et"
|
||||
|
|
|
@ -25,6 +25,7 @@ one_results = "$NUMBER परिणाम" # "1 result"
|
|||
many_results = "$NUMBER परिणाम" # "3 results"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "सामग्री पर जाएं"
|
||||
pinned = "पिन किया गया"
|
||||
jump_to_posts = "पोस्ट पर जाएं"
|
||||
read_more = "और पढ़ें"
|
||||
|
@ -70,6 +71,9 @@ load_comments = "कमेंट्स लोड करें"
|
|||
copied = "कॉपी किया गया!"
|
||||
copy_code_to_clipboard = "कोड क्लिपबोर्ड में कॉपी करें"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "मुझे यह पोस्ट पसंद है"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "चालित द्वारा"
|
||||
and = "और"
|
||||
|
|
|
@ -23,6 +23,7 @@ one_results = "$NUMBER risultato"
|
|||
many_results = "$NUMBER risultati"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "Salta al contenuto"
|
||||
pinned = "In evidenza"
|
||||
jump_to_posts = "Vai ai post"
|
||||
read_more = "Leggi di più"
|
||||
|
@ -68,6 +69,9 @@ load_comments = "Carica commenti"
|
|||
copied = "Copiato!"
|
||||
copy_code_to_clipboard = "Copia codice negli appunti"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "Mi piace questo post"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "Alimentato da"
|
||||
and = "e"
|
||||
|
|
|
@ -27,6 +27,7 @@ one_results = "$NUMBER 結果" # "1 result"
|
|||
many_results = "$NUMBER 結果" # "3 results"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "コンテンツにスキップ"
|
||||
pinned = "固定"
|
||||
jump_to_posts = "投稿へジャンプ"
|
||||
read_more = "続きを読む"
|
||||
|
@ -72,6 +73,9 @@ load_comments = "コメントを読む"
|
|||
copied = "コピーしました!"
|
||||
copy_code_to_clipboard = "コードをクリップボードにコピー"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "いいね!"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "Powered by"
|
||||
and = "と"
|
||||
|
|
|
@ -27,6 +27,7 @@ one_results = "$NUMBER 결과" # "1 result"
|
|||
many_results = "$NUMBER 결과" # "3 results"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "콘텐츠로 건너뛰기"
|
||||
pinned = "고정됨"
|
||||
jump_to_posts = "게시물로 이동"
|
||||
read_more = "더 읽기"
|
||||
|
@ -72,6 +73,9 @@ load_comments = "댓글 불러오기"
|
|||
copied = "복사됨!"
|
||||
copy_code_to_clipboard = "코드를 클립보드에 복사"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "이 글이 좋아요"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "제공됨"
|
||||
and = "&"
|
||||
|
|
|
@ -23,6 +23,7 @@ one_results = "$NUMBER resultaat" # "1 result"
|
|||
many_results = "$NUMBER resultaten" # "3 results"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "Naar inhoud springen"
|
||||
pinned = "Vastgezet"
|
||||
jump_to_posts = "Naar berichten springen"
|
||||
read_more = "Lees meer"
|
||||
|
@ -68,6 +69,9 @@ load_comments = "Laad opmerkingen"
|
|||
copied = "Gekopieerd!"
|
||||
copy_code_to_clipboard = "Kopieer code naar klembord"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "Vind ik leuk"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "Aangedreven door"
|
||||
and = "&"
|
||||
|
|
|
@ -23,6 +23,7 @@ one_results = "$NUMBER ପରିଣାମ" # "1 result"
|
|||
many_results = "$NUMBER ପରିଣାମଗୁଡ଼ିକ" # "3 results"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "ବିଷୟବସ୍ତୁକୁ ଯାଆନ୍ତୁ"
|
||||
pinned = "ପିନ୍ କରାଯାଇଛି"
|
||||
jump_to_posts = "ପୋଷ୍ଟକୁ ଯାଆନ୍ତୁ"
|
||||
read_more = "ଆହୁରି ପଢ଼ନ୍ତୁ"
|
||||
|
@ -68,6 +69,9 @@ load_comments = "ମତାମତ ଲୋଡ କରନ୍ତୁ"
|
|||
copied = "କପି ହେଲା!"
|
||||
copy_code_to_clipboard = "କ୍ଲିପବୋର୍ଡକୁ କପି କରନ୍ତୁ"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "ମୋର ଏହି ପୋସ୍ଟ ଭଲ ଲାଗେ"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "ଚାଳିତ ଦ୍ୱାରା"
|
||||
and = "ଏବଂ"
|
||||
|
|
|
@ -23,6 +23,7 @@ one_results = "$NUMBER resultado" # "1 result"
|
|||
many_results = "$NUMBER resultados" # "3 results"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "Pular para o conteúdo"
|
||||
pinned = "Fixado"
|
||||
jump_to_posts = "Ir para as publicações"
|
||||
read_more = "Ler mais"
|
||||
|
@ -68,6 +69,9 @@ load_comments = "Carregar comentários"
|
|||
copied = "Copiado!"
|
||||
copy_code_to_clipboard = "Copiar código para a área de transferência"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "Gosto desta publicação"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "Impulsionado por"
|
||||
and = "e"
|
||||
|
|
|
@ -28,6 +28,7 @@ few_results = "$NUMBER результата" # 2, 3, 4 but not 12-14
|
|||
many_results = "$NUMBER результатов" # 5-9, 0, 11-14, and others
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "Перейти к содержанию"
|
||||
pinned = "Закреплено"
|
||||
jump_to_posts = "Перейти к записям"
|
||||
read_more = "Читать далее"
|
||||
|
@ -77,6 +78,9 @@ load_comments = "Загрузить комментарии"
|
|||
copied = "Скопировано!"
|
||||
copy_code_to_clipboard = "Скопировать код в буфер обмена"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "Мне нравится эта статья"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "Под управлением"
|
||||
and = "&"
|
||||
|
|
|
@ -33,6 +33,7 @@ few_results = "$NUMBER результати"
|
|||
many_results = "$NUMBER результатів"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "Перейти до вмісту"
|
||||
pinned = "Закріплено"
|
||||
jump_to_posts = "Перейти до дописів"
|
||||
read_more = "Читати далі"
|
||||
|
@ -81,6 +82,9 @@ load_comments = "Завантажити коментарі"
|
|||
copied = "Скопійовано!"
|
||||
copy_code_to_clipboard = "Копіювати код у буфер обміну"
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "Мені подобається ця стаття"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "Під управлінням"
|
||||
and = "та"
|
||||
|
|
|
@ -23,6 +23,7 @@ one_results = "$NUMBER 个结果"
|
|||
many_results = "$NUMBER 个结果"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "跳到内容"
|
||||
pinned = "置顶"
|
||||
jump_to_posts = "跳转到文章"
|
||||
read_more = "阅读全文"
|
||||
|
@ -68,6 +69,9 @@ load_comments = "载入留言"
|
|||
copied = "已复制!" # Machine translated.
|
||||
copy_code_to_clipboard = "复制代码到剪贴板" # Machine translated.
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "喜欢这篇文章"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "网站基于"
|
||||
and = "和"
|
||||
|
|
|
@ -23,6 +23,7 @@ one_results = "$NUMBER 個結果"
|
|||
many_results = "$NUMBER 個結果"
|
||||
|
||||
# Navigation.
|
||||
skip_to_content = "跳到內容"
|
||||
pinned = "釘選"
|
||||
jump_to_posts = "跳轉到文章"
|
||||
read_more = "閱讀全文"
|
||||
|
@ -68,6 +69,9 @@ load_comments = "載入留言"
|
|||
copied = "已复制!" # Machine translated.
|
||||
copy_code_to_clipboard = "复制代码到剪贴板" # Machine translated.
|
||||
|
||||
# iine appreciation button.
|
||||
like_this_post = "喜歡這篇文章"
|
||||
|
||||
# Footer: Powered by Zola and tabi.
|
||||
powered_by = "網站基於"
|
||||
and = "和"
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
@use 'parts/_header-anchor.scss';
|
||||
@use 'parts/_header.scss';
|
||||
@use 'parts/_home-banner.scss';
|
||||
@use 'parts/_iine.scss';
|
||||
@use 'parts/_image-hover.scss';
|
||||
@use 'parts/_image-toggler.scss';
|
||||
@use 'parts/_image.scss';
|
||||
|
@ -22,8 +23,8 @@
|
|||
@use 'parts/_table.scss';
|
||||
@use 'parts/_tags.scss';
|
||||
@use 'parts/_theme-switch.scss';
|
||||
@use 'parts/_zola-error.scss';
|
||||
@use 'parts/_webmention.scss';
|
||||
@use 'parts/_zola-error.scss';
|
||||
|
||||
@font-face {
|
||||
src: local('Inter'),
|
||||
|
|
|
@ -125,6 +125,28 @@ header {
|
|||
background: var(--meta-color);
|
||||
}
|
||||
}
|
||||
|
||||
.language-switcher-icon-with-code {
|
||||
margin-inline-end: 0.3rem;
|
||||
width: 0.7rem;
|
||||
height: 0.7rem;
|
||||
}
|
||||
}
|
||||
|
||||
.language-switcher-icon-code {
|
||||
position: absolute;
|
||||
top: -0.15rem;
|
||||
z-index: 10;
|
||||
inset-inline-start: 0.7rem;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
color: var(--text-color);
|
||||
font-size: 0.5rem;
|
||||
text-transform: uppercase;
|
||||
|
||||
&:hover {
|
||||
color: var(--meta-color);
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown {
|
||||
|
|
37
sass/parts/_iine.scss
Normal file
37
sass/parts/_iine.scss
Normal file
|
@ -0,0 +1,37 @@
|
|||
.iine-button {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
background: transparent;
|
||||
color: inherit;
|
||||
font-family: var(--sans-serif-font);
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
appearance: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: inherit;
|
||||
line-height: inherit;
|
||||
|
||||
.icon {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.counter {
|
||||
margin-left: .2rem;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
svg {
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
.iine-auto-buttons {
|
||||
margin-top: 2rem;
|
||||
padding: 1rem 0;
|
||||
}
|
|
@ -328,3 +328,28 @@ details summary {
|
|||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
|
||||
#skip-link {
|
||||
position: absolute;
|
||||
top: -40px;
|
||||
left: 0;
|
||||
transform: translateY(-100%);
|
||||
opacity: 0;
|
||||
z-index: 9999;
|
||||
transition: all 0.1s ease;
|
||||
border-radius: 0 0 5px 0;
|
||||
background-color: var(--primary-color);
|
||||
padding: 4px 8px;
|
||||
color: var(--hover-color);
|
||||
font-weight: 500;
|
||||
font-size: 0.9rem;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#skip-link:focus {
|
||||
top: 0;
|
||||
transform: translateY(0);
|
||||
opacity: 1;
|
||||
outline: 2px solid var(--text-color);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit a128adaf967bdb232bf65a021d97b9d20e90d960
|
||||
Subproject commit 8e0a56e333ad53b01a6036744facaab21404d329
|
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
2236
static/js/mermaid.min.js
vendored
2236
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
3
static/social_icons/codeberg.svg
Normal file
3
static/social_icons/codeberg.svg
Normal file
|
@ -0,0 +1,3 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 4.233 4.233">
|
||||
<path d="M0 2.265c0 .398.112.788.323 1.125l1.765-2.281c.013-.016.044-.016.057 0l.737.953h-.528l.011.042h.549l.156.201h-.648l.018.066h.681l.137.177H2.49l.024.085h.81l.122.158h-.888l.029.104h.939l.107.139H2.625l.032.115h1.065l.099.128H2.693l.032.115H3.91c.211-.337.323-.727.323-1.125 0-1.169-.947-2.116-2.117-2.116S0 1.096 0 2.265zm2.761 1.253l.032.115h.939l.091-.115zm.068.243l.032.115h.628l.126-.115zm.067.243l.032.114h.212l.184-.114z" paint-order="markers fill stroke"/>
|
||||
</svg>
|
After Width: | Height: | Size: 573 B |
|
@ -7,6 +7,18 @@
|
|||
{# Set locale for date #}
|
||||
{% set date_locale = macros_translate::translate(key="date_locale", default="en_GB", language_strings=language_strings) %}
|
||||
|
||||
{#- Check for language-specific date formats -#}
|
||||
{%- set language_format = "" -%}
|
||||
{%- if config.extra.date_formats -%}
|
||||
{%- for format_config in config.extra.date_formats -%}
|
||||
{%- if format_config.lang == lang -%}
|
||||
{%- if format_config.archive -%}
|
||||
{%- set_global language_format = format_config.archive -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
|
||||
<div class="archive">
|
||||
<ul class="list-with-title">
|
||||
{%- set source_paths = section.extra.section_path | default(value="blog/") -%}
|
||||
|
@ -55,7 +67,13 @@
|
|||
<li class="listing-item">
|
||||
<div class="post-time">
|
||||
<span class="date">
|
||||
{%- if language_format -%}
|
||||
{{ post.date | date(format=language_format, locale=date_locale) }}
|
||||
{%- elif config.extra.archive_date_format -%}
|
||||
{{ post.date | date(format=config.extra.archive_date_format, locale=date_locale) }}
|
||||
{%- else -%}
|
||||
{{ post.date | date(format="%d %b", locale=date_locale) }}
|
||||
{%- endif -%}
|
||||
</span>
|
||||
</div>
|
||||
<a href="{{ post.permalink }}" title="{{ post.title }}">{{ post.title | markdown(inline=true) | safe }}</a>
|
||||
|
|
|
@ -66,7 +66,9 @@
|
|||
{%- endif -%}
|
||||
" rel="alternate" type="text/html"/>
|
||||
<generator uri="https://www.getzola.org/">Zola</generator>
|
||||
{%- if last_updated -%}
|
||||
<updated>{{ last_updated | date(format="%+") }}</updated>
|
||||
{%- endif -%}
|
||||
<id>{{ feed_url | safe }}</id>
|
||||
{%- for page in pages %}
|
||||
{%- if macros_settings::evaluate_setting_priority(setting="hide_from_feed", page=page, default_global_value=false) == "true" -%}
|
||||
|
|
|
@ -34,8 +34,9 @@ This variable will hold all the text strings for the language #}
|
|||
{% include "partials/header.html" %}
|
||||
|
||||
<body{% if lang in rtl_languages %} dir="rtl"{% endif %}{% if config.extra.override_serif_with_sans %} class="use-sans-serif"{% endif %}>
|
||||
<a href="#main-content" id="skip-link">{{ macros_translate::translate(key="skip_to_content", default="Skip to content", language_strings=language_strings) }}</a>
|
||||
{% include "partials/nav.html" %}
|
||||
<div class="content">
|
||||
<div class="content" id="main-content">
|
||||
|
||||
{# Post page is the default #}
|
||||
{% block main_content %}
|
||||
|
|
|
@ -3,7 +3,23 @@
|
|||
{#- Set locale -#}
|
||||
{%- set date_locale = macros_translate::translate(key="date_locale", default="en_GB", language_strings=language_strings) -%}
|
||||
|
||||
{%- if config.extra.short_date_format and short -%}
|
||||
{#- Check for language-specific date formats -#}
|
||||
{%- set language_format = "" -%}
|
||||
{%- if config.extra.date_formats -%}
|
||||
{%- for format_config in config.extra.date_formats -%}
|
||||
{%- if format_config.lang == lang -%}
|
||||
{%- if short and format_config.short -%}
|
||||
{%- set_global language_format = format_config.short -%}
|
||||
{%- elif not short and format_config.long -%}
|
||||
{%- set_global language_format = format_config.long -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if language_format -%}
|
||||
{{ date | date(format=language_format, locale=date_locale) }}
|
||||
{%- elif config.extra.short_date_format and short -%}
|
||||
{{ date | date(format=config.extra.short_date_format, locale=date_locale) }}
|
||||
{%- elif config.extra.long_date_format and not short -%}
|
||||
{{ date | date(format=config.extra.long_date_format, locale=date_locale) }}
|
||||
|
|
|
@ -57,6 +57,8 @@ Current section extra: {% if current_section %}{{ current_section.extra | json_e
|
|||
</pre></div>
|
||||
|
||||
{% set settings_to_test = [
|
||||
"iine",
|
||||
"iine_icon",
|
||||
"enable_cards_tag_filtering",
|
||||
"footnote_backlinks",
|
||||
"add_src_to_code_block",
|
||||
|
@ -98,6 +100,7 @@ Current section extra: {% if current_section %}{{ current_section.extra | json_e
|
|||
</tbody>
|
||||
</table>
|
||||
</div> #}
|
||||
|
||||
{# {{ __tera_context }} #}
|
||||
{# End debugging #}
|
||||
|
||||
|
@ -273,6 +276,11 @@ Current section extra: {% if current_section %}{{ current_section.extra | json_e
|
|||
{{ processed_content | replace(from="<!-- toc -->", to=macros_toc::toc(page=page, header=false, language_strings=language_strings)) | safe }}
|
||||
</section>
|
||||
|
||||
{#- iine button -#}
|
||||
{%- if macros_settings::evaluate_setting_priority(setting="iine", page=page, default_global_value=false) == "true" -%}
|
||||
{% include "partials/iine_button.html" %}
|
||||
{%- endif -%}
|
||||
|
||||
{% if macros_settings::evaluate_setting_priority(setting="show_previous_next_article_links", page=page, default_global_value=true) == "true" %}
|
||||
{%- if page.lower or page.higher -%}
|
||||
{% set next_label = macros_translate::translate(key="next", default="Next", language_strings=language_strings) %}
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
data-website-id="{{ analytics_id }}"
|
||||
src="https://cloud.umami.is/script.js"
|
||||
{% endif %}
|
||||
data-do-not-track="true">
|
||||
{% if config.extra.analytics.do_not_track %}data-do-not-track="true"{% endif %}>
|
||||
</script>
|
||||
|
||||
{% elif analytics_service == "plausible" %}
|
||||
|
|
|
@ -7,6 +7,9 @@ content="default-src 'self'
|
|||
{%- set giscus_enabled = config.extra.giscus.enabled_for_all_posts or page.extra.giscus -%}
|
||||
{%- set hyvortalk_enabled = config.extra.hyvortalk.enabled_for_all_posts or page.extra.hyvortalk -%}
|
||||
{%- set isso_enabled = config.extra.isso.enabled_for_all_posts or page.extra.isso -%}
|
||||
{%- if page -%}
|
||||
{%- set iine_enabled = macros_settings::evaluate_setting_priority(setting="iine", page=page, default_global_value=false) == "true" -%}
|
||||
{%- endif -%}
|
||||
{%- if page -%}
|
||||
{%- set mermaid_enabled = macros_settings::evaluate_setting_priority(setting="mermaid", page=page, default_global_value=false) == "true" -%}
|
||||
{%- endif -%}
|
||||
|
@ -50,7 +53,7 @@ content="default-src 'self'
|
|||
{%- set script_src = script_src ~ " " ~ " utteranc.es" -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if mermaid_enabled and not serve_local_mermaid -%}
|
||||
{%- if (mermaid_enabled and not serve_local_mermaid) or iine_enabled -%}
|
||||
{%- set script_src = script_src ~ " " ~ " cdn.jsdelivr.net" -%}
|
||||
{%- endif -%}
|
||||
|
||||
|
@ -59,6 +62,11 @@ content="default-src 'self'
|
|||
{%- set connect_src = connect_src ~ " webmention.io" -%}
|
||||
{%- endif -%}
|
||||
|
||||
{#- Check if iine like buttons are enabled to allow the necessary domains -#}
|
||||
{%- if iine_enabled -%}
|
||||
{%- set connect_src = connect_src ~ " vhiweeypifbwacashxjz.supabase.co" -%}
|
||||
{%- endif -%}
|
||||
|
||||
{#- Append WebSocket for Zola serve mode -#}
|
||||
{%- if config.mode == "serve" -%}
|
||||
{%- set connect_src = connect_src ~ " ws:" -%}
|
||||
|
@ -66,19 +74,19 @@ content="default-src 'self'
|
|||
|
||||
{%- for domain in config.extra.allowed_domains -%}
|
||||
{%- if domain.directive == "connect-src" -%}
|
||||
{%- set configured_connect_src = domain.domains | join(sep=' ') -%}
|
||||
{%- set configured_connect_src = domain.domains | join(sep=' ') | safe -%}
|
||||
{%- set_global connect_src = connect_src ~ " " ~ configured_connect_src -%}
|
||||
{%- continue -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if domain.directive == "script-src" -%}
|
||||
{%- set configured_script_src = domain.domains | join(sep=' ') -%}
|
||||
{%- set configured_script_src = domain.domains | join(sep=' ') | safe -%}
|
||||
{%- set_global script_src = script_src ~ " " ~ configured_script_src -%}
|
||||
{%- continue -%}
|
||||
{%- endif -%}
|
||||
|
||||
{#- Handle directives that are not connect-src -#}
|
||||
{{ domain.directive }} {{ domain.domains | join(sep=' ') -}}
|
||||
{{ domain.directive }} {{ domain.domains | join(sep=' ') | safe -}}
|
||||
|
||||
{%- if domain.directive == "style-src" -%}
|
||||
{%- if utterances_enabled or hyvortalk_enabled or mermaid_enabled %} 'unsafe-inline'
|
||||
|
|
|
@ -81,3 +81,8 @@
|
|||
{%- if macros_settings::evaluate_setting_priority(setting="footnote_backlinks", page=page_s, section=section_s, default_global_value=false) == "true" -%}
|
||||
<script defer src="{{ get_url(path='js/footnoteBacklinks.min.js', trailing_slash=false | safe )}}"></script>
|
||||
{%- endif -%}
|
||||
|
||||
{# Add iine.js for the like button #}
|
||||
{%- if macros_settings::evaluate_setting_priority(setting="iine", page=page_s, section=section_s, default_global_value=false) == "true" -%}
|
||||
<script defer src="https://cdn.jsdelivr.net/gh/welpo/iine@main/iine.mini.js"></script>
|
||||
{%- endif -%}
|
||||
|
|
33
templates/partials/iine_button.html
Normal file
33
templates/partials/iine_button.html
Normal file
|
@ -0,0 +1,33 @@
|
|||
{% import "macros/settings.html" as macros_settings %}
|
||||
{%- set button_icon = button_icon | default(value=macros_settings::evaluate_setting_priority(setting="iine_icon", page=page | default(value=""), section=section | default(value=""), default_global_value="heart")) -%}
|
||||
{%- if config.extra.iine_unified_languages and lang != config.default_language -%}
|
||||
{%- set unified_slug = page.path | replace(from='/' ~ lang ~ '/', to='/') -%}
|
||||
{%- set slug = slug | default(value=unified_slug) -%}
|
||||
{%- else -%}
|
||||
{%- set slug = slug | default(value=page.path) -%}
|
||||
{%- endif -%}
|
||||
{%- if label -%}
|
||||
{%- set final_label = label -%}
|
||||
{%- elif language_strings -%}
|
||||
{%- set final_label = macros_translate::translate(key="like_this_post", default="Like this post", language_strings=language_strings) -%}
|
||||
{%- else -%}
|
||||
{%- set final_label = "Like this post" -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if button_icon == "heart" -%}
|
||||
{%- set icon_display = "♥️" -%}
|
||||
{%- elif button_icon == "thumbs_up" -%}
|
||||
{%- set icon_display = "👍" -%}
|
||||
{%- elif button_icon == "upvote" -%}
|
||||
{%- set icon_display = "⬆️" -%}
|
||||
{%- else -%}
|
||||
{%- set icon_display = button_icon -%}
|
||||
{%- endif -%}
|
||||
|
||||
<form method="post" action="https://vhiweeypifbwacashxjz.supabase.co/rest/v1/rpc/increment_hits?apikey=sb_publishable_EoB7MFJhCmb6PiAk-GPJ4w_PGhQ44Ru" class="iine-form">
|
||||
<input type="hidden" name="page_slug" value="{%- if slug -%}{{ slug }}{%- else -%}{{ current_url | default(value=page.path) }}{%- endif -%}">
|
||||
<button class="iine-button" type="submit"
|
||||
{%- if slug %} data-slug="{{ slug }}"{% endif %}
|
||||
{%- if button_icon %} data-icon="{{ button_icon }}"{% endif %}
|
||||
aria-label="{{ final_label }}" title="{{ final_label }}">{{ icon_display }}</button>
|
||||
</form>
|
|
@ -1,7 +1,12 @@
|
|||
<li class="language-switcher">
|
||||
<details class="dropdown">
|
||||
<summary role="button" aria-haspopup="true" title="{{ macros_translate::translate(key="language_selection", default="Language selection", language_strings=language_strings) }}" aria-label="{{ macros_translate::translate(key="language_selection", default="Language selection", language_strings=language_strings) }}">
|
||||
{%- if config.extra.show_selected_language_code_in_language_switcher -%}
|
||||
<div class="language-switcher-icon language-switcher-icon-with-code"></div>
|
||||
<div class="language-switcher-icon-code">{{lang}}</div>
|
||||
{%- else -%}
|
||||
<div class="language-switcher-icon"></div>
|
||||
{%- endif -%}
|
||||
</summary>
|
||||
<div class="dropdown-content" role="menu">
|
||||
{#- Display the current language first in the dropdown -#}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<header>
|
||||
<nav class="navbar">
|
||||
<div class="nav-title">
|
||||
<a class="home-title" href="{{ get_url(path='/', lang=lang) }}">{{ config.title }}</a>
|
||||
<a class="home-title" href="{{ get_url(path='/', lang=lang, trailing_slash=(lang == config.default_language)) }}">{{ config.title }}</a>
|
||||
</div>
|
||||
|
||||
{%- if config.extra.menu %}
|
||||
|
|
|
@ -54,4 +54,6 @@
|
|||
{%- endif -%}
|
||||
</main>
|
||||
|
||||
{%- include "partials/extra_features.html" -%}
|
||||
|
||||
{% endblock main_content %}
|
||||
|
|
5
templates/shortcodes/iine.html
Normal file
5
templates/shortcodes/iine.html
Normal file
|
@ -0,0 +1,5 @@
|
|||
{% set button_icon = icon | default(value="heart") %}
|
||||
{% set label = label | default(value="Like this post") %}
|
||||
{% set slug = slug | default(value=page.path) %}
|
||||
|
||||
{% include "partials/iine_button.html" %}
|
25
theme.toml
25
theme.toml
|
@ -56,6 +56,9 @@ skin = ""
|
|||
# browser_theme_color = "#087e96" # Example of single value.
|
||||
# browser_theme_color = ["#ffffff", "#000000"] # Example of light/dark colours.
|
||||
|
||||
# Show current language code on the language switcher
|
||||
show_selected_language_code_in_language_switcher = false
|
||||
|
||||
# List additional stylesheets to load site-wide.
|
||||
# These stylesheets should be located in your site's `static` directory.
|
||||
# Example: stylesheets = ["extra1.css", "path/extra2.css"]
|
||||
|
@ -114,6 +117,14 @@ show_date = true
|
|||
# "both" - Show both the original date and the last updated date.
|
||||
post_listing_date = "date"
|
||||
|
||||
# Enable iine like buttons on all posts: https://iine.to/
|
||||
# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy
|
||||
iine = false
|
||||
iine_icon = "heart" # See https://iine.to/#customise
|
||||
# Unify like counts across all language versions of the same page.
|
||||
# When enabled, likes on /es/blog/hello/ will count towards /blog/hello/ (default language).
|
||||
iine_unified_languages = true
|
||||
|
||||
# Show "Jump to posts" link next to series' title.
|
||||
# By default, the link appears automatically when a series description exceeds 2000 characters.
|
||||
# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy
|
||||
|
@ -175,6 +186,17 @@ quick_navigation_buttons = false
|
|||
# Default is "6th July 2049" in English and "%-d %B %Y" in other languages.
|
||||
short_date_format = ""
|
||||
|
||||
# Date format used for the archive page.
|
||||
# Default is "06 July" in English and "%d %b" in other languages.
|
||||
# archive_date_format = ""
|
||||
|
||||
# Per-language date format overrides.
|
||||
# Examples: Spanish uses "3 de febrero de 2024", German uses "3. Februar 2024"
|
||||
# date_formats = [
|
||||
# { lang = "es", long = "%d de %B de %Y", short = "%d %b %Y" },
|
||||
# { lang = "de", long = "%d. %B %Y", short = "%d.%m.%Y" },
|
||||
# ]
|
||||
|
||||
# Custom separator used in title tag and posts metadata (between date, time to read, and tags).
|
||||
separator = "•"
|
||||
|
||||
|
@ -320,6 +342,9 @@ custom_subset = true
|
|||
# Leave this field empty if you're using the service's default hosting.
|
||||
# self_hosted_url = ""
|
||||
|
||||
# Optional: For Umami, enable this option to respect users' Do Not Track (DNT) settings. The default is true.
|
||||
do_not_track = true
|
||||
|
||||
# giscus support for comments. https://giscus.app
|
||||
# Setup instructions: https://welpo.github.io/tabi/blog/comments/#setup
|
||||
[extra.giscus]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue