diff --git a/layouts/shortcodes/card.html b/layouts/shortcodes/card.html index 4b18354..be4612f 100644 --- a/layouts/shortcodes/card.html +++ b/layouts/shortcodes/card.html @@ -13,30 +13,18 @@ {{/* Image processing options */}} {{- $method := .Get "method" | default "Resize" | humanize -}} {{- $options := .Get "options" | default "800x webp q80" -}} +{{- $process := .Get "process" | default (printf "%s %s" $method $options) -}} -{{- if and $image (not (urls.Parse $image).Scheme) -}} - {{/* Process images in assets */}} - {{- with resources.Get $image -}} - {{- $processed := "" -}} - {{- if eq $method "Resize" -}} - {{- $processed = (.Resize $options) -}} - {{- else if eq $method "Fit" -}} - {{- $processed = (.Fit $options) -}} - {{- else if eq $method "Fill" -}} - {{- $processed = (.Fill $options) -}} - {{- else if eq $method "Crop" -}} - {{- $processed = (.Crop $options) -}} - {{- else -}} - {{- errorf "Invalid image processing command: Must be one of Crop, Fit, Fill or Resize." -}} - {{- end -}} - {{- $width = $processed.Width -}} - {{- $height = $processed.Height -}} - {{- $image = $processed.RelPermalink -}} - {{- else -}} - {{/* Otherwise, use relative link of the image */}} - {{- if hasPrefix $image "/" -}} - {{- $image = relURL (strings.TrimPrefix "/" $image) -}} - {{- end -}} +{{- with or (.Page.Resources.Get $image) (resources.Get $image) -}} + {{/* Retrieve the $image resource from local or global resources */}} + {{- $processed := .Process $process -}} + {{- $width = $processed.Width -}} + {{- $height = $processed.Height -}} + {{- $image = $processed.RelPermalink -}} +{{ else }} + {{/* Otherwise, use relative link of the image */}} + {{- if hasPrefix $image "/" -}} + {{- $image = relURL (strings.TrimPrefix "/" $image) -}} {{- end -}} {{- end -}}