diff options
Diffstat (limited to 'themes/default/layouts/partials/function-caches-images.html')
-rw-r--r-- | themes/default/layouts/partials/function-caches-images.html | 109 |
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 -}} |