From 718a85aaf663a6b90f8a344e91f72a77c406ba06 Mon Sep 17 00:00:00 2001
From: Regis Philibert <login@regisphilibert.com>
Date: Thu, 23 Dec 2021 20:42:55 +0000
Subject: [PATCH] Featured image detection refactoring:

---
 layouts/partials/func/GetFeaturedImage.html |   34 +++++++++++++++++++---------------
 1 files changed, 19 insertions(+), 15 deletions(-)

diff --git a/layouts/partials/func/GetFeaturedImage.html b/layouts/partials/func/GetFeaturedImage.html
index a6219c7..12ffe1c 100644
--- a/layouts/partials/func/GetFeaturedImage.html
+++ b/layouts/partials/func/GetFeaturedImage.html
@@ -1,33 +1,37 @@
 {{/* 
-    GetFeaturedImage
+	GetFeaturedImage
 
-    This partial gets the url for featured image for a given page.
+	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 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 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).
+	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.
+	@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 */}}
-{{ if .Params.featured_image }}
-    {{ $linkToCover = .Params.featured_image }}
-
+{{ with .Params.featured_image }}
+	{{ $linkToCover = . }}
+  {{/* 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 }}
-    {{ $img := (.Resources.ByType "image").GetMatch "*cover*" }}
-    {{ with $img }}
-        {{ $linkToCover = .RelPermalink }}
+  {{ 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

--
Gitblit v1.10.0