{% extends "base.html" %} {% from "chirpui/badge.html" import badge %} {% from "chirpui/code.html" import install_snippet %} {% 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 %} {#- Derive the bare version string from a release title or explicit param. "chirp-ui 0.9.0" -> "0.9.0"; an explicit metadata.version always wins. -#} {% def release_version(item) %} {%- let raw = item?.metadata?.version ?? ((item?.title ?? "") | replace("chirp-ui ", "")) -%} {{ raw | trim }} {% end %} {#- Numeric version sort key. Zero-pad each semver component so a plain string sort orders versions numerically — string-descending title sort breaks once a component reaches two digits (e.g. "0.10.0" < "0.9.0" as strings). -#} {% def version_sort_key(item) %} {%- let v = release_version(item) | trim -%} {%- let p = v.split(".") -%} {%- let major = (p[0] if p | length > 0 else "0") | int -%} {%- let minor = (p[1] if p | length > 1 else "0") | int -%} {%- let patch = (p[2] if p | length > 2 else "0") | int -%} {{- "{:05d}.{:05d}.{:05d}" | format(major, minor, patch) -}} {% end %} {% block content %} {% let title = page?.title ?? section?.title ?? "Releases" %} {% let description = page?.description ?? section?.description ?? "chirp-ui release history." %} {% let raw_items = posts ?? pages ?? page?.children ?? section?.pages ?? section?.regular_pages ?? [] %} {#- Sort newest-first by the parsed semver version. Release list items do not expose a resolvable `date` (unlike changelog), and a raw title-string sort misorders multi-digit components, so sort by a zero-padded version key. -#} {% let items = [{"_sk": version_sort_key(item) | trim, "_item": item} for item in raw_items] | sort(attribute="_sk", reverse=true) %} {% let _count = count_label(items | length, "release") %}
{{ highlight }}
{% end %} {{ install_snippet("uv add chirp-ui==" ~ version, label=none, cls="chirp-theme-release-entry__install") }} {% end %} {% end %} {% end %} {% end %} {% else %} {{ empty_state("No releases yet", "Release notes appear here when published.", icon_name="package") }} {% end %} {% end %} {% end %}