diff --git a/themes/geekboot/layouts/404.html b/themes/geekboot/layouts/404.html index 4b2b32064..27ed141e9 100644 --- a/themes/geekboot/layouts/404.html +++ b/themes/geekboot/layouts/404.html @@ -34,17 +34,34 @@

Page not found

The page you're looking for couldn't be found.

Only currently maintained versions of Crossplane are documented. Try - looking one of the following sections- + looking at one of the following sections:

+ {{ $sorted_list := partial "utils/sorted-versions" . }} + + Documentation Versions:
+ {{ range $sorted_list }} + {{ $versionPage := $.Site.GetPage (printf "v%s" .) | default ($.Site.GetPage .) }} + {{ with $versionPage }} + {{ if ne .Page.Params.version "master" }}v{{ end }}{{ .Page.Params.version }} + {{ if eq .Page.Params.version $.Site.Params.latest }} + Latest + {{ end }} + {{ if eq .Page.Params.version "master" }} + (unreleased upcoming version) + {{ end }} +
+ {{ end }} + {{ end }} + +
+

Looking for an older version? Archived versions are available as tags in the GitHub repository (e.g., v1.19-archive, v1.18-archive).

+ +
+ Other Resources:
{{ range .Site.Sections }} - {{ if and (.Page.Params.version) (ne .Page.Params.version "0") (ne .Page.Params.version "master") }} - v{{ .Page.Params.version }}
- {{ else }} - {{ if (eq .Page.Params.version "master") }} - {{ else }} - {{ .Title }}
+ {{ if and (not .Page.Params.hidden) (eq .Page.Params.version "0") }} + {{ .Title }}
{{ end }} - {{ end }} {{ end }} diff --git a/themes/geekboot/layouts/partials/utils/sorted-versions.html b/themes/geekboot/layouts/partials/utils/sorted-versions.html new file mode 100644 index 000000000..5b68ae716 --- /dev/null +++ b/themes/geekboot/layouts/partials/utils/sorted-versions.html @@ -0,0 +1,34 @@ +{{ $majordict := dict }} +{{ $majorlist := slice }} +{{ $sorted_list := slice }} + +{{/* Collect all versions and parse semver for sorting */}} +{{ range .Site.Sections }} + {{/* Skip versions marked as hidden */}} + {{ if not .Page.Params.hidden }} + {{ if eq .Page.Params.version "master" }} + {{$sorted_list = $sorted_list | append "master" }} + {{ else if and (.Page.Params.version) (ne .Page.Params.version "0") }} + {{ $splitver := split .Page.Params.version "." }} + {{ if eq (len $splitver) 2 }} + {{ $verlist := (index $majordict (index $splitver 0)) }} + {{ $verlist = $verlist | append (index $splitver 1) }} + {{ $majordict = merge $majordict (dict (index $splitver 0) $verlist) }} + {{ $majorlist = $majorlist | append (index $splitver 0) }} + {{ end }} + {{ end }} + {{ end }} +{{ end }} + +{{/* Sort versions by semver (descending) and prepend to sorted_list */}} +{{ $semver_sorted := slice }} +{{ range sort ($majorlist | uniq) "value" "desc" }} + {{ $majorver := . }} + {{ range sort (index $majordict .) "value" "desc" }} + {{$semver_sorted = $semver_sorted | append (printf "%s.%s" $majorver .) }} + {{ end }} +{{ end }} +{{/* Append semver sorted versions after master */}} +{{ $sorted_list = $sorted_list | append $semver_sorted }} + +{{ return $sorted_list }} diff --git a/themes/geekboot/layouts/partials/version-dropdown-menu.html b/themes/geekboot/layouts/partials/version-dropdown-menu.html index 168a516b4..6fa1b7272 100644 --- a/themes/geekboot/layouts/partials/version-dropdown-menu.html +++ b/themes/geekboot/layouts/partials/version-dropdown-menu.html @@ -1,34 +1,6 @@ -{{ $versionList := slice }} -{{ $majordict := dict }} -{{ $majorlist := slice }} -{{ $sorted_list := slice }} +{{ $sorted_list := partial "utils/sorted-versions" . }} {{ $cur_ver := .Page.Params.version | default .Site.Params.latest }} - -{{ range .Site.Sections }} - {{/* Skip versions marked as hidden */}} - {{ if not .Page.Params.hidden }} - {{ if eq .Page.Params.version "master" }} - {{$sorted_list = $sorted_list | append "master" }} - {{ else if ne .Page.Params.version nil }} - {{ $splitver := split .Page.Params.version "." }} - {{ if eq (len $splitver) 2 }} - {{ $verlist := (index $majordict (index $splitver 0)) }} - {{ $verlist = $verlist | append (index $splitver 1) }} - {{ $majordict = merge $majordict (dict (index $splitver 0) $verlist) }} - {{ $majorlist = $majorlist | append (index $splitver 0) }} - {{ end }} - {{ end }} - {{ end }} -{{ end }} - -{{ range sort ($majorlist | uniq) "value" "desc" }} - {{ $majorver := . }} - {{ range sort (index $majordict .) "value" "desc" }} - {{$sorted_list = $sorted_list | append (printf "%s.%s" $majorver .) }} - {{ end }} -{{ end }} -