{{/* Extending upon [https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/embedded/templates/shortcodes/figure.html] */}} {{/* Help from [https://discourse.gohugo.io/t/has-anyone-a-webp-shortcode/35391] */}} {{- $path := .Get "src" -}} {{- $link := .Get "link" -}} {{- $target := .Get "target" -}} {{- $rel := .Get "rel" -}} {{- $class := .Get "class" -}} {{- $alt := .Get "alt" -}} {{- $attr := .Get "attr" -}} {{- $attrlink := .Get "attrlink" -}} {{- $title := .Get "title" -}} {{- $width := .Get "width" -}} {{- $height := .Get "height" -}} {{- $caption := .Get "caption" -}} {{- $loading := .Get "loading" -}} {{- $jpg := "" -}} {{- $webp := "" -}} {{- $fitOptionstojpg := printf "%vx%v jpg" $width $height -}} {{- $fitOptionstowebp := printf "%vx%v webp" $width $height -}} {{- $msg1 := "The %q shortcode requires a parameter named %q. See %s" -}} {{- $msg2 := "The resource %q passed to the %q shortcode is not an image. See %s" -}} {{- $msg3 := "The resource %q passed to the %q shortcode could not be found. See %s" -}} {{- if not (findRE `http[s]{0,1}://` $path 1) -}} {{ if not $path }} {{ errorf $msg1 .Name "path" .Position }} {{ end }} {{- with $i := resources.Get $path -}} {{- if eq $i.MediaType.MainType "image" -}} {{- if not $width -}}{{- $width = $i.Width -}}{{- end -}} {{- if not $height -}}{{- $height = $i.Height -}}{{- end -}} {{- if eq $i.MediaType "image/webp" -}} {{- $jpg = $i.Fit $fitOptionstojpg -}} {{- $webp = $i -}} {{- else if eq $i.MediaType "image/jpeg" -}} {{- $webp = $i.Fit $fitOptionstowebp -}} {{- $jpg = $i -}} {{- else -}} {{- $fitOptions := printf "%vx%v jpg" $width $height -}}{{- $jpg = $i.Fit $fitOptions -}} {{- $fitOptions = printf "%vx%v webp" $width $height -}}{{- $webp = $i.Fit $fitOptions -}} {{- end -}} {{- if $link -}} {{- end -}} {{ with $alt }}{{ . }}{{ else }}{{ $caption | markdownify| plainify }}{{ end }} {{- if $link }}{{ end -}} {{- if or (or $title $caption) $attr -}}
{{ with $title -}}

{{ . }}

{{- end -}} {{- if or $caption $attr -}}

{{- $caption | markdownify -}} {{- with $attrlink }}{{- end -}} {{- $attr | markdownify -}} {{- if $attrlink }}{{ end }}

{{- end }}
{{- end -}} {{- else -}} {{- errorf $msg2 $path $.Name $.Position -}} {{- end -}} {{- else -}} {{- errorf $msg3 $path .Name .Position -}} {{- end -}} {{- else -}} {{- if $link -}}{{- end -}} {{ with $alt }}{{ . }}{{ else }}{{ $caption | markdownify| plainify }}{{ end }} {{- if $link }}{{ end -}} {{- if or (or $title $caption) $attr -}}
{{ with $title -}}

{{ . }}

{{- end -}} {{- if or $caption $attr -}}

{{- $caption | markdownify -}} {{- with $attrlink }}{{- end -}} {{- $attr | markdownify -}} {{- if $attrlink }}{{ end }}

{{- end }}
{{- end -}} {{- end -}}