From 13a65ac741ddbd1ace617c08f420f356723f82bd Mon Sep 17 00:00:00 2001 From: welpo Date: Sun, 9 Feb 2025 20:36:43 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=A5=20feat(archive)!:=20enforce=20chro?= =?UTF-8?q?nological=20sorting?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, the archive template respected individual section sorting configurations, leading to potentially inconsistent timeline display. This change enforces strict chronological sorting (by publication date) across all archive posts and adds an `archive_reverse` option in section.extra to control sort direction. BREAKING CHANGE: Archive now ignores section-specific sort_by settings in favour of publication date ordering. --- content/blog/mastering-tabi-settings/index.ca.md | 12 ++++++++---- content/blog/mastering-tabi-settings/index.es.md | 12 ++++++++---- content/blog/mastering-tabi-settings/index.md | 12 ++++++++---- templates/archive.html | 16 ++++++++++++++-- 4 files changed, 38 insertions(+), 14 deletions(-) diff --git a/content/blog/mastering-tabi-settings/index.ca.md b/content/blog/mastering-tabi-settings/index.ca.md index 8f5c57a..017debb 100644 --- a/content/blog/mastering-tabi-settings/index.ca.md +++ b/content/blog/mastering-tabi-settings/index.ca.md @@ -1,7 +1,7 @@ +++ title = "Domina la configuració de tabi: guia completa" date = 2023-09-18 -updated = 2025-02-02 +updated = 2025-02-09 description = "Descobreix les múltiples maneres en què pots personalitzar tabi." [taxonomies] @@ -438,10 +438,14 @@ Per defecte, l'arxiu llistarà les publicacions situades a `blog/`. Per personal section_path = ["blog/", "notes/", "camí-tres/"] ``` -**Nota**: +L'arxiu mostra les publicacions en ordre cronològic invers (les més recents primer). Pots invertir aquest ordre establint `archive_reverse = true` a la secció `[extra]`: -- La pàgina d'arxiu només llistarà publicacions amb data. -- L'ordre de les publicacions ve determinada per la variable `sort_by` de les seccions arxivades. Aquesta demo utilitza `sort_by = "date"` en `blog/_index.md`. +```toml +[extra] +archive_reverse = true # mostra les publicacions més antigues primer +``` + +{{ admonition(type="note", title="nota" text="La pàgina d'arxiu només llistarà publicacions que tinguin data al seu encapçalament.") }} ### Etiquetes diff --git a/content/blog/mastering-tabi-settings/index.es.md b/content/blog/mastering-tabi-settings/index.es.md index ff11f0e..a67db56 100644 --- a/content/blog/mastering-tabi-settings/index.es.md +++ b/content/blog/mastering-tabi-settings/index.es.md @@ -1,7 +1,7 @@ +++ title = "Domina la configuración de tabi: guía completa" date = 2023-09-18 -updated = 2025-02-02 +updated = 2025-02-09 description = "Descubre las múltiples maneras en que puedes personalizar tabi." [taxonomies] @@ -438,10 +438,14 @@ Por defecto, el archivo mostrará las publicaciones ubicadas en `blog/`. Para pe section_path = ["blog/", "notas/", "ruta-tres/"] ``` -**Nota**: +El archivo muestra las publicaciones en orden cronológico inverso (las más recientes primero). Puedes invertir este orden estableciendo `archive_reverse = true` en la sección `[extra]`: -- La página de Archivo sólo listará publicaciones con fecha. -- El orden las publicaciones viene determinada por la variable `sort_by` de las secciones archivadas. Esta demo utiliza `sort_by = "date"` en `blog/_index.md`. +```toml +[extra] +archive_reverse = true # muestra las publicaciones más antiguas primero +``` + +{{ admonition(type="note", title="nota" text="La página de Archivo sólo listará publicaciones que tengan fecha en su encabezado.") }} ### Etiquetas diff --git a/content/blog/mastering-tabi-settings/index.md b/content/blog/mastering-tabi-settings/index.md index ab8814b..e9ee7ab 100644 --- a/content/blog/mastering-tabi-settings/index.md +++ b/content/blog/mastering-tabi-settings/index.md @@ -1,7 +1,7 @@ +++ title = "Mastering tabi Settings: A Comprehensive Guide" date = 2023-09-18 -updated = 2025-02-02 +updated = 2025-02-09 description = "Discover the many ways you can customise your tabi site." [taxonomies] @@ -443,10 +443,14 @@ By default, the archive will list posts located in `blog/`. To customise this, y section_path = ["blog/", "notes/", "path-three/"] ``` -**Notes**: +The archive displays posts in reverse chronological order (newest first). You can reverse this order by setting `archive_reverse = true` in the `[extra]` section: -- the Archive page will only list posts that have a date in their front matter. -- Post sorting is determined by the `sort_by` variable of the sections you are archiving. This demo uses `sort_by = "date"` set in the `blog/_index.md`. +```toml +[extra] +archive_reverse = true # displays oldest posts first. +``` + +{{ admonition(type="note", text="The Archive page will only list posts that have a date in their front matter.") }} ### Tags diff --git a/templates/archive.html b/templates/archive.html index 0bf581a..86f2267 100644 --- a/templates/archive.html +++ b/templates/archive.html @@ -25,6 +25,13 @@ {%- set_global all_posts = all_posts | concat(with=section_item.pages) -%} {%- endfor %} + {# Sort all posts by date #} + {%- set archive_reverse = section.extra.archive_reverse | default(value=false) -%} + {%- set all_posts = all_posts | sort(attribute="date") -%} + {%- if not archive_reverse -%} + {%- set all_posts = all_posts | reverse -%} + {%- endif -%} + {# Group posts by year. #} {% set posts_by_year = all_posts | group_by(attribute="year") %} {% set years = [] %} @@ -32,8 +39,13 @@ {% set_global years = years | concat(with=[year]) %} {% endfor %} - {# Iterate over sorted & reversed years (newest to oldest). #} - {% for year in years | sort | reverse %} + {# Iterate over years #} + {% set years = years | sort %} + {%- if not archive_reverse -%} + {%- set years = years | reverse -%} + {%- endif -%} + + {% for year in years %} {% set posts = posts_by_year[year] %} {% if posts | length > 0 %}