aboutsummaryrefslogtreecommitdiff
path: root/themes/default/layouts/partials/function-caches-images.html
diff options
context:
space:
mode:
Diffstat (limited to 'themes/default/layouts/partials/function-caches-images.html')
-rw-r--r--themes/default/layouts/partials/function-caches-images.html109
1 files changed, 109 insertions, 0 deletions
diff --git a/themes/default/layouts/partials/function-caches-images.html b/themes/default/layouts/partials/function-caches-images.html
new file mode 100644
index 0000000..c99103b
--- /dev/null
+++ b/themes/default/layouts/partials/function-caches-images.html
@@ -0,0 +1,109 @@
+{{- $pageContext := .Context -}}
+{{- $data := dict -}}
+{{- $source := or .Source "nil" -}}
+{{- $fit := .Fit -}}
+{{- $resize := .Resize -}}
+{{- $target := or .Target "/" -}}
+{{- $copy := .Copy -}}
+{{- $directory := path.Dir $copy -}}
+{{- $basename := path.BaseName $copy -}}
+{{- $type := strings.TrimPrefix "." (path.Ext $copy) -}}
+{{- $alternateCopy := or .AlternateCopy (print $directory "/" $basename ".webp") -}}
+{{- $alternateType := strings.TrimPrefix "." (path.Ext $alternateCopy) -}}
+{{- $isFile := ne (path.Base $copy) "." -}}
+{{- $cached := and $isFile (fileExists (print "public/" $copy)) (fileExists (print "public/" $alternateCopy)) -}}
+{{- $local := print "public/" $source -}}
+{{- $localized := fileExists $local -}}
+
+{{- with $404image := resources.Get "data/media/404.png" -}}
+ {{- $404image = .Content | resources.FromString (print $target (path.Base .)) -}}
+ {{-
+ $data = (dict
+ "Width" $404image.Width
+ "Height" $404image.Height
+ "Permalink" $404image.Permalink
+ "RelPermalink" $404image.RelPermalink
+ )
+ -}}
+{{- end -}}
+
+{{- if $cached -}}
+ {{- with $image := resources.Get (print "public/" $copy) -}}
+ {{- $image = .Content | resources.FromString (print $target (path.Base .)) -}}
+ {{-
+ $data = (dict
+ "Width" $image.Width
+ "Height" $image.Height
+ "Permalink" $image.Permalink
+ "RelPermalink" $image.RelPermalink
+ )
+ -}}
+ {{- $image = resources.Get (print "public/" $alternateCopy) -}}
+ {{- $image = .Content | resources.FromString (print $target (path.Base $image)) -}}
+ {{-
+ $data = merge $data (dict
+ "AltPermalink" $image.Permalink
+ "AltRelPermalink" $image.RelPermalink
+ )
+ -}}
+ {{- end -}}
+{{- else -}}
+ {{- with $image := cond (default true $pageContext.Site.Params.site.offline) false (resources.GetRemote $source) -}}
+ {{- with .Err -}}
+ {{- if $localized -}}
+ {{- $directory := path.Dir $local -}}
+ {{- $basename := path.BaseName $local -}}
+ {{- $type := strings.TrimPrefix "." (path.Ext $local) -}}
+ {{- with $image := resources.Get $local -}}
+ {{- $image = .Content | resources.FromString (print $target (path.Base .)) -}}
+ {{- with $fit -}} {{- $image = $image.Fit (print $fit " " $type) -}} {{- end -}}
+ {{- with $resize -}} {{- $image = $image.Resize (print $resize " " $type) -}} {{- end -}}
+ {{- $image = $image | resources.Copy $copy -}}
+ {{-
+ $data = (dict
+ "Width" $image.Width
+ "Height" $image.Height
+ "Permalink" $image.Permalink
+ "RelPermalink" $image.RelPermalink
+ )
+ -}}
+ {{- $image = .Content | resources.FromString (print $target (path.Base .)) -}}
+ {{- with $fit -}} {{- $image = $image.Fit (print $fit " " $alternateType) -}} {{- end -}}
+ {{- with $resize -}} {{- $image = $image.Resize (print $resize " " $alternateType) -}} {{- end -}}
+ {{- $image = $image | resources.Copy $alternateCopy -}}
+ {{-
+ $data = merge $data (dict
+ "AltPermalink" $image.Permalink
+ "AltRelPermalink" $image.RelPermalink
+ )
+ -}}
+ {{- end -}}
+ {{- end -}}
+ {{- else -}}
+ {{- $image = .Content | resources.FromString (print $target (path.Base .)) -}}
+ {{- with $fit -}} {{- $image = $image.Fit (print $fit " " $type) -}} {{- end -}}
+ {{- with $resize -}} {{- $image = $image.Resize (print $resize " " $type) -}} {{- end -}}
+ {{- $image = $image | resources.Copy $copy -}}
+ {{-
+ $data = (dict
+ "Width" $image.Width
+ "Height" $image.Height
+ "Permalink" $image.Permalink
+ "RelPermalink" $image.RelPermalink
+ )
+ -}}
+ {{- $image = .Content | resources.FromString (print $target (path.Base .)) -}}
+ {{- with $fit -}} {{- $image = $image.Fit (print $fit " " $alternateType) -}} {{- end -}}
+ {{- with $resize -}} {{- $image = $image.Resize (print $resize " " $alternateType) -}} {{- end -}}
+ {{- $image = $image | resources.Copy $alternateCopy -}}
+ {{-
+ $data = merge $data (dict
+ "AltPermalink" $image.Permalink
+ "AltRelPermalink" $image.RelPermalink
+ )
+ -}}
+ {{- end -}}
+ {{- end -}}
+{{- end -}}
+
+{{- return $data -}}