<!-- Shortcode to render an image as part of content where the place in text flow is important. @params src Image `src` path. @params link URI or Page Resource to wrap image in. Optional. @params rel Force relationship value. Optional. --> <!-- Variable assignment --> {{- $src := $.Page.Resources.GetMatch ( .Get "src" ) -}} {{- $linkedResource := $.Page.Resources.GetMatch ( .Get "link" ) -}} {{- $valid_rel_values := partialCached "util/get_valid_rel_values.html" . -}} <!-- Validation --> {{- if ( not $src ) -}} {{- errorf "No Page Resource found for src %q (%q)" ( .Get "src" ) .Page.File.Path -}} {{- end -}} {{- if not ( eq $src.ResourceType "image" ) -}} {{- errorf "Resource %q has resource type %q (expected \"image\") (%q)" ( .Get "src" ) $src.ResourceType .Page.File.Path -}} {{- end -}} {{- with .Get "rel" -}} {{- if not ( in $valid_rel_values . ) -}} {{- errorf "Invalid rel value %q (%q)" . .Page.File.Path -}} {{- end -}} {{- end -}} <!-- Rendering --> <div> {{- if .Get "link" -}} {{- if $linkedResource -}} <a href="{{- $linkedResource.RelPermalink -}}"{{- with .Get "rel" }} rel="{{- . -}}"{{- end -}}> {{- else -}} <a href="{{- .Get "link" -}}"> {{- end -}} {{- end -}} {{- partial "media/picture.html" $src -}} {{- if .Get "link" -}} </a> {{- end -}} {{- with ( .Get "caption" ) -}} <div class="figure__caption"><p class="figcaption__caption">{{ . | safeHTML }}</p></div> {{- end -}} </div>