{{ $disableImageOptimization := site.Store.Get "disableImageOptimization" }} {{/* === Background === */}} {{ $useDefault := false }} {{ $images := .Resources.ByType "image" }} {{ $background := $images.GetMatch "*background*" }} {{ $backgroundURL := "" }} {{ if not (or $background $backgroundURL) }} {{ $default := site.Store.Get "defaultBackgroundImage" }} {{ if $default.url }} {{ $backgroundURL = $default.url }} {{ $useDefault = true }} {{ else if $default.obj }} {{ $background = $default.obj }} {{ $useDefault = true }} {{ end }} {{ end }} {{ if not (or $background $backgroundURL) }} {{ range slice "*cover*" "*thumbnail*" "*feature*" }} {{ if not $background }}{{ $background = $images.GetMatch . }}{{ end }} {{ end }} {{ end }} {{/* generate image URL if not hotlink */}} {{ if not $backgroundURL }} {{ with $background }} {{ $backgroundURL = .RelPermalink }} {{ if not (or $disableImageOptimization (eq .MediaType.SubType "svg")) }} {{ $size := site.Store.Get "backgroundImageWidth" }} {{ $backgroundURL = (.Resize $size).RelPermalink }} {{ end }} {{ end }} {{ end }} {{/* === Featured === */}} {{ $featured := "" }} {{ $featuredURL := "" }} {{ with .Params.featureimage }} {{ if or (strings.HasPrefix . "http:") (strings.HasPrefix . "https:") }} {{ if site.Params.hotlinkFeatureImage }} {{ $featuredURL = . }} {{ else }} {{ $featured = resources.GetRemote . }} {{ end }} {{ else }} {{ $featured = resources.Get . }} {{ end }} {{ end }} {{ if not (or $featured $featuredURL) }} {{ $images := $.Resources.ByType "image" }} {{ range slice "*feature*" "*cover*" "*thumbnail*" "*background*" }} {{ if not $featured }}{{ $featured = $images.GetMatch . }}{{ end }} {{ end }} {{ end }} {{ if not (or $featured $featuredURL) }} {{ $default := site.Store.Get "defaultFeaturedImage" }} {{ if $default.url }} {{ $featuredURL = $default.url }} {{ else if $default.obj }} {{ $featured = $default.obj }} {{ end }} {{ end }} {{/* generate image URL if not hotlink */}} {{ if not $featuredURL }} {{ with $featured }} {{ $featuredURL = .RelPermalink }} {{ if not (or $disableImageOptimization (eq .MediaType.SubType "svg")) }} {{ $size := site.Store.Get "backgroundImageWidth" }} {{ $featuredURL = (.Resize $size).RelPermalink }} {{ end }} {{ end }} {{ end }} {{ $isParentList := eq (.Scratch.Get "scope") "list" }} {{ $shouldBlur := $.Params.layoutBackgroundBlur | default (or (and ($.Site.Params.article.layoutBackgroundBlur | default true) (not $isParentList)) (and ($.Site.Params.list.layoutBackgroundBlur | default true) ($isParentList)) ) }} {{ with $featuredURL }}
{{ end }}
{{ with $backgroundURL }} {{ $style := "" }} {{ $defaultPosition := cond $useDefault site.Params.imagePosition false }} {{ with $.Params.imagePosition | default $defaultPosition }} {{ $style = printf "object-position: %s;" . }} {{ end }} {{ end }}
{{ if $shouldBlur | default false }}
{{ $backgroundBlur := resources.Get "js/background-blur.js" }} {{ $backgroundBlur = $backgroundBlur | resources.Minify | resources.Fingerprint (.Site.Params.fingerprintAlgorithm | default "sha512") }} {{ end }}