{{- $assetBusting := partialCached "assetbusting.gotmpl" . }} {{- $faviconMatch := false }} {{- $svg := dict "ext" "svg" "type" "type=\"image/svg+xml\"" }} {{- $png := dict "ext" "png" "type" "type=\"image/png\"" }} {{- $ico := dict "ext" "ico" "type" "type=\"image/x-icon\" sizes=\"any\"" }} {{- $faviconTypes := slice $svg $png $ico }} {{- $faviconNames := slice "favicon" "logo" }} {{- range $faviconNames }} {{- $faviconName := . }} {{- range $faviconTypes }} {{- if fileExists (printf "/static/images/%s.%s" $faviconName .ext) }} {{- $faviconMatch = true }} <link href="{{ printf "images/%s.%s" $faviconName .ext | relURL }}{{ $assetBusting }}" rel="icon" {{ .type | safeHTMLAttr }}> {{- end }} {{- if (fileExists (printf "/static/images/%s-light.%s" $faviconName .ext)) }} {{- $faviconMatch = true }} <link href="{{ printf "images/%s-light.%s" $faviconName .ext | relURL }}{{ $assetBusting }}" rel="icon" {{ .type | safeHTMLAttr }} media="(prefers-color-scheme: light)"> {{- end }} {{- if (fileExists (printf "/static/images/%s-dark.%s" $faviconName .ext)) }} {{- $faviconMatch = true }} <link href="{{ printf "images/%s-dark.%s" $faviconName .ext | relURL }}{{ $assetBusting }}" rel="icon" {{ .type | safeHTMLAttr }} media="(prefers-color-scheme: dark)"> {{- end }} {{- end }} {{- if $faviconMatch }} {{- break }} {{- end }} {{- end }}