{{/* Figure Shortcode for Wowchemy. */}} {{/* Load image from page dir falling back to media library at `assets/media/` and then to remote URI. */}} {{/* Note: Uses `{{-` to unindent HTML so that Figure shortcode can be nested within a `{{%` Markdown shortcode, such as Callout, without the HTML being rendered as a Markdown code block. */}} {{ $destination := .Get "src" }} {{ $is_remote := strings.HasPrefix $destination "http" }} {{ $caption := .Get "caption" | default (.Get "title") | default "" }}{{/* Support legacy `title` option. */}} {{ $zoom := eq (.Get "lightbox" | default "true") "true" }} {{ $id := anchorize (.Get "id" | default ($caption | plainify)) }} {{ $alt := .Get "alt" | default ($caption | plainify) }} {{ $img_class := "" }} {{ if eq (.Get "theme" | lower) "light" }}{{ $img_class = printf "%s img-light" $img_class }}{{end}} {{ if eq (.Get "theme" | lower) "dark" }}{{ $img_class = printf "%s img-dark" $img_class }}{{end}} {{/* 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 -}} {{- $isSVG := eq $img.MediaType.SubType "svg" -}} {{- $isGIF := eq $img.MediaType.SubType "gif" -}} {{- if $isSVG | or $isGIF -}} {{ $alt }} {{- else }} {{- $img_lg := $img.Fit "1200x1200 webp" -}} {{- $img_md := $img_lg.Fit "760x760 webp" -}}{{/* Match `.docs-article-container` max-width */}} {{- $img_sm := $img_md.Fit "400x400 webp" -}} {{- $width := (.Get "width") | default $img_md.Width -}} {{- $height := (.Get "height") | default $img_md.Height -}} {{ $alt }} {{- end }} {{- else -}} {{ $alt }} {{- end -}}
{{- if $caption -}} {{/* Localize the figure numbering (if enabled). */}} {{- $figure := split (i18n "figure" | default "Figure %d:") "%d" -}} {{ $caption | markdownify | emojify }} {{- end -}}