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 }}
 |