56 lines
2.1 KiB
HTML
56 lines
2.1 KiB
HTML
{{/* Get album folder or default to `gallery/`. */}}
|
|
{{ $album := "" }}
|
|
{{ with .Get "album" }}{{ $album = . }}{{else}}{{ $album = "gallery" }}{{end}}
|
|
|
|
{{/* Set image path and page bundle that images are associated with. */}}
|
|
{{ $album_path := "" }}
|
|
{{ $resource_page := "" }}
|
|
{{ if eq .Page.Parent.Type "widget_page" }}
|
|
{{ $album_path = printf "%s/%s/*" (path.Base (path.Split .Page.Path).Dir) $album }}
|
|
{{ $resource_page = $.Page.Parent }}
|
|
{{ else }}
|
|
{{ $album_path = printf "%s/*" $album }}
|
|
{{ $resource_page = $.Page }}
|
|
{{ end }}
|
|
|
|
<div class="gallery">
|
|
|
|
{{/* Attempt to automatically load gallery images from page bundle */}}
|
|
{{ $images := ($resource_page.Resources.ByType "image").Match $album_path }}
|
|
{{ with $images }}
|
|
{{ range $images }}
|
|
{{ $image := .Resize "x190" }}
|
|
{{/* Check if the user set a caption for this image */}}
|
|
{{ $filename := path.Base .Name }}
|
|
{{ $caption := "" }}
|
|
{{ if $.Page.Params.gallery_item }}
|
|
{{ range (where (where $.Page.Params.gallery_item "album" $album) "image" $filename) }}
|
|
{{ $caption = .caption }}
|
|
{{ end }}
|
|
{{ end }}
|
|
<a data-fancybox="gallery-{{$album}}" href="{{ .RelPermalink }}" {{ with $caption }}data-caption="{{.|markdownify|emojify|safeHTMLAttr}}"{{ end }}>
|
|
<img src="{{ $image.RelPermalink }}" alt="">
|
|
</a>
|
|
{{end}}
|
|
|
|
{{else}}
|
|
{{/* Load gallery images from the `static/img/` media library or internet */}}
|
|
|
|
{{ if $.Page.Params.gallery_item }}
|
|
{{ range (where $.Page.Params.gallery_item "album" $album) }}
|
|
{{/* Set image path. */}}
|
|
{{ $.Scratch.Set "src" .image }}
|
|
{{ if gt (len .image) 4 }}
|
|
{{ if ne "http" (slicestr .image 0 4) }}
|
|
{{ $.Scratch.Set "src" (printf "img/%s" .image | relURL) }}
|
|
{{ end }}
|
|
{{ end }}
|
|
<a data-fancybox="gallery{{ with .album }}-{{.}}{{ end }}" {{ with .caption }}data-caption="{{.|markdownify|emojify|safeHTMLAttr}}"{{ end }} href="{{$.Scratch.Get "src"}}">
|
|
<img src="{{$.Scratch.Get "src"}}" alt="">
|
|
</a>
|
|
{{end}}
|
|
{{else}}
|
|
{{ errorf "Unable to load gallery in %s." .Page.File.Filename }}
|
|
{{end}}
|
|
{{end}}
|
|
</div> |