blob: 04bf93160a0025415d6d92469dc9f49f696d81e1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
{{- $cache := "" -}}
{{- $width := "" -}}
{{- $height := "" -}}
{{- $srcset := "" -}}
{{- $colors := "" -}}
{{- $type := "" -}}
{{- $source := $.Destination | safeURL -}}
{{- $public := print "public/" $source -}}
{{- $fetch := print (urls.Parse $source).Scheme "://" (urls.Parse $source).Host (urls.Parse $source).RequestURI -}}
{{- $figcaption := "Image/Picture" -}}
{{- $orientation := "landscape" -}}
{{- $dimensions := "600x360" -}}
{{- $author := .Page.Section -}}
{{- $relURL := strings.TrimPrefix .Page.Site.BaseURL .Page.Permalink -}}
{{- $immutable := print ($relURL | humanize | urlize) "-" ($source | sha256 | truncate 8 "") -}}
{{- $storage := print $author "/media/" $immutable -}}
{{- $cached := fileExists (print "public/" $storage ".webp") -}}
{{- $moderns := slice ".webp" ".avif" -}}
{{- $fallbacks := slice ".png" ".jpg" ".gif" ".jpeg" ".svg" ".apng" ".jfif" ".pjpeg" ".pjp" -}}
{{- $mimes := slice "image/avif" "image/webp" "image/apng" "image/gif" "image/jpeg" "image/png" "image/svg+xml" -}}
{{- if not $cached -}}
{{- with $remote := cond (default true $.Page.Site.Params.site.offline) false (resources.GetRemote $fetch) -}}
{{- with .Err -}}
{{- if fileExists $public -}}
{{- with $local := resources.Get $public -}}
{{- $local = .Content | resources.FromString (print $storage (path.Base .)) -}}
{{- $local = .Fit (print $dimensions " webp") -}}
{{- $local = $local | resources.Copy (print $storage ".webp") -}}
{{- $srcset = $local.Permalink -}}
{{- $local = .Fit $dimensions -}}
{{- $local = $local | resources.Copy (print $storage (path.Ext $local)) -}}
{{- $width = $local.Width -}}
{{- $height = $local.Height -}}
{{- $colors = $local.Colors -}}
{{- $cache = $local.Permalink -}}
{{- end -}}
{{- $source = print ("" | absURL) $source -}}
{{- else -}}
{{- with $404image := resources.Get "data/media/404.png" -}}
{{- $width = $404image.Width -}}
{{- $height = $404image.Height -}}
{{- $source = $404image.Permalink -}}
{{- end -}}
{{- end -}}
{{- else -}}
{{- with $cache = $remote.Content | resources.FromString (print $storage (path.Base $remote)) -}}
{{- $cache = .Fit (print $dimensions " webp") -}}
{{- $cache = $cache | resources.Copy (print $storage ".webp") -}}
{{- $srcset = $cache.Permalink -}}
{{- $cache = .Fit $dimensions -}}
{{- $cache = $cache | resources.Copy (print $storage (path.Ext $cache)) -}}
{{- $width = $cache.Width -}}
{{- $height = $cache.Height -}}
{{- $colors = $cache.Colors -}}
{{- $cache = $cache.Permalink -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- else -}}
{{- with $cache = resources.Get (print "public/" $storage ".webp") -}}
{{- $width = $cache.Width -}}
{{- $height = $cache.Height -}}
{{- $colors = $cache.Colors -}}
{{- $type = $cache.MediaType -}}
{{- $srcset = print ("" | absURL) "/" $storage ".webp" -}}
{{- end -}}
{{- range $extension := $fallbacks -}}
{{- with resources.Get (print "public/" $storage $extension) -}}
{{- $cache = print ("" | absURL) "/" $storage $extension -}}
{{- break -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- if lt $width $height -}}
{{- $orientation = "portrait" -}}
{{- end -}}
{{- with $caption := $.Title -}}
{{- $figcaption = $caption | markdownify -}}
{{ end }}
{{- /* This comment removes trailing newlines and white spaces. */ -}}
<figure>
<a data-orientation="{{ $orientation }}" href="{{ $source }}">
<picture>
{{- with $srcset }}
<source srcset="{{ $srcset }}" type="{{ or $type "image/webp" }}" />
{{- end }}
<img
loading="lazy"
src="{{ or $cache $source }}"
alt="{{ $.Text | htmlUnescape }}"
title="{{ $.Text | htmlUnescape }}"
width="{{ $width }}"
height="{{ $height }}"
{{ printf `style="` | safeHTMLAttr -}}
{{- partial "image-gradient.css.html" $colors | safeHTMLAttr -}}
{{- printf `"` | safeHTMLAttr }}
/>
</picture>
</a>
<figcaption>
{{ $figcaption }}
<br />
Index: {{ with $cache }} {{ print "[Cache](" $cache ")" | markdownify }} · {{ end }}
{{ print "[Source](" $source ")" | markdownify }}
</figcaption>
</figure>
{{- /* This comment removes trailing newlines and white spaces. */ -}}
|