aboutsummaryrefslogtreecommitdiff
path: root/themes/default/layouts/_default/_markup/render-image.html
blob: 0cf1d5a909489dc92290a7040a977878a2178e16 (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
{{- $source     := $.Destination | safeURL -}}
{{- $public     := print "public/" $source -}}
{{- $local      := "" -}}
{{- $cache      := "" -}}
{{- $exists     := "" -}}
{{- $width      := "" -}}
{{- $height     := "" -}}
{{- $dimensions := "600x360" -}}
{{- $author     := .Page.Section -}}
{{- $relURL     := strings.TrimPrefix .Page.Site.BaseURL .Page.Permalink -}}
{{- $immutable  := print ($relURL | humanize | urlize) "-" ($source | sha256 | truncate 8 "") -}}
{{- $fileCache  := print (partial "function-paths-media.html") "/" $author "/" $immutable -}}

{{- if not (or (fileExists (print "public/" $fileCache ".webp")) (fileExists (print "public/" $fileCache (path.Ext $source)))) -}}
  {{- with $remote := resources.GetRemote $source -}}
    {{- with .Err -}}
      {{- if fileExists $public -}}
        {{- $local = resources.Get $public -}}
        {{- with $local -}}
          {{- $local = .Content | resources.FromString (print (partial "function-paths-media.html") "/" $author "/" (path.Base .)) -}}
        {{- end -}}
        {{- $source = print ("" | absURL) $source -}}
      {{- else -}}
        {{- $404image := resources.Get "data/media/404.png" -}}
        {{- with $404image -}}
          {{- $width  = .Width -}}
          {{- $height = .Height -}}
        {{- end -}}
        {{- $source = $404image.RelPermalink -}}
      {{- end -}}
    {{- else -}}
      {{- $cache = .Content | resources.FromString (print (partial "function-paths-media.html") "/" $author "/" (path.Base .)) -}}
    {{- end -}}
  {{- end -}}
{{- else -}}
  {{- $exists = resources.Get (print "public/" $fileCache (path.Ext $source)) -}}
  {{- $exists = $exists.Content | resources.FromString (print (partial "function-paths-media.html") "/" $author "/" (path.Base $exists)) -}}
{{ end }}
{{- /* This comment removes trailing newlines and white spaces. */ -}}
<figure>
  <a href="{{ $source }}">
    <picture>
      {{- with $local }}
        {{- $local = .Fit (print $dimensions " webp") }}
        {{- $local = $local | resources.Copy (print (partial "function-paths-media.html") "/" $author "/" $immutable ".webp") }}
        <source srcset="{{- $local.RelPermalink -}}" type="image/webp" />
        {{- $local = .Fit $dimensions }}
        {{- $local = $local | resources.Copy (print (partial "function-paths-media.html") "/" $author "/" $immutable (path.Ext $local)) }}
        {{- $width = $local.Width -}}
        {{- $height = $local.Height -}}
        {{- $writeToFile := $local.Permalink }}
      {{- end }}
      {{- with $cache }}
        {{- $cache = .Fit (print $dimensions " webp") }}
        {{- $cache = $cache | resources.Copy (print $author "/media/" $immutable ".webp") }}
        <source srcset="{{- $cache.RelPermalink -}}" type="image/webp" />
        {{- $cache = .Fit $dimensions }}
        {{- $cache = $cache | resources.Copy (print (partial "function-paths-media.html") "/" $author "/" $immutable (path.Ext $cache)) }}
        {{- $width = $cache.Width -}}
        {{- $height = $cache.Height -}}
        {{- $cache = $cache.RelPermalink }}
      {{- end -}}
      {{- with $exists }}
        {{- if fileExists (print "public/" $fileCache ".webp") -}}
          <source srcset="/{{- print $fileCache ".webp" -}}" type="image/webp" />
        {{- end -}}
        {{- if fileExists (print "public/" $author "/media/" $immutable ".webp") -}}
          <source srcset="/{{- print $author "/media/" $immutable ".webp" -}}" type="image/webp" />
        {{- end -}}
        {{- $width = .Width -}}
        {{- $height = .Height -}}
        {{- $cache = .RelPermalink }}
      {{- end -}}
      <img loading="lazy"
        src="{{ or $cache $source }}"
        alt="{{ $.Text | htmlUnescape }}"
        title="{{ $.Text | htmlUnescape }}"
        width="{{ $width }}"
        height="{{ $height }}"
      />
    </picture>
  </a>
  <figcaption>
  {{ with $.Title -}}
    {{ . | markdownify }}
  {{ else -}}
    Image/Picture
  {{ end -}}
  <br>
  Index: {{ with $cache }} {{ print "[Cache](" . ")" | markdownify }} &middot; {{ end }}
  {{ print "[Source](" $source ")" | markdownify }}
  </figcaption>
</figure>
{{- /* This comment removes trailing newlines and white spaces. */ -}}