From c52639e38f04c62902c63d0e1b6db1fc3fab8c62 Mon Sep 17 00:00:00 2001 From: Nikolaos Karaolidis Date: Thu, 11 Sep 2025 17:42:53 +0000 Subject: [PATCH] Add image processing Signed-off-by: Nikolaos Karaolidis --- layouts/_default/_markup/render-image.html | 4 +- layouts/partials/components/hero/index.html | 2 +- layouts/partials/components/image/index.html | 60 +++++++++++++++---- .../partials/components/image/reflect.html | 31 ---------- 4 files changed, 50 insertions(+), 47 deletions(-) delete mode 100644 layouts/partials/components/image/reflect.html diff --git a/layouts/_default/_markup/render-image.html b/layouts/_default/_markup/render-image.html index 129d187..ab9646a 100644 --- a/layouts/_default/_markup/render-image.html +++ b/layouts/_default/_markup/render-image.html @@ -1,7 +1,7 @@ -{{ partial "components/image/index.html" (dict +{{ partial "components/image/index.html" (dict "page" .Page "image" (dict "src" .Destination "caption" .Text "alt" .Title - ) + )) }} {{- /* chomp trailing newline */ -}} diff --git a/layouts/partials/components/hero/index.html b/layouts/partials/components/hero/index.html index 0b3c1fc..e319460 100644 --- a/layouts/partials/components/hero/index.html +++ b/layouts/partials/components/hero/index.html @@ -5,5 +5,5 @@ · {{ printf "%d MIN READ" .ReadingTime }} - {{ partial "components/image/index.html" .Params.hero }} + {{ partial "components/image/index.html" (dict "page" .Page "image" .Params.hero) }} diff --git a/layouts/partials/components/image/index.html b/layouts/partials/components/image/index.html index c5e8cd5..176fcc3 100644 --- a/layouts/partials/components/image/index.html +++ b/layouts/partials/components/image/index.html @@ -1,24 +1,58 @@ -{{ $imageData := partial "components/image/reflect.html" . }} -{{- with $imageData.image -}} +{{- $page := .page -}} +{{- $image := .image -}} + +{{- $src := $image -}} +{{- $caption := "" -}} +{{- $title := "" -}} +{{- $alt := "" -}} + +{{- if reflect.IsMap $image -}} + {{- $src = $image.src | default "" -}} + {{- $caption = $image.caption | default "" -}} + {{- $title = $image.title | default $caption | default "" -}} + {{- $alt = $image.alt | default $title | default "" -}} +{{- end -}} + +{{- if $src -}} + {{- $isRemote := strings.HasPrefix $src "http" -}} + + {{- if $isRemote -}} + {{- $remote := resources.GetRemote $src -}} + {{- $image = resources.Copy (printf "static/3rd-party/%s" $remote.Name) $remote -}} + {{- else -}} + {{- $image = ($page.Resources.Get $src) | default (resources.Get $src) -}} + {{- end -}} +{{- end -}} + +{{- with $image -}} + {{ $full := . | images.Filter (images.Process "webp q90") }} + + {{ $thumb := . }} + {{- if gt .Width 2000 -}} + {{- $thumb = . | images.Filter (images.Process "resize 2000x webp q75") -}} + {{- else -}} + {{- $thumb = . | images.Filter (images.Process "webp q75") -}} + {{- end -}} + {{- end -}} diff --git a/layouts/partials/components/image/reflect.html b/layouts/partials/components/image/reflect.html deleted file mode 100644 index 11d9398..0000000 --- a/layouts/partials/components/image/reflect.html +++ /dev/null @@ -1,31 +0,0 @@ -{{- $input := . -}} - -{{- $src := $input -}} -{{- $caption := "" -}} -{{- $title := "" -}} -{{- $alt := "" -}} - -{{- if reflect.IsMap $input -}} - {{- $src = $input.src | default "" -}} - {{- $caption = $input.caption | default "" -}} - {{- $title = $input.title | default $caption | default "" -}} - {{- $alt = $input.alt | default $title | default "" -}} -{{- end -}} - -{{ $result := dict "image" nil "caption" $caption "title" $title "alt" $alt }} - -{{- if $src -}} - {{- $isRemote := strings.HasPrefix $src "http" -}} - {{- $image := "" -}} - - {{- if $isRemote -}} - {{- $remote := resources.GetRemote $src -}} - {{- $image = resources.Copy (printf "static/3rd-party/%s" $remote.Name) $remote -}} - {{- else -}} - {{- $image = resources.Get $src -}} - {{- end -}} - - {{- $result = (dict "image" $image "caption" $caption "title" $title "alt" $alt) -}} -{{- end -}} - -{{- return $result -}}