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..9054baf 100644
--- a/layouts/partials/components/image/index.html
+++ b/layouts/partials/components/image/index.html
@@ -1,24 +1,60 @@
-{{ $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 -}}
+ {{ $original := . }}
+
+ {{ $full := $original | images.Filter (images.Process "webp q90") }}
+
+ {{ $thumb := $original }}
+ {{- if gt $original.Width 2000 -}}
+ {{- $thumb = $original | images.Filter (images.Process "resize 2000x webp q75") -}}
+ {{- else -}}
+ {{- $thumb = $original | images.Filter (images.Process "webp q75") -}}
+ {{- end -}}
+
- {{ with $imageData.caption }}
- {{ . }}
+ {{ with $caption }}
+ {{ . | safeHTML }}
{{ 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 -}}