diff --git a/templates/download.html b/templates/download.html index cb5b97bc..c8615b95 100644 --- a/templates/download.html +++ b/templates/download.html @@ -1,4 +1,5 @@ {% extends "right-aside.html" %} +{% import "macros/release.html" as release_macros %} {% block subhead_content%}

Download Latest

@@ -31,7 +32,7 @@

Download Latest

Version {{major}}.x.x

-{% include "includes/release.html" %} +{{ release_macros::release_info(date= most_recent_release_page[0].date, release= most_recent_release_page[0].extra ) }}

Latest supported version of past releases

@@ -42,7 +43,7 @@

Latest supported version of past releases

{% set_global major = older_major %} {% set release = older_release.extra %}

Version {{major}}.x.x

- {% include "includes/release.html" %} + {{ release_macros::release_info(date= older_release.date, release= older_release.extra ) }} {% endif %} {% endfor %} diff --git a/templates/index.html b/templates/index.html index e0972bc2..21b4c774 100644 --- a/templates/index.html +++ b/templates/index.html @@ -1,4 +1,5 @@ {%- extends "default.html" -%} +{% import "macros/release.html" as release_macros %} {%- block content -%} {% if section.extra and section.extra.hero %} @@ -29,15 +30,13 @@

{{ heading }}

{% endfor %} {% set most_recent_release_page = active_releases | slice(end= 1) %} - {% set release_date = most_recent_release_page[0].date %} - {% set release = most_recent_release_page[0].extra %} - {% set split_ver = release.tag | split(pat=".")%} + {% set split_ver = most_recent_release_page[0].extra.tag | split(pat=".")%} {% set_global major = split_ver | nth(n= 0) %}

Version {{major}}.x.x

- {% include "includes/release.html" %} + {{ release_macros::release_info(date= most_recent_release_page[0].date, release= most_recent_release_page[0].extra ) }}

Latest supported version of past releases

@@ -48,9 +47,8 @@

Latest supported version of past releases

{% set older_major = older_split_ver | nth(n= 0) %} {% if older_major != major %} {% set_global major = older_major %} - {% set release = older_release.extra %}

Version {{major}}.x.x

- {% include "includes/release.html" %} + {{ release_macros::release_info(date= older_release.date, release= older_release.extra ) }} {% endif %} {% endfor %} diff --git a/templates/includes/release.html b/templates/macros/release.html similarity index 91% rename from templates/includes/release.html rename to templates/macros/release.html index aa26546f..ffa389cb 100644 --- a/templates/includes/release.html +++ b/templates/macros/release.html @@ -1,4 +1,5 @@ -Release Date: {{ release_date | date(format="%Y-%m-%d") }}
+{% macro release_info(date, release) %} +Release Date: {{ date| date(format="%Y-%m-%d") }}
GitHub Release: {{release.tag}}

@@ -39,3 +40,6 @@

Binary Artifacts

{% endfor %} {% endfor %} {% endif %} + +{% endmacro release_info %} + diff --git a/templates/release-page.html b/templates/release-page.html index 5467faf6..3a0f9b1f 100644 --- a/templates/release-page.html +++ b/templates/release-page.html @@ -1,11 +1,103 @@ {% extends "right-aside.html" %} +{% import "macros/release.html" as release_macros %} {% block subhead_content%}

Download Valkey {{page.title}}

{% endblock subhead_content%} + {% block main_content %} -{% set release = page.extra %} -{% set release_date = page.date %} +{% set page_ver_parts = page.extra.tag | split(pat=".") %} +{% set page_major = page_ver_parts.0 %} +{% set page_major_number = page_major | int %} +{% set page_minor = page_ver_parts.1 %} +{% set page_patch = page_ver_parts.2 %} +{% set this_minor_line = [] %} +{% set this_major_line = [] %} +{% set section_file = page.ancestors.1 %} +{% set section = get_section(path= section_file) %} +{% set sorted_section_pages = section.pages | sort(attribute="extra.tag") %} +{% set highest_major_version = 0 %} + +{% for page in sorted_section_pages %} + {% set this_version_parts = page.extra.tag | split(pat=".") %} + {% set this_version_major = this_version_parts.0 %} + {% set this_version_major_num = this_version_parts.0 | int %} + {% set this_version_minor = this_version_parts.1 %} + {% set this_version_patch = this_version_parts.2 %} + {% set this_version_rc = this_version_patch | split(pat="-") | length %} + + {% set ver = [ page.date, page.extra.tag, this_version_major, this_version_minor, this_version_patch, page.slug] %} + {% if (page_major == this_version_major) and (page_minor == this_version_minor) %} + {% set_global this_minor_line = this_minor_line | concat(with= [ ver ] ) %} + {% endif %} + {% if (page_major == this_version_major) %} + {% set_global this_major_line = this_major_line | concat(with= [ ver ] ) %} + {% endif %} + {% if (highest_major_version <= this_version_major_num) and (this_version_rc == 1) %} + {% set_global highest_major_version = this_version_major_num %} + {% set_global latest_major = ver %} + {% endif %} +{% endfor %} + +{% set latest_patch = this_minor_line | sort(attribute="0") | last %} +{% set latest_minor = this_major_line | sort(attribute="0") | last %} + +{% set new_patch = (latest_patch.3 == page_minor) and (latest_patch.4 != page_patch) %} +{% set new_minor = (latest_minor.2 == page_major) and (latest_minor.3 != page_minor) %} +{% set new_major = page_major_number != highest_major_version %} + +{% if new_patch or new_minor or new_major %} +

Available updates for {{page.extra.tag}}

+ +
+{%endif%} + + +{{ release_macros::release_info(date= page.date, release= page.extra ) }} +{# + +The `script` tag below facilitates a forward based on a URL hashtag. For example, as of writing: + +- `/download/releases/v8-0-0/#latest-patch` autoforwards to `/download/releases/v8-0-6/` +- `/download/releases/v8-0-0/#latest-minor` autoforwards to `/download/releases/v8-1-5/` +- `/download/releases/v8-0-0/#latest-major` autoforwards to `/download/releases/v9-0-1/` + +If there isn't a new patch/minor/major then it just becomes a noop when you add the respective hash to the URL -{% include "includes/release.html" %} +#} + {% endblock main_content %} diff --git a/templates/release-section.html b/templates/release-section.html index 61f95355..7bfab377 100644 --- a/templates/release-section.html +++ b/templates/release-section.html @@ -23,7 +23,7 @@

Valkey Releases

{% for line in release_lines_unique %}

{{ line }}.x