aboutsummaryrefslogtreecommitdiff
path: root/themes/default/layouts/partials/gallery-walk.html
blob: 764fa6d5e260a67e5921c684c59f2fbffc07624b (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
{{- $folder := .Folder -}}
{{- $files := slice -}}
{{- $dimensions := "320x320" -}}
{{- $author := strings.TrimPrefix "public/" (strings.TrimSuffix "/media/" $folder) -}}
{{- $prefix := print (partial "function-paths.html" "media") "/" $author "/gallery-walker_" -}}

{{- if fileExists $folder -}}
  {{- range readDir $folder -}}

    {{- $name      := index (split .Name ".") 0 -}}
    {{- $extension := path.Ext .Name -}}

    {{- if or
      (eq $extension ".apng")
      (eq $extension ".avif")
      (eq $extension ".gif")
      (eq $extension ".jfif")
      (eq $extension ".jpeg")
      (eq $extension ".jpg")
      (eq $extension ".pjp")
      (eq $extension ".pjpeg")
      (eq $extension ".png")
      (eq $extension ".svg")
      (eq $extension ".webp")
    -}}
      {{-
        $files = $files | append (dict
          "Name" .Name
          "Path" (path.Join $folder .Name)
        )
      -}}
    {{- end -}}

    {{- if eq (len $files) 6 -}}
      {{- break -}}
    {{- end -}}
  {{- end -}}

  {{- if $files -}}

    {{- range $files -}}
      {{- with $image := resources.Get .Path -}}

      {{- $srcset := (.Content | resources.FromString (print $prefix (path.Base .))).Fit (print $dimensions " webp") -}}
      {{- $image = (.Content | resources.FromString (print $prefix (path.Base .))).Fit (print $dimensions " png") -}}
      {{- $decodedURL := print "/" (replaceRE "-" "/" (path.Base .Name) 2 | replaceRE "-.........webp" "") "/" -}}
      {{- $relatedPage := or (in $decodedURL "/messages/") (in $decodedURL "/feeds/") -}}

      {{- if not $relatedPage -}}
        {{- $decodedURL = print "/" $author "/" -}}
      {{- end -}}

      <a href="{{ $decodedURL }}">
        <picture>
          <source srcset="{{ $srcset.RelPermalink }}" type="image/webp" />
          <img loading="lazy"
            alt="{{ .Name }}"
            title="{{ .Name }}"
            width="{{ $image.Width }}"
            height="{{ $image.Height }}"
            src="{{ $image.RelPermalink }}"
          />
        </picture>
      </a>
     {{- end -}}
    {{- end -}}

    <gallery-overlay></gallery-overlay>

  {{- else -}}
    <footer>
      <code>No media found!</code>
    </footer>
  {{- end -}}
{{- else -}}
  <footer>
    <code>No media found!</code>
  </footer>
{{- end }}