summaryrefslogtreecommitdiff
path: root/templates/archive.html
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2025-09-13 14:55:15 -0600
committerAlejandro Soto <alejandro@34project.org>2025-09-13 14:55:15 -0600
commita2ea06d513a5802964f8f0ef5795cec7e548ed7b (patch)
tree8afb58e3749d19bc46cffc6473f3059d647c515b /templates/archive.html
Squashed 'themes/tabi-lean/' content from commit 95c8796
git-subtree-dir: themes/tabi-lean git-subtree-split: 95c879696445ede40daa7a30a88dae5dd74d5c0c
Diffstat (limited to 'templates/archive.html')
-rw-r--r--templates/archive.html89
1 files changed, 89 insertions, 0 deletions
diff --git a/templates/archive.html b/templates/archive.html
new file mode 100644
index 0000000..637b414
--- /dev/null
+++ b/templates/archive.html
@@ -0,0 +1,89 @@
+{% extends "base.html" %}
+
+{% block main_content %}
+
+{{ macros_page_header::page_header(title=section.title) }}
+
+{# 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/") -%}
+ {%- if source_paths is iterable -%}
+ {%- set paths = source_paths -%}
+ {%- else -%}
+ {%- set paths = [source_paths] -%}
+ {%- endif %}
+ {%- set all_posts = [] -%}
+ {%- for path in paths -%}
+ {%- if lang == config.default_language %}
+ {%- set section_item = get_section(path=path ~ "_index.md") -%}
+ {%- else %}
+ {%- set section_item = get_section(path=path ~ "_index." ~ lang ~ ".md") -%}
+ {%- endif %}
+ {%- 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 = [] %}
+ {% for year, ignored in posts_by_year %}
+ {% set_global years = years | concat(with=[year]) %}
+ {% endfor %}
+
+ {# 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 %}
+ <li>
+ <h2 class="listing-title">{{ year }}</h2>
+ <ul class="listing">
+ {% for post in posts %}
+ <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>
+ </li>
+ {% endfor %}
+ </ul>
+ </li>
+ {% endif %}
+ {% endfor %}
+ </ul>
+</div>
+
+{% endblock main_content %}