{% extends "base.html" %} {% from "chirpui/badge.html" import badge %} {% from "chirpui/hero.html" import page_hero %} {% from "chirpui/layout.html" import container, stack %} {% from "chirpui/timeline.html" import timeline, timeline_item %} {% from "partials/learning-pages.html" import rendered_body %} {% from "partials/taxonomy-pages.html" import count_label %} {% from "partials/empty-state.html" import empty_state %} {% block content %} {% let title = page?.title ?? section?.title ?? "Changelog" %} {% let description = page?.description ?? section?.description ?? "Release notes and project updates." %} {% let raw_items = posts ?? pages ?? page?.children ?? section?.pages ?? section?.regular_pages ?? [] %} {#- Sort newest-first on the FLAT `date` attribute. kida's attribute resolver does not descend dotted paths, so the old "metadata.date,title" silently fell back to title-alpha — every entry's date key resolved to None. The flat `date` is present on every changelog page. -#} {% let items = raw_items | sort(attribute="date", reverse=true) %} {% let _count = count_label(items | length, "update") %}
{{ entry_desc }}
{% end %} {% end %} {% end %} {% end %} {% end %} {% else %} {{ empty_state("No updates yet", "Changelog entries appear here when published.", icon_name="git-commit") }} {% end %} {% end %} {% end %}