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 }}