Files
web/themes/minimal-black/layouts/_default/_shortcodes/gallery.html
2026-03-23 18:35:59 +01:00

36 lines
1.5 KiB
HTML

{{- $images := split (.Get "images") "," -}}
{{- $captions := split (default "" (.Get "captions")) "," -}}
<div class="gallery-container" data-jg>
{{- if .Inner -}}
{{- /* If Inner content is provided, convert markdown images to lightbox-ready anchors */ -}}
{{- $content := .Inner -}}
{{- $content = replaceRE `!\[([^\]]*)\]\(([^\)]+)\)` `<a href="$2" class="glightbox" data-glightbox="description: $1"><img src="$2" alt="$1" loading="lazy"></a>` $content -}}
{{ $content | safeHTML }}
{{- else if $images -}}
{{- /* Otherwise, generate from images parameter */ -}}
{{- range $index, $image := $images -}}
{{- $imagePath := trim $image " " -}}
{{- $caption := "" -}}
{{- if $captions -}}
{{- $caption = index $captions $index | default "" | trim " " -}}
{{- end -}}
{{- if $imagePath -}}
<a href="{{ $imagePath | relURL }}" class="glightbox" data-glightbox="{{ if $caption }}description: {{ $caption }}{{ end }}">
<img src="{{ $imagePath | relURL }}" alt="{{ $caption | default $imagePath }}" loading="lazy">
</a>
{{- end -}}
{{- end -}}
{{- else -}}
{{- /* Fallback: try to get images from page resources */ -}}
{{- $resources := .Page.Resources.Match "images/*" -}}
{{- if $resources -}}
{{- range $resources -}}
<a href="{{ .RelPermalink }}" class="glightbox">
<img src="{{ .Resize "300x" }}" alt="{{ .Name }}" loading="lazy">
</a>
{{- end -}}
{{- end -}}
{{- end -}}
</div>