{{- $context := . -}} {{- $link := .Get "link" -}} {{- $title := .Get "title" -}} {{- $icon := .Get "icon" -}} {{- $subtitle := .Get "subtitle" -}} {{- $image := .Get "image" -}} {{- $width := 0 -}} {{- $height := 0 -}} {{- $imageStyle := .Get "imageStyle" -}} {{/* Image processing options */}} {{- $method := .Get "method" | default "Resize" | humanize -}} {{- $options := .Get "options" | default "800x webp q80" -}} {{- 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 -}} {{- end -}} {{- end -}} {{- partial "shortcodes/card" (dict "page" .Page "link" $link "title" $title "icon" $icon "subtitle" $subtitle "image" $image "width" $width "height" $height "imageStyle" $imageStyle ) -}}