Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 25 additions & 8 deletions themes/geekboot/layouts/404.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,34 @@ <h1 class="bd-title mb-0" id="content">Page not found</h1>
The page you're looking for couldn't be found.
<br /><br />
Only currently maintained versions of Crossplane are documented. Try
looking one of the following sections-
looking at one of the following sections:
<br /><br />
{{ $sorted_list := partial "utils/sorted-versions" . }}

<strong>Documentation Versions:</strong><br />
{{ range $sorted_list }}
{{ $versionPage := $.Site.GetPage (printf "v%s" .) | default ($.Site.GetPage .) }}
{{ with $versionPage }}
<a href="{{ .Permalink }}">{{ if ne .Page.Params.version "master" }}v{{ end }}{{ .Page.Params.version }}</a>
{{ if eq .Page.Params.version $.Site.Params.latest }}
<span class="badge rounded-pill latest">Latest</span>
{{ end }}
{{ if eq .Page.Params.version "master" }}
<small><em>(unreleased upcoming version)</em></small>
{{ end }}
<br />
{{ end }}
{{ end }}

<br />
<p><small>Looking for an older version? Archived versions are available as tags in the <a href="https://github.com/crossplane/docs/tags">GitHub repository</a> (e.g., v1.19-archive, v1.18-archive).</small></p>

<br />
<strong>Other Resources:</strong><br />
{{ range .Site.Sections }}
{{ if and (.Page.Params.version) (ne .Page.Params.version "0") (ne .Page.Params.version "master") }}
<a href="{{.Permalink}}">v{{ .Page.Params.version }}</a><br />
{{ else }}
{{ if (eq .Page.Params.version "master") }}
{{ else }}
<a href="{{.Permalink}}">{{ .Title }}</a><br />
{{ if and (not .Page.Params.hidden) (eq .Page.Params.version "0") }}
<a href="{{ .Permalink }}">{{ .Title }}</a><br />
{{ end }}
{{ end }}
{{ end }}
</div>
</main>
Expand Down
34 changes: 34 additions & 0 deletions themes/geekboot/layouts/partials/utils/sorted-versions.html
Original file line number Diff line number Diff line change
@@ -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 }}
30 changes: 1 addition & 29 deletions themes/geekboot/layouts/partials/version-dropdown-menu.html
Original file line number Diff line number Diff line change
@@ -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 }}

<!-- get all the versions and break out semver order -->
{{ 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 }}

<div class="dropdown float-end bd-dropdown">
<a class="btn btn-outline-secondary dropdown-toggle bd-dropdown-item text-reset" href="#" role="button" id="dropdownMenuLink" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{ if ne .Page.Params.version "master" }}v{{ end }}{{ $cur_ver }}
Expand Down