{{ $image:= . }} {{ $imagePath:= .Src }} {{ $class:= .Class }} {{ $size:= .Size }} {{ $alt:= .Alt }} {{ $displayXL:= .DisplayXL | default "1110x" }} {{ $displayLG:= .DisplayLG | default "700x" }} {{ $displayMD:= .DisplayMD | default "600x" }} {{ $displaySM:= .DisplaySM | default "545x" }} {{ $resize:= .Resize | default true }} {{ $loading:= .Loading | default "lazy" }} {{ $fetchpriority:= .FetchPriority | default "" }} {{ $context:= .Context | default . }} {{ $contentImage:= false }} {{ $assetImage:= false }} {{ $sizeValue:= index (split $size ` `) 0 }} {{ $height:= index (split $sizeValue `x`) 1 }} {{ $width:= index (split $sizeValue `x`) 0 }} {{ $webp:= .Webp | default true }} {{ $command:= .Command | default "Resize" }} {{ $placeholder:= .Placeholder | default false }} {{ $placeholderQuality:= "40x q20" }} {{ with $context.Resources.GetMatch $imagePath }} {{ $contentImage = true }} {{ end }} {{ if and (not (strings.HasPrefix $imagePath "http")) (fileExists (add `assets/` (string $imagePath))) }} {{ $assetImage = true }} {{ end }} {{ if or (hasPrefix $imagePath "http") (fileExists (add `static/` (string $imagePath))) }} {{ .Alt }} {{ else }} {{ if or $assetImage $contentImage }} {{ if $assetImage }} {{ $image = resources.Get $imagePath }} {{ else if $contentImage }} {{ $image = $context.Resources.GetMatch $imagePath }} {{ end }} {{ $imageExt := path.Ext $image }} {{ if eq $imageExt `.svg` }} {{ .Scratch.Set "image-height" "" }} {{ .Scratch.Set "image-width" "" }} {{ else }} {{ .Scratch.Set "image-height" $image.Height }} {{ .Scratch.Set "image-width" $image.Width }} {{ end }} {{ $imageHeight:= .Scratch.Get "image-height" }} {{ $imageWidth:= .Scratch.Get "image-width" }} {{ if or (eq $imageExt `.gif`) (eq $imageExt `.svg`) }} {{ .Alt }} {{ else }} {{ if $size }} {{ $imageFallback:= $image.Resize $size }} {{ $imageWebp:= $image.Resize (add (string $size) " webp") }} {{ if not $webp }} {{ $imageWebp = $image.Resize (string $size) }} {{ end }} {{ if eq $command "Fit" }} {{ $imageFallback = $image.Fit $size }} {{ $imageWebp = $image.Fit (add (string $size) " webp") }} {{ if not $webp }} {{ $imageWebp = $image.Fit (string $size) }} {{ end }} {{ else if eq $command "Fill" }} {{ $imageFallback = $image.Fill $size }} {{ $imageWebp = $image.Fill (add (string $size) " webp") }} {{ if not $webp }} {{ $imageWebp = $image.Fill (string $size) }} {{ end }} {{ else if eq $command "Crop" }} {{ $imageFallback = $image.Crop $size }} {{ $imageWebp = $image.Crop (add (string $size) " webp") }} {{ if not $webp }} {{ $imageWebp = $image.Crop (string $size) }} {{ end }} {{ end }} {{ $placeholderImage := ($imageWebp.Resize $placeholderQuality) | images.Filter (images.GaussianBlur 5) }} {{ .Alt }} {{ else if or (lt ($image.Width) 500) (not $resize) }} {{ $size:= add (add (string $image.Width) "x") (string $image.Height) }} {{ $imageWebp:= $image.Resize (add (string $size) " webp") }} {{ if not $webp }} {{ $imageWebp = $image.Resize (string $size) }} {{ end }} {{ if eq $command "Fit" }} {{ $imageWebp = $image.Resize (add (string $size) " webp") }} {{ if not $webp }} {{ $imageWebp = $image.Resize (string $size) }} {{ end }} {{ else if eq $command "Fill" }} {{ $imageWebp = $image.Resize (add (string $size) " webp") }} {{ if not $webp }} {{ $imageWebp = $image.Resize (string $size) }} {{ end }} {{ else if eq $command "Crop" }} {{ $imageWebp = $image.Resize (add (string $size) " webp") }} {{ if not $webp }} {{ $imageWebp = $image.Resize (string $size) }} {{ end }} {{ end }} {{ $placeholderImage := ($imageWebp.Resize $placeholderQuality) | images.Filter (images.GaussianBlur 5) }} placeholder {{ else }} {{ $imageFallback:= $image.Resize $displayXL }} {{ $imageXL:= $image.Resize (add $displayXL " webp") }} {{ $imageLG:= $image.Resize (add $displayLG " webp") }} {{ $imageMD:= $image.Resize (add $displayMD " webp") }} {{ $imageSM:= $image.Resize (add $displaySM " webp") }} {{ if not $webp }} {{ $imageXL = $image.Resize $displayXL }} {{ $imageLG = $image.Resize $displayLG }} {{ $imageMD = $image.Resize $displayMD }} {{ $imageSM = $image.Resize $displaySM }} {{ end }} {{ $placeholderImage := ($imageFallback.Resize $placeholderQuality) | images.Filter (images.GaussianBlur 5) }} {{ .Alt }} {{ end }} {{ end }} {{ end }} {{ end }}