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