42 lines
1.6 KiB
HTML
42 lines
1.6 KiB
HTML
|
{{/*
|
||
|
GetFeaturedImage
|
||
|
|
||
|
This partial gets the url for featured image for a given page.
|
||
|
|
||
|
If a featured_image was set in the page's front matter, then that will be used.
|
||
|
|
||
|
If not set, this will search page resources to find an image that contains the word
|
||
|
"cover", and if found, returns the path to that resource.
|
||
|
|
||
|
If no featured_image was set, and there's no "cover" image in page resources, then
|
||
|
this partial returns an empty string (which evaluates to false).
|
||
|
|
||
|
@return RelPermalink to featured image, or an empty string if not found.
|
||
|
|
||
|
*/}}
|
||
|
|
||
|
{{/* Declare a new string variable, $linkToCover */}}
|
||
|
{{ $linkToCover := "" }}
|
||
|
{{ $matches := "feature,cover" }}
|
||
|
{{/* Use the value from front matter if present */}}
|
||
|
{{ with .Params.featured_image }}
|
||
|
{{/* This is the default case, the image lives in the static directory.
|
||
|
In which case we'll use the static dir */}}
|
||
|
{{ $linkToCover = trim . "/" | absURL }}
|
||
|
{{/* If we find a Page Resource matching the exact value, we use it instead. */}}
|
||
|
{{ with $.Resources.GetMatch . }}
|
||
|
{{ $linkToCover = .RelPermalink }}
|
||
|
{{ end }}
|
||
|
{{/* Find the first image with 'cover' in the name in this page bundle. */}}
|
||
|
{{ else }}
|
||
|
{{ with .Resources.ByType "image" }}
|
||
|
{{ with .GetMatch (printf "**{%s}*" $matches) }}
|
||
|
{{ $linkToCover = .RelPermalink }}
|
||
|
{{ end }}
|
||
|
{{ end }}
|
||
|
{{ end }}
|
||
|
|
||
|
{{/* return either a permalink, or an empty string. Note that partials can only have a single
|
||
|
return statement, so this needs to be at the end of the partial (and not in the if block) */}}
|
||
|
{{ return $linkToCover }}
|