{{ $images := .Resources.ByType "image" }} {{ $backgroundImage := $images.GetMatch "*background*" }} {{ if not $backgroundImage }} {{ $backgroundImage = $images.GetMatch "*feature*" }} {{ end }} {{ if not $backgroundImage }} {{ $backgroundImage = $images.GetMatch "{*cover*,*thumbnail*}" }} {{ end }} {{ if and (not $backgroundImage) .Params.featureimage }} {{ $backgroundImage = resources.GetRemote .Params.featureimage }} {{ end }} {{ if not $backgroundImage }} {{ with .Site.Params.defaultBackgroundImage }} {{ if or (strings.HasPrefix . "http:") (strings.HasPrefix . "https:") }} {{ $backgroundImage = resources.GetRemote . }} {{ else }} {{ $backgroundImage = resources.Get . }} {{ end }} {{ end }} {{ end }} {{ $disableImageOptimization := .Page.Site.Params.disableImageOptimization | default false }} {{ if and ($backgroundImage) (not (or ($disableImageOptimization) (strings.HasSuffix $backgroundImage.Name ".svg"))) }} {{ $backgroundImage = $backgroundImage.Resize (print ($.Site.Params.backgroundImageWidth | default "1200") "x") }} {{ 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)) ) }} {{ $shouldAddHeaderSpace := $.Params.layoutBackgroundHeaderSpace | default (or (and ($.Site.Params.article.layoutBackgroundHeaderSpace | default true) (not $isParentList)) (and ($.Site.Params.list.layoutBackgroundHeaderSpace | default true) ($isParentList)) ) }} {{ with $backgroundImage }} {{ if $shouldAddHeaderSpace | default true}}
{{ end }} {{ $className := printf "background-image-%s" (md5 .RelPermalink) }}
{{ if $shouldBlur | default false }}
{{ $backgroundBlur := resources.Get "js/background-blur.js" }} {{ $backgroundBlur = $backgroundBlur | resources.Minify | resources.Fingerprint ($.Site.Params.fingerprintAlgorithm | default "sha512") }} {{ end }} {{ end }}