diff --git a/themes/docs-new/layouts/_default/release_notes.html b/themes/docs-new/layouts/_default/release_notes.html index 5bb46ad1912..b6e663e674a 100644 --- a/themes/docs-new/layouts/_default/release_notes.html +++ b/themes/docs-new/layouts/_default/release_notes.html @@ -11,68 +11,10 @@ {{ if or (hugo.IsProduction) ( eq hugo.Environment "staging") ( eq hugo.Environment "branch-deploy")}} {{ with $product := $.Param "release_notes" }} - {{- $versionsUrl := "" -}} - {{- if eq $product "automate" -}} - {{- $versionsUrl = "https://packages.chef.io/releases/current/automate.json"}} - {{- else if (eq $product "habitat") -}} - {{- $versionsUrl = "assets/release-notes/habitat/release-versions.json" -}} - {{- else if (hasPrefix $product "inspec-") -}} - {{- $versionsUrl = print "_vendor/github.com/inspec/" $product "/docs-chef-io/assets/release-notes/" $product "/release-dates.json" -}} - {{- else -}} - {{- $versionsUrl = (print "https://omnitruck.chef.io/stable/" $product "/versions/all") -}} - {{- end -}} + {{ $partialData := dict "product" $product "chefVersions" $.Site.Data.releases.chef.current }} + {{ $versionsCorrectOrder := partial "version_numbers.html" $partialData }} - {{ $versions := "" }} - - {{ $headers := dict "Cache-Control" "no-cache" "Connection" "keep-alive" }} - {{ $cacheKey := print $versionsUrl (now.Format "20060102") (div now.Hour 6) | md5 }} - {{ $opts := dict "headers" $headers "key" $cacheKey }} - - {{- if hasPrefix $versionsUrl "https://" -}} - {{- with resources.GetRemote $versionsUrl $opts -}} - {{ with .Err }} - {{ errorf "%s" . }} - {{ else }} - {{ $unmarshalOpts := dict "delimiter" "," }} - {{ $versions = . | transform.Unmarshal $unmarshalOpts }} - {{ end }} - {{ else }} - {{ errorf "Unable to get remote resource %q" $versionsUrl }} - {{ end }} - {{ else }} - {{ $versions = getJSON $versionsUrl }} - {{ end }} - - {{/* We have a "current" version of Infra Client that they want release notes for on the Client release notes page. */}} - {{/* This allows us to add current release version numbers of Client to the list of version numbers */}} - {{/* that we want to include in the Client release notes. */}} - {{- if eq $product "chef" -}} - {{- $current_versions := $.Site.Data.releases.chef.current -}} - {{- $versions = append $current_versions $versions -}} - {{- $paddedVersions := apply $versions "partial" "zero_prefix_pad" "." }} - {{- $sortedVersions := (sort $paddedVersions "value" "desc") }} - {{- $versions = apply $sortedVersions "partial" "zero_prefix_trim" "." }} - {{- end -}} - - {{- $versionsCorrectOrder := slice -}} - - {{- if eq $product "automate" -}} - {{- $len := len $versions -}} - {{- range seq $len -}} - {{- $versionsCorrectOrder = $versionsCorrectOrder | append (index $versions (sub $len .)) -}} - {{- end -}} - {{- else if eq $product "chef" -}} - {{- $versionsCorrectOrder = $versions -}} - {{ else }} - {{ $len := len $versions }} - {{- range seq $len -}} - {{- $versionsCorrectOrder = $versionsCorrectOrder | append (index $versions (sub $len .)) }} - {{ end }} - {{- end -}} - - - - {{- range $versionsCorrectOrder}} + {{- range $versionsCorrectOrder }} {{- $version := "" -}} diff --git a/themes/docs-new/layouts/partials/release_notes_toc.html b/themes/docs-new/layouts/partials/release_notes_toc.html index 6c6bc29c699..f5358764a67 100644 --- a/themes/docs-new/layouts/partials/release_notes_toc.html +++ b/themes/docs-new/layouts/partials/release_notes_toc.html @@ -10,65 +10,8 @@ {{ with $product := $.Param "release_notes" }} - {{ $versionsUrl := ""}} - {{ if eq $product "automate" }} - {{ $versionsUrl = "https://packages.chef.io/releases/current/automate.json"}} - {{ else if (eq $product "habitat") }} - {{ $versionsUrl = "assets/release-notes/habitat/release-versions.json" }} - {{ else if (hasPrefix $product "inspec-") }} - {{ $versionsUrl = print "_vendor/github.com/inspec/" $product "/docs-chef-io/assets/release-notes/" $product "/release-dates.json" }} - {{ else }} - {{ $versionsUrl = (print "https://omnitruck.chef.io/stable/" $product "/versions/all") }} - {{ end }} - - {{ $versions := "" }} - - {{ $headers := dict "Cache-Control" "no-cache" "Connection" "keep-alive" }} - {{ $cacheKey := print $versionsUrl (now.Format "20060102") (div now.Hour 6) | md5 }} - {{ $opts := dict "headers" $headers "key" $cacheKey }} - - {{- if hasPrefix $versionsUrl "https://" -}} - {{- with resources.GetRemote $versionsUrl $opts -}} - {{ with .Err }} - {{ errorf "%s" . }} - {{ else }} - {{ $unmarshalOpts := dict "delimiter" "," }} - {{ $versions = . | transform.Unmarshal $unmarshalOpts }} - {{ end }} - {{ else }} - {{ errorf "Unable to get remote resource %q" $versionsUrl }} - {{ end }} - {{ else }} - {{ $versions = getJSON $versionsUrl }} - {{ end }} - - {{/* We have a current version of Infra Client that they want release notes for on the Client release notes page. */}} - {{/* This allows us to add current release version numbers of Client to the list of version numbers */}} - {{/* that we want to include in the Client release notes. */}} - {{- $current_versions := slice -}} - {{- if eq $product "chef" -}} - {{- $current_versions := $.Site.Data.releases.chef.current -}} - {{- $versions = append $current_versions $versions -}} - {{- $paddedVersions := apply $versions "partial" "zero_prefix_pad" "." }} - {{- $sortedVersions := (sort $paddedVersions "value" "desc") }} - {{- $versions = apply $sortedVersions "partial" "zero_prefix_trim" "." }} - {{- end -}} - - {{- $versionsCorrectOrder := slice -}} - - {{- if eq $product "automate" -}} - {{- $len := len $versions -}} - {{- range seq $len -}} - {{- $versionsCorrectOrder = $versionsCorrectOrder | append (index $versions (sub $len .)) -}} - {{- end -}} - {{- else if eq $product "chef" -}} - {{- $versionsCorrectOrder = $versions -}} - {{ else }} - {{ $len := len $versions }} - {{- range seq $len -}} - {{- $versionsCorrectOrder = $versionsCorrectOrder | append (index $versions (sub $len .)) }} - {{ end }} - {{- end -}} + {{ $partialData := dict "product" $product "chefVersions" $.Site.Data.releases.chef.current }} + {{ $versionsCorrectOrder := partial "version_numbers.html" $partialData }} {{ $lastDate := ""}} {{ if eq $product "automate" }} diff --git a/themes/docs-new/layouts/partials/version_numbers.html b/themes/docs-new/layouts/partials/version_numbers.html new file mode 100644 index 00000000000..fa1a985442d --- /dev/null +++ b/themes/docs-new/layouts/partials/version_numbers.html @@ -0,0 +1,64 @@ +{{ $product := .product }} +{{ $chefVersions := .chefVersions }} + +{{ $versionsUrl := ""}} +{{ if eq $product "automate" }} + {{ $versionsUrl = "https://packages.chef.io/releases/current/automate.json"}} +{{ else if (eq $product "habitat") }} + {{ $versionsUrl = "assets/release-notes/habitat/release-versions.json" }} +{{ else if (hasPrefix $product "inspec-") }} + {{ $versionsUrl = print "_vendor/github.com/inspec/" $product "/docs-chef-io/assets/release-notes/" $product "/release-dates.json" }} +{{ else }} + {{ $versionsUrl = (print "https://omnitruck.chef.io/stable/" $product "/versions/all") }} +{{ end }} + +{{ $versions := "" }} + +{{ $headers := dict "Cache-Control" "no-cache" "Connection" "keep-alive" }} +{{ $cacheKey := print $versionsUrl (now.Format "20060102") (div now.Hour 6) | md5 }} +{{ $opts := dict "headers" $headers "key" $cacheKey }} + +{{- if hasPrefix $versionsUrl "https://" -}} + {{- with resources.GetRemote $versionsUrl $opts -}} + {{ with .Err }} + {{ errorf "%s" . }} + {{ else }} + {{ $unmarshalOpts := dict "delimiter" "," }} + {{ $versions = . | transform.Unmarshal $unmarshalOpts }} + {{ end }} + {{ else }} + {{ errorf "Unable to get remote resource %q" $versionsUrl }} + {{ end }} +{{ else }} + {{ $versions = getJSON $versionsUrl }} +{{ end }} + + +{{/* We have a current version of Infra Client that they want release notes for on the Client release notes page. */}} +{{/* This allows us to add current release version numbers of Client to the list of version numbers */}} +{{/* that we want to include in the Client release notes. */}} +{{- $current_versions := slice -}} +{{- if eq $product "chef" -}} + {{- $versions = append $chefVersions $versions -}} + {{- $paddedVersions := apply $versions "partial" "zero_prefix_pad" "." }} + {{- $sortedVersions := (sort $paddedVersions "value" "desc") }} + {{- $versions = apply $sortedVersions "partial" "zero_prefix_trim" "." }} +{{- end -}} + +{{- $versionsCorrectOrder := slice -}} + +{{- if eq $product "automate" -}} + {{- $len := len $versions -}} + {{- range seq $len -}} + {{- $versionsCorrectOrder = $versionsCorrectOrder | append (index $versions (sub $len .)) -}} + {{- end -}} +{{- else if eq $product "chef" -}} + {{- $versionsCorrectOrder = $versions -}} +{{ else }} + {{ $len := len $versions }} + {{- range seq $len -}} + {{- $versionsCorrectOrder = $versionsCorrectOrder | append (index $versions (sub $len .)) }} + {{ end }} +{{- end -}} + +{{ return $versionsCorrectOrder }} \ No newline at end of file