update layouts

This commit is contained in:
Kovasky Buezo
2025-08-23 23:04:17 -02:30
parent 97c45e37f6
commit 8218ce4caa
22 changed files with 323 additions and 225 deletions
+61
View File
@@ -0,0 +1,61 @@
{{/* Parameter Parsing */}}
{{ $usage := `lazyimg:
Usage like:
- {{ partial "lazyimg" "image.jpg" }}
- {{ partial "lazyimg" (resources.Get "image.jpg") }}
...or more verbose by specifying a dict overriding the site.Params.lazyimg, e.g.:
- {{ partial "lazyimg" (dict "resizer" "auto" "renderer" "lqip") }}
- {{ partial "lazyimg" (dict "img" "image.jpg" "responsiveSizes" (slice "320px" "640px") "resizer" "responsive") }}
Please ensure that image exists in ./assets directory.
` }}
{{/* Parse and normalize input parameters: */}}
{{ $params := merge site.Params.lazyimg (dict
"img" .
"resizer" (default "responsive" site.Params.lazyimg.resizer)
"renderer" (default "lqip" site.Params.lazyimg.renderer)
)}}
{{ if reflect.IsMap . }}
{{ $userParams := dict }}
{{/* Normalize by transforming all keys to lower-case: */}}
{{ range $k, $v := . -}}
{{ $userParams = $userParams | merge (dict (lower $k) $v) }}
{{- end -}}
{{ $params = merge $params $userParams }}
{{ end }}
{{/* Attempt to load image resource: */}}
{{ $resType := (printf "%T" $params.img) }}
{{ $resLoaded := in $resType "resource" }}
{{ if not $resLoaded }}
{{ with $res := resources.Get $params.img }}
{{ $params = merge $params (dict "img" $res) }}
{{ $resLoaded = true }}
{{ end }}
{{ end }}
{{/* Handle error if not loaded yet: */}}
{{ if not $resLoaded }}
{{/* Try if error-handler is able to resolve it */}}
{{ $params = partial (printf "error-handler/%s" site.Params.lazyimg.errorHandler) $params }}
{{ if $params }}
{{ $resLoaded = in (printf "%T" $params.img) "resource" }}
{{ end }}
{{ end }}
{{/* Only proceed if resource has been loaded: */}}
{{ if $resLoaded }}
{{/* Special handling for WebP renderers: */}}
{{ if in $params.renderer "webp" }}
{{/* Override user-supplied target format */}}
{{ $resizeOptionsWebP := printf "%s webp" ($params.resizeoptions | replaceRE "(jpg|png|tif|bmp|gif)" "") }}
{{ $paramsWebP := merge $params (dict "resizeoptions" $resizeOptionsWebP) }}
{{ $imagesWebP := partial (printf "resizer/%s" $params.resizer) $paramsWebP }}
{{ $imagesRegular := partial (printf "resizer/%s" $params.resizer) $params }}
{{ partial (printf "renderer/%s" $params.renderer) (merge $params (dict "imgDict" $imagesWebP "imgDictFallback" $imagesRegular)) }}
{{ else }}
{{ $sizes := partial (printf "resizer/%s" $params.resizer) $params }}
{{ partial (printf "renderer/%s" $params.renderer) (merge $params (dict "imgDict" $sizes)) }}
{{ end }}
{{ end }}