diff --git a/.prettierignore b/.prettierignore index b243ca55..c128736f 100644 --- a/.prettierignore +++ b/.prettierignore @@ -32,7 +32,6 @@ layouts/partials/article-link/card-related.html layouts/partials/article-link/card.html layouts/partials/article-link/simple.html layouts/partials/hero/background.html -layouts/partials/head.html layouts/shortcodes/screenshot.html layouts/shortcodes/figure.html diff --git a/layouts/partials/head.html b/layouts/partials/head.html index 424f8c98..67e9ad9b 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -1,152 +1,193 @@ - + {{ with .Site.Language.Params.htmlCode | default .Site.LanguageCode }} - + {{ end }} - - + + + + {{/* Title */}} {{ if .IsHome -}} - {{ .Site.Title | emojify }} - + {{ .Site.Title | emojify }} + {{- else -}} - {{ .Title | emojify }} · {{ .Site.Title | emojify }} - + {{ .Title | emojify }} · {{ .Site.Title | emojify }} + {{- end }} + {{/* Metadata */}} {{ with (.Params.Summary | default .Params.Description) | default .Site.Params.description -}} - + {{- end }} {{ with .Params.Tags | default .Site.Params.keywords -}} - + {{- end }} {{ with .Site.Params.robots }} - + {{ end }} {{ with .Params.robots }} - + {{ end }} - + {{ range .AlternativeOutputFormats -}} - {{ printf ` - ` .Rel .MediaType.Type .RelPermalink ($.Site.Title | emojify) | - safeHTML }} + {{ printf ` + ` .Rel .MediaType.Type .RelPermalink ($.Site.Title | emojify) | + safeHTML + }} {{ end -}} + {{/* Asset bundles */}} {{ $assets := newScratch }} {{ $cssScheme := resources.Get (printf "css/schemes/%s.css" (.Site.Params.colorScheme | default "blowfish")) }} {{ if not $cssScheme }} - {{ $cssScheme = resources.Get "css/schemes/blowfish.css" }} + {{ $cssScheme = resources.Get "css/schemes/blowfish.css" }} {{ end }} {{ $assets.Add "css" (slice $cssScheme) }} {{ $cssMain := resources.Get "css/compiled/main.css" }} {{ $assets.Add "css" (slice $cssMain) }} {{ $cssCustom := resources.Get "css/custom.css" }} {{ if $cssCustom }} - {{ $assets.Add "css" (slice $cssCustom) }} + {{ $assets.Add "css" (slice $cssCustom) }} {{ end }} {{ $bundleCSS := $assets.Get "css" | resources.Concat "css/main.bundle.css" | resources.Minify | resources.Fingerprint - (.Site.Params.fingerprintAlgorithm | default "sha512") }} - + (.Site.Params.fingerprintAlgorithm | default "sha512") + }} + + {{ $jsAppearance := resources.Get "js/appearance.js" }} {{ $jsAppearance = $jsAppearance | resources.ExecuteAsTemplate "js/appearance.js" . | resources.Minify | resources.Fingerprint (.Site.Params.fingerprintAlgorithm | default "sha512") }} - {{ if .Site.Params.enableSearch | default false }} - {{ $jsFuse := resources.Get "lib/fuse/fuse.min.js" }} - {{ $jsSearch := resources.Get "js/search.js" }} - {{ $assets.Add "js" (slice $jsFuse $jsSearch) }} + {{ $jsFuse := resources.Get "lib/fuse/fuse.min.js" }} + {{ $jsSearch := resources.Get "js/search.js" }} + {{ $assets.Add "js" (slice $jsFuse $jsSearch) }} {{ end }} {{ if .Site.Params.enableCodeCopy | default false }} - {{ $jsCode := resources.Get "js/code.js" }} - {{ $assets.Add "js" (slice $jsCode) }} + {{ $jsCode := resources.Get "js/code.js" }} + {{ $assets.Add "js" (slice $jsCode) }} {{ end }} {{ if .Site.Params.rtl | default false }} - {{ $jsRTL := resources.Get "js/rtl.js" }} - {{ $assets.Add "js" (slice $jsRTL) }} + {{ $jsRTL := resources.Get "js/rtl.js" }} + {{ $assets.Add "js" (slice $jsRTL) }} {{ end }} {{ $jsMobileMenu := resources.Get "js/mobilemenu.js" }} {{ $assets.Add "js" (slice $jsMobileMenu) }} {{ if $assets.Get "js" }} - {{ $bundleJS := $assets.Get "js" | resources.Concat "js/main.bundle.js" | resources.Minify | resources.Fingerprint - (.Site.Params.fingerprintAlgorithm | default "sha512") }} - + {{ $bundleJS := $assets.Get "js" | resources.Concat "js/main.bundle.js" | resources.Minify | resources.Fingerprint + (.Site.Params.fingerprintAlgorithm | default "sha512") + }} + {{ end }} {{ if not .Site.Params.disableImageZoom | default true }} - {{ $zoomJS := resources.Get "lib/zoom/zoom.min.js" | resources.Fingerprint (.Site.Params.fingerprintAlgorithm | default "sha512") }} - + {{ $zoomJS := resources.Get "lib/zoom/zoom.min.js" | resources.Fingerprint (.Site.Params.fingerprintAlgorithm | default "sha512") }} + {{ end }} + {{/* Icons */}} {{ if templates.Exists "partials/favicons.html" }} - {{ partialCached "favicons.html" .Site }} + {{ partialCached "favicons.html" .Site }} {{ else }} - - - - + + + + {{ end }} + {{/* Site Verification */}} {{ with .Site.Params.verification.google }} - + {{ end }} {{ with .Site.Params.verification.bing }} - + {{ end }} {{ with .Site.Params.verification.pinterest }} - + {{ end }} {{ with .Site.Params.verification.yandex }} - + {{ end }} {{ with .Site.Params.verification.fediverse }} - + {{ end }} + {{/* Social */}} {{ template "_internal/opengraph.html" . }} {{ template "_internal/twitter_cards.html" . }} + {{- /* Main page always uses this; fallback elsewhere if no feature image */ -}} {{- /* See https://gohugo.io/templates/embedded/#open-graph */ -}} - {{ if not ($.Resources.GetMatch "*feature*") }} - {{ with .Site.Params.defaultSocialImage }} - - - {{ end }} - {{ end }} + {{- $images := .Resources.ByType "image" -}} + {{- $socialImage := $images.GetMatch "*feature*" -}} + + {{- if not $socialImage -}} + {{- with .Site.Params.defaultSocialImage -}} + {{- if or (strings.HasPrefix . "http:") (strings.HasPrefix . "https:") -}} + {{- $socialImage = resources.GetRemote . -}} + {{- else -}} + {{- $socialImage = resources.Get . -}} + {{- end -}} + {{- end -}} + {{- end -}} + + {{- with $socialImage -}} + + + {{- end -}} + {{/* Schema */}} {{ partial "schema.html" . }} + {{/* Me */}} {{ with .Site.Params.Author.name }} - {{ end }} + + {{ end }} {{ with .Site.Params.Author.links }} - {{ range $links := . }} - {{ range $name, $url := $links }} - {{ if not (strings.HasPrefix $url "mailto:") }} - {{ end }} - {{ end }} - {{ end }} + {{ range $links := . }} + {{ range $name, $url := $links }} + {{ if not (strings.HasPrefix $url "mailto:") }} + + {{ end }} + {{ end }} + {{ end }} {{ end }} + {{/* Vendor */}} {{ partial "vendor.html" . }} + {{/* Analytics */}} {{ partial "analytics/main.html" .Site }} + {{/* Extend head - eg. for custom analytics scripts, etc. */}} {{ if templates.Exists "partials/extend-head.html" }} - {{ partialCached "extend-head.html" .Site }} + {{ partialCached "extend-head.html" .Site }} {{ end }} - {{/* Uncached extend head - e.g. {{ with .Page.HasShortcode "gallery" }} do something {{ end }} */}} + + {{/* Uncached extend head - Example: https://gohugo.io/methods/page/hasshortcode/ */}} {{ if templates.Exists "partials/extend-head-uncached.html" }} - {{ partial "extend-head-uncached.html" . }} + {{ partial "extend-head-uncached.html" . }} {{ end }} - + {{/* Firebase */}} {{ with $.Site.Params.firebase }} - {{ if isset $.Site.Params "firebase" }} - - - + {{ if isset $.Site.Params "firebase" }} + + + - {{ end }} + {{ end }} {{ end }} {{/* Advertisement */}} {{ with .Site.Params.advertisement.adsense }} - + {{ end }}