{{- /* get the directory of the file being rendered */ -}} {{- $file := print .Page.File.Dir -}} {{- /* break it apart */ -}} {{- $parts := split $file "/" -}} {{- /* the first part is the section (aka product 'os', etc.) */ -}} {{- $sect := index $parts 0 -}} {{- /* is it in the site data? If so we might need to show a notice and do a rel cannonical */ -}} {{- if in $.Site.Data.versioned.sections $sect }} {{- /* get the current version parts */ -}} {{- $versions := index $.Site.Data.versions.current $sect -}} {{- /* construct the string format (e.g. '1.14.x') */ -}} {{- $latest := print $versions.major "." $versions.minor ".x" -}} {{- /* but it into the scratch for later page elemnents */ -}} {{- .Page.Scratch.Set (print $sect "-latest") $latest -}} {{- /* now get the page version from the URL */ -}} {{- $pageVersion := index $parts 1 }} {{- /* if the page version is not equal to the latest, we've got out of date stuff */ -}} {{- if (ne $latest $pageVersion) -}} {{- /* create the corresponding filename for the newer version (e.g. /en/foo/1.13.x/ -> /en/foo/1.14.x/) */ -}} {{- $newFileName := replace $file $pageVersion $latest -}} {{- /* Setup some scratch variables for subsequent page elements */ -}} {{- .Page.Scratch.Set "docs_not_current" true -}} {{- .Page.Scratch.Set "docs_section_current_version" $latest -}} {{- .Page.Scratch.Set "docs_this_sections_version" $pageVersion -}} {{- /* if both the newer file exists */ -}} {{- if fileExists $newFileName -}} {{- /* Setup scratch variables that tell later element this */ -}} {{- .Page.Scratch.Set "newer_docs_avail_version" $latest -}} {{- .Page.Scratch.Set "newer_docs_avail_current_version" $pageVersion}} {{- .Page.Scratch.Set "newer_docs_permalink" (replace .Page.Permalink $pageVersion $latest) }} {{- /* provide a rel cannonical to follow for search engines */ -}} {{- end -}} {{- end -}} {{- end -}}