1
0
Fork 0
mirror of https://git.sr.ht/~seirdy/seirdy.one synced 2024-11-23 21:02:09 +00:00
seirdy.one/layouts/shortcodes/picture.html
Rohan Kumar 2badbe2601
Use cache-busting partial instead of Fingerprint
This gives files much smaller fingerprints, and supports caching.
2023-12-08 16:08:40 -08:00

114 lines
4 KiB
HTML

{{ $light_svg := resources.GetMatch (printf "/p/%s.svg" (.Get "name")) -}}
{{ $light_png := resources.GetMatch (printf "/p/%s.png" (.Get "name")) -}}
{{ $light_jpg := resources.GetMatch (printf "/p/%s.jpg" (.Get "name")) -}}
{{ $light_webp := resources.GetMatch (printf "/p/%s.webp" (.Get "name")) -}}
{{ $light_avif := resources.GetMatch (printf "/p/%s.avif" (.Get "name")) -}}
{{ $light_jxl := resources.GetMatch (printf "/p/%s.jxl" (.Get "name")) -}}
{{ $dark_svg := resources.GetMatch (printf "/p/%s_dark.svg" (.Get "name")) -}}
{{ $dark_png := resources.GetMatch (printf "/p/%s_dark.png" (.Get "name")) -}}
{{ $dark_jpg := resources.GetMatch (printf "/p/%s_dark.jpg" (.Get "name")) -}}
{{ $dark_webp := resources.GetMatch (printf "/p/%s_dark.webp" (.Get "name")) -}}
{{ $dark_avif := resources.GetMatch (printf "/p/%s_dark.avif" (.Get "name")) -}}
{{ $dark_jxl := resources.GetMatch (printf "/p/%s_dark.jxl" (.Get "name")) -}}
{{- $orig_img := $light_png -}}
{{- $orig_img_type := "image/png" -}}
{{- $orig_img_dark := $dark_png -}}
{{- $orig_img_dark_type := "image/png" -}}
{{- with $light_jpg -}}
{{- $orig_img_type = "image/jpeg" -}}
{{- $orig_img = $light_jpg -}}
{{- end -}}
{{- with $dark_jpg -}}
{{- $orig_img_dark_type = "image/jpeg" -}}
{{- $orig_img_dark = $dark_jpg -}}
{{- end -}}
{{- $img_width := $orig_img.Width -}}
{{- $img_height := $orig_img.Height -}}
{{- with (.Get "sf") -}}
{{- $img_width = (mul $img_width . | math.Round) -}}
{{- $img_height = (mul $img_height . | math.Round ) -}}
{{- end -}}
<picture>
{{- if not (in site.BaseURL ".onion") -}}
{{ with $dark_svg -}}
{{ $dark_svg_src := partial "cache-bust.html" . -}}
<source
srcset="{{ $dark_svg_src.RelPermalink }}"
type="image/svg+xml"
media="screen and (prefers-color-scheme: dark)" />
{{ end -}}
{{ end -}}
{{ with $dark_jxl -}}
{{ $dark_jxl_src := partial "cache-bust.html" . -}}
<source
srcset="{{ $dark_jxl_src.RelPermalink }}"
type="image/jxl"
media="screen and (prefers-color-scheme: dark)" />
{{ end -}}
{{ with $dark_avif -}}
{{ $dark_avif_src := partial "cache-bust.html" . -}}
<source
srcset="{{ $dark_avif_src.RelPermalink }}"
type="image/avif"
media="screen and (prefers-color-scheme: dark)" />
{{ end -}}
{{ with $dark_webp -}}
{{ $dark_webp_src := partial "cache-bust.html" . -}}
<source
srcset="{{ $dark_webp_src.RelPermalink }}"
type="image/webp"
media="screen and (prefers-color-scheme: dark)" />
{{ end -}}
{{ with $orig_img_dark -}}
{{ $orig_dark_src := partial "cache-bust.html" . -}}
<source
srcset="{{ $orig_dark_src.RelPermalink }}"
type="{{ $orig_img_dark_type }}"
media="screen and (prefers-color-scheme: dark)" />
{{ end -}}
{{- if not (in site.BaseURL ".onion") -}}
{{ with $light_svg -}}
{{ $light_svg_src := partial "cache-bust.html" . -}}
<source
srcset="{{ $light_svg_src.RelPermalink }}"
type="image/svg+xml" />
{{ end -}}
{{ end -}}
{{ with $light_jxl -}}
{{ $light_jxl_src := partial "cache-bust.html" . -}}
<source
srcset="{{ $light_jxl_src.RelPermalink }}"
type="image/jxl" />
{{ end -}}
{{ with $light_avif -}}
{{ $light_avif_src := partial "cache-bust.html" . -}}
<source
srcset="{{ $light_avif_src.RelPermalink }}"
type="image/avif" />
{{ end -}}
{{ with $light_webp -}}
{{ $light_webp_src := partial "cache-bust.html" . -}}
<source
srcset="{{ $light_webp_src.RelPermalink }}"
type="image/webp" />
{{ end -}}
{{ $orig_src := partial "cache-bust.html" $orig_img -}}
<source
srcset="{{ $orig_src.RelPermalink }}"
type="{{ $orig_img_type }}" />
<img{{ with .Get "class" }} class="{{ . }}"{{ end }}
width="{{ $img_width }}" height="{{ $img_height }}"
src="{{ $orig_src.Permalink }}" alt='{{ .Get "alt" }}'
{{ with .Parent -}}
{{ if eq .Name "transcribed-image-figure" -}}
{{ with .Get "id" -}}
aria-describedby="transcript-{{ . }}"
{{ end -}}
{{ end -}}
{{ if or (eq .Name "image-figure") (eq .Name "transcribed-image-figure") -}}
itemprop="image contentUrl url"
{{ end -}}
{{- end -}}
decoding="async" />
</picture>{{- /* Strip trailing newline: https://github.com/gohugoio/hugo/issues/1753 */ -}}