{{- $imgPath := (urls.Parse .Destination).Path -}} {{- $imgName := path.Base $imgPath | replaceRE "\\.[^.]+$" "" -}} {{- $dataPath := printf "data/images/%s.yaml" $imgName -}} {{- $dataFile := .Page.Resources.Get $dataPath -}} {{- $data := dict -}} {{- if $dataFile -}} {{- with $dataFile.Content | transform.Unmarshal -}} {{- $data = . -}} {{- end -}} {{- end -}} {{- $alt := .PlainText | default $data.title | default "" -}} {{- $title := .Title | default $data.title | default .Page.Title -}} {{- $description := $data.description | default "" -}} {{- $image := false -}} {{- $imagePathLower := lower $imgPath -}} {{- if or (strings.HasSuffix $imagePathLower ".yaml") (strings.HasSuffix $imagePathLower ".yml") -}} {{- $imageDataFile := .Page.Resources.Get $imgPath -}} {{- if $imageDataFile -}} {{- with $imageDataFile.Content | transform.Unmarshal -}} {{- with index . "file" -}} {{- $imageFilePath := strings.TrimSpace (printf "%v" .) -}} {{- if ne $imageFilePath "" -}} {{- $image = $.Page.Resources.Get $imageFilePath -}} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- else -}} {{- $image = .Page.Resources.Get $imgPath -}} {{- end -}} {{- with $image -}} {{- $resolvedImage := . -}} {{- $metaTitle := index $data "title" -}} {{- $hasMeta := or $metaTitle (or $description (or $data.attribution $data.prompt)) -}} {{- $attributes := $.Attributes | default dict -}} {{- $imageClasses := "" -}} {{- with index $attributes "class" -}} {{- $imageClasses = lower (trim . " ") -}} {{- end -}} {{- $layout := "" -}} {{- with index $attributes "layout" -}} {{- $layout = lower (trim . " ") -}} {{- end -}} {{- $hasCenterClass := gt (len (findRE `(^|\\s)(center|centered)(\\s|$)` $imageClasses)) 0 -}} {{- $hasFullClass := gt (len (findRE `(^|\\s)(full|full-width|wide)(\\s|$)` $imageClasses)) 0 -}} {{- $forceCentered := false -}} {{- if or (in (slice "center" "centered") $layout) $hasCenterClass -}} {{- $forceCentered = true -}} {{- end -}} {{- if or (in (slice "full" "full-width" "wide") $layout) $hasFullClass -}} {{- $forceCentered = true -}} {{- end -}} {{- $forceWithoutMeta := false -}} {{- if or (in (slice "full" "full-width" "wide") $layout) $hasFullClass -}} {{- $forceWithoutMeta = true -}} {{- end -}} {{- $showMeta := and $hasMeta (not $forceWithoutMeta) -}} {{- $figureClasses := slice "figure-media" -}} {{- if $showMeta -}} {{- $figureClasses = $figureClasses | append "figure-media-with-meta" -}} {{- else -}} {{- $figureClasses = $figureClasses | append "figure-media-without-meta" -}} {{- end -}} {{- if $forceCentered -}} {{- $figureClasses = $figureClasses | append "figure-media-centered" -}} {{- end -}} {{- with $imageClasses -}} {{- $figureClasses = $figureClasses | append . -}} {{- end -}}
{{- partial "media/display-img.html" (dict "image" $resolvedImage "showMeta" $showMeta "forceCentered" $forceCentered "alt" $alt "title" $title ) -}} {{- if $showMeta -}}
{{- with $metaTitle -}}

{{ . | markdownify }}

{{- end -}} {{- with $description -}}

{{ . | markdownify }}

{{- end -}}
{{- if or $data.attribution $data.prompt -}}
{{- with $data.attribution -}} {{- $attribution := partial "media/parse-attribution.html" . -}}

Attribution : {{- if index $attribution "isURL" -}}{{ partial "render/link.html" (dict "Destination" (index $attribution "url") "Page" $.Page "Text" (index $attribution "label")) }}{{- else -}}{{ . | markdownify }}{{- end -}}

{{- end -}} {{- with $data.prompt -}}
Prompt

{{ . | markdownify }}

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