{{/* Markdown Image Renderer for Hugo Blox Kit. */}} {{/* Load image from page dir falling back to media library at `assets/media/` and then to remote URI. */}} {{ $destination := .Destination }} {{ $is_remote := strings.HasPrefix $destination "http" }} {{ $caption := .Title | default "" }} {{ $zoom := "true" }} {{ $id := anchorize ($caption | plainify) }} {{ $alt := .Text | default ($caption | plainify) }} {{ $img_class := "" }} {{ $fig_class := "" }} {{ $max_width := "" }} {{ $width := "" }} {{ $height := "" }} {{ $numbered := false }} {{/* Workaround Hugo v0.81 error on Windows when `resources.Get (path.Join "media" )` */}} {{- $img := "" -}} {{- if not $is_remote -}} {{- $img = (.Page.Resources.ByType "image").GetMatch $destination -}} {{- if not $img -}} {{- $img = resources.Get (path.Join "media" $destination) -}} {{- end -}} {{- end -}}
{{- if $img -}} {{/* Image processing gate: - reflect.IsImageResourceProcessable → false for SVG (not processable by Hugo). - GIF: processable by Hugo but we skip to preserve animation frames. */}} {{- $canProcess := and (reflect.IsImageResourceProcessable $img) (ne $img.MediaType.SubType "gif") -}} {{- if not $canProcess -}} {{ $alt }} {{- else }} {{/* Process responsive images - use 760px as default display size */}} {{- $img_md := $img.Fit "760x760 webp" -}} {{- $responsive := partial "functions/process_responsive_image.html" (dict "image" $img_md "mode" "responsive") -}} {{- $width := $width | default $img_md.Width -}} {{- $height := $height | default $img_md.Height -}} {{ $alt }} {{- end }} {{- else -}} {{- if not $is_remote -}} {{- warnf "render-image: could not resolve local image %q — %s" $destination .Position -}} {{- end -}} {{ $alt }} {{- end -}}
{{- if $caption -}} {{/* Localize the figure numbering (if enabled). */}} {{- $figure := split (i18n "figure" | default "Figure %d:") "%d" -}} {{ $caption | markdownify | emojify }} {{- end -}}