59 lines
1.7 KiB
HTML
59 lines
1.7 KiB
HTML
{{- $page := .page -}}
|
|
{{- $image := .image -}}
|
|
|
|
{{- $src := $image -}}
|
|
{{- $caption := "" -}}
|
|
{{- $title := "" -}}
|
|
{{- $alt := "" -}}
|
|
|
|
{{- if reflect.IsMap $image -}}
|
|
{{- $src = $image.src | default "" -}}
|
|
{{- $caption = $image.caption | default "" -}}
|
|
{{- $title = $image.title | default $caption | default "" -}}
|
|
{{- $alt = $image.alt | default $title | default "" -}}
|
|
{{- end -}}
|
|
|
|
{{- if $src -}}
|
|
{{- $isRemote := strings.HasPrefix $src "http" -}}
|
|
|
|
{{- if $isRemote -}}
|
|
{{- $remote := resources.GetRemote $src -}}
|
|
{{- $image = resources.Copy (printf "static/3rd-party/%s" $remote.Name) $remote -}}
|
|
{{- else -}}
|
|
{{- $image = ($page.Resources.Get $src) | default (resources.Get $src) -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- with $image -}}
|
|
{{ $full := . | images.Filter (images.Process "webp q90") }}
|
|
|
|
{{ $thumb := . }}
|
|
{{- if gt .Width 2000 -}}
|
|
{{- $thumb = . | images.Filter (images.Process "resize 2000x webp q75") -}}
|
|
{{- else -}}
|
|
{{- $thumb = . | images.Filter (images.Process "webp q75") -}}
|
|
{{- end -}}
|
|
|
|
<figure class="captioned-image lightbox">
|
|
<a
|
|
href="{{- $full.RelPermalink -}}"
|
|
data-pswp-src="{{- $full.RelPermalink -}}"
|
|
data-pswp-width="{{- $full.Width -}}"
|
|
data-pswp-height="{{- $full.Height -}}"
|
|
class="pswp-image"
|
|
>
|
|
<img
|
|
src="{{- $thumb.RelPermalink -}}"
|
|
width="{{- $thumb.Width -}}"
|
|
height="{{- $thumb.Height -}}"
|
|
loading="lazy"
|
|
{{ with $title }}title="{{- . -}}"{{ end }}
|
|
{{ with $alt }}alt="{{- . -}}"{{ end }}
|
|
/>
|
|
</a>
|
|
{{ with $caption }}
|
|
<figcaption>{{ . | safeHTML }}</figcaption>
|
|
{{ end }}
|
|
</figure>
|
|
{{- end -}}
|