From 2c9f1af5b2c30a41263500eceb84e338681cc71b Mon Sep 17 00:00:00 2001 From: ZhenShuo Leo <98386542+ZhenShuo2021@users.noreply.github.com> Date: Wed, 1 Oct 2025 13:36:11 +0800 Subject: [PATCH] refactor(head): remove unnecessary newScratch --- layouts/partials/head.html | 94 ++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 54 deletions(-) diff --git a/layouts/partials/head.html b/layouts/partials/head.html index e12a7bf4..8ba05708 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -37,83 +37,71 @@ }} {{ 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" }} - {{ 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) }} + {{ $alg := .Site.Params.fingerprintAlgorithm | default "sha512" }} + + {{/* CSS */}} + {{ $cssResources := slice }} + {{ $schemeName := .Site.Params.colorScheme | default "blowfish" }} + {{ $cssScheme := resources.Get (printf "css/schemes/%s.css" $schemeName) | default (resources.Get "css/schemes/blowfish.css") }} + {{ $cssResources = $cssResources | append $cssScheme }} + {{ $cssResources = $cssResources | append (resources.Get "css/compiled/main.css") }} + {{ with resources.Get "css/custom.css" }} + {{ $cssResources = $cssResources | append . }} {{ end }} {{ if not .Site.Params.disableImageZoom | default true }} - {{ $cssZoom := resources.Get "lib/zoom/style.css" }} - {{ $assets.Add "css" (slice $cssZoom) }} + {{ $cssResources = $cssResources | append (resources.Get "lib/zoom/style.css") }} {{ end }} - {{ $bundleCSS := $assets.Get "css" | resources.Concat "css/main.bundle.css" | resources.Minify | resources.Fingerprint - (.Site.Params.fingerprintAlgorithm | default "sha512") - }} + {{ $bundleCSS := $cssResources | resources.Concat "css/main.bundle.css" | resources.Minify | resources.Fingerprint $alg }} - {{ $jsAppearance := resources.Get "js/appearance.js" }} - {{ $jsAppearance = $jsAppearance | resources.ExecuteAsTemplate "js/appearance.js" . | resources.Minify | resources.Fingerprint (.Site.Params.fingerprintAlgorithm | default "sha512") }} + {{/* JS loaded immediately */}} + {{ $jsAppearance := resources.Get "js/appearance.js" | resources.ExecuteAsTemplate "js/appearance.js" . | resources.Minify | resources.Fingerprint $alg }} - {{ if site.Params.footer.showScrollToTop | default true }} - {{ $jsToTop := resources.Get "js/scroll-to-top.js" }} - {{ $assets.Add "js" (slice $jsToTop) }} - {{ end }} - {{ if .Site.Params.enableA11y | default false }} - {{ $jsA11y := resources.Get "js/a11y.js" }} - {{ $jsA11y = $jsA11y | resources.Minify | resources.Fingerprint (site.Params.fingerprintAlgorithm | default "sha512") }} + {{ $enableA11y := .Site.Params.enableA11y | default false }} + {{ if $enableA11y }} + {{ $jsA11y := resources.Get "js/a11y.js" | resources.Minify | resources.Fingerprint $alg }} {{ end }} - {{ $shouldIncludeZenMode := or (.Site.Params.enableA11y | default false) (.Params.showZenMode | default (.Site.Params.article.showZenMode | default false)) }} + {{ $showZenMode := .Params.showZenMode | default (.Site.Params.article.showZenMode | default false) }} + {{ $shouldIncludeZenMode := or $enableA11y $showZenMode }} {{ if and .IsPage $shouldIncludeZenMode }} - {{ $jsZenMode := resources.Get "js/zen-mode.js" }} - {{ $jsZenMode = $jsZenMode | resources.Minify | resources.Fingerprint (.Site.Params.fingerprintAlgorithm | default "sha512") }} + {{ $jsZenMode := resources.Get "js/zen-mode.js" | resources.Minify | resources.Fingerprint $alg }} {{ end }} + {{ if not .Site.Params.disableImageZoom | default true }} + {{ $zoomJS := resources.Get "lib/zoom/zoom.min.umd.js" | resources.Fingerprint $alg }} + + {{ end }} + + {{/* JS deferred */}} + {{ $jsResources := slice }} {{ if site.Params.footer.showScrollToTop | default true }} - {{ $jsToTop := resources.Get "js/scroll-to-top.js" }} - {{ $assets.Add "js" (slice $jsToTop) }} + {{ $jsResources = $jsResources | append (resources.Get "js/scroll-to-top.js") }} {{ end }} {{ 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) }} + {{ $jsResources = $jsResources | append (resources.Get "lib/fuse/fuse.min.js") | append (resources.Get "js/search.js") }} {{ end }} {{ if .Site.Params.enableCodeCopy | default false }} - {{ $jsCode := resources.Get "js/code.js" }} - {{ $assets.Add "js" (slice $jsCode) }} + {{ $jsResources = $jsResources | append (resources.Get "js/code.js") }} {{ end }} {{ if .Site.Params.rtl | default false }} - {{ $jsRTL := resources.Get "js/rtl.js" }} - {{ $assets.Add "js" (slice $jsRTL) }} + {{ $jsResources = $jsResources | append (resources.Get "js/rtl.js") }} {{ end }} - {{ $jsMobileMenu := resources.Get "js/mobilemenu.js" }} - {{ $assets.Add "js" (slice $jsMobileMenu) }} - {{ $buttonLikes := resources.Get "js/button-likes.js" }} - {{ $assets.Add "js" (slice $buttonLikes) }} - {{ $katexRender := resources.Get "js/katex-render.js" }} - {{ $assets.Add "js" (slice $katexRender) }} - {{ if $assets.Get "js" }} - {{ $bundleJS := $assets.Get "js" | resources.Concat "js/main.bundle.js" | resources.Minify | resources.Fingerprint - (.Site.Params.fingerprintAlgorithm | default "sha512") - }} + {{ $jsResources = $jsResources | append (resources.Get "js/mobilemenu.js") }} + {{ $jsResources = $jsResources | append (resources.Get "js/button-likes.js") }} + {{ $jsResources = $jsResources | append (resources.Get "js/katex-render.js") }} + {{ if $jsResources }} + {{ $bundleJS := $jsResources | resources.Concat "js/main.bundle.js" | resources.Minify | resources.Fingerprint $alg }} {{ end }} - {{ if not .Site.Params.disableImageZoom | default true }} - {{ $zoomJS := resources.Get "lib/zoom/zoom.min.umd.js" | resources.Fingerprint (.Site.Params.fingerprintAlgorithm | default "sha512") }} - - {{ end }} {{/* Icons */}} {{ if templates.Exists "partials/favicons.html" }} @@ -241,7 +225,9 @@ {{/* Advertisement */}} {{ with .Site.Params.advertisement.adsense }} - + {{ end }}