{{- /* Params: Resource: Hugo image resource object (Optional, for processing) Width: Image width (Required) Height: Image height (Required) Resize: Whether to perform resize (Optional, default: false) Attributes: Map of HTML attributes for the tag */ -}} {{- $resource := .Resource -}} {{- $width := .Width -}} {{- $height := .Height -}} {{- $resize := .Resize -}} {{- $attributes := .Attributes | default dict -}} {{- if and $resize $resource (reflect.IsImageResourceProcessable $resource) $width $height -}} {{/* Create thumbnail with 1x/2x descriptors */}} {{- $srcset := slice -}} {{- range (slice 1 2) -}} {{- $w := mul $width . -}} {{- $h := mul $height . -}} {{- if and (le $w $resource.Width) (le $h $resource.Height) -}} {{- $resized := $resource.Fill (printf "%dx%d" $w $h) -}} {{- $srcset = $srcset | append (printf "%s %dx" $resized.RelPermalink .) -}} {{- if eq . 1 -}} {{- $attributes = merge $attributes (dict "src" $resized.RelPermalink) -}} {{- end -}} {{- end -}} {{- end -}} {{- if gt (len $srcset) 0 -}} {{- $attributes = merge $attributes (dict "width" $width "height" $height "srcset" (delimit $srcset ", ")) -}} {{- end -}} {{- end -}}