From e9edfa8f1c56d0014dd29ac8ed6e122a01b3f845 Mon Sep 17 00:00:00 2001 From: ZhenShuo Leo <98386542+ZhenShuo2021@users.noreply.github.com> Date: Wed, 18 Jun 2025 19:18:21 +0800 Subject: [PATCH 1/3] feat: support all types of sources for defaultSocialImage --- layouts/partials/head.html | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/layouts/partials/head.html b/layouts/partials/head.html index 424f8c98..ca9e70b3 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -109,12 +109,25 @@ {{ 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 */}} From fda569cb8b0e9436bcb8142e2dca8a32a4b05d5a Mon Sep 17 00:00:00 2001 From: ZhenShuo Leo <98386542+ZhenShuo2021@users.noreply.github.com> Date: Wed, 18 Jun 2025 19:22:25 +0800 Subject: [PATCH 2/3] fix: make head.html formattable --- .prettierignore | 1 - layouts/partials/head.html | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.prettierignore b/.prettierignore index 694b1bf2..78283304 100644 --- a/.prettierignore +++ b/.prettierignore @@ -33,7 +33,6 @@ layouts/partials/article-link/card.html layouts/partials/article-link/simple.html layouts/partials/header/basic.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 ca9e70b3..b71905da 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -149,7 +149,7 @@ {{ if templates.Exists "partials/extend-head.html" }} {{ 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" . }} {{ end }} From 62e5fc25649e5137afec637fd3a32498646a75b1 Mon Sep 17 00:00:00 2001 From: ZhenShuo Leo <98386542+ZhenShuo2021@users.noreply.github.com> Date: Wed, 18 Jun 2025 19:24:29 +0800 Subject: [PATCH 3/3] style: format head.html --- layouts/partials/head.html | 158 ++++++++++++++++++++++--------------- 1 file changed, 93 insertions(+), 65 deletions(-) diff --git a/layouts/partials/head.html b/layouts/partials/head.html index b71905da..67e9ad9b 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -1,115 +1,136 @@ - + {{ 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 */ -}} - {{- $images := .Resources.ByType "image" -}} {{- $socialImage := $images.GetMatch "*feature*" -}} @@ -124,42 +145,49 @@ {{- 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 - 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 }}