gabrielgio.me @ 31a09fcf1c0d7abf4791ca6e5bba37135d3305f7

 1{{/* 
 2    GetFeaturedImage
 3
 4    This partial gets the url for featured image for a given page. 
 5    
 6    If a featured_image was set in the page's front matter, then that will be used.
 7
 8    If not set, this will search page resources to find an image that contains the word
 9    "cover", and if found, returns the path to that resource.
10
11    If no featured_image was set, and there's no "cover" image in page resources, then
12    this partial returns an empty string (which evaluates to false).
13
14    @return Permalink to featured image, or an empty string if not found.
15
16*/}}
17
18{{/* Declare a new string variable, $linkToCover */}}
19{{ $linkToCover := "" }}
20
21{{/* Use the value from front matter if present */}}
22{{ if .Params.featured_image }}
23    {{ $linkToCover = .Params.featured_image }}
24
25{{/* Find the first image with 'cover' in the name in this page bundle. */}}
26{{ else }}
27    {{ $img := (.Resources.ByType "image").GetMatch "*cover*" }}
28    {{ with $img }}
29        {{ $linkToCover = .Permalink }}
30    {{ end }}
31{{ end }}
32
33{{/* return either a permalink, or an empty string. Note that partials can only have a single
34return statement, so this needs to be at the end of the partial (and not in the if block) */}}
35{{ return $linkToCover }}