From e6d2d90a1b52079262d1543dffa4046ab17ee1df Mon Sep 17 00:00:00 2001 From: razonyang Date: Sun, 14 May 2023 12:00:20 +0800 Subject: [PATCH] perf: simplify the hashing method --- layouts/partials/search/assets/js-resource.html | 4 ++-- layouts/partials/search/functions/pages.html | 4 ++++ layouts/partials/search/functions/search-index-hash.html | 9 +++++++++ layouts/partials/search/functions/search-index-url.html | 3 --- layouts/partials/search/index.json.html | 5 ++--- 5 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 layouts/partials/search/functions/pages.html create mode 100644 layouts/partials/search/functions/search-index-hash.html delete mode 100644 layouts/partials/search/functions/search-index-url.html diff --git a/layouts/partials/search/assets/js-resource.html b/layouts/partials/search/assets/js-resource.html index bbf399d1455..6fda54a1a92 100644 --- a/layouts/partials/search/assets/js-resource.html +++ b/layouts/partials/search/assets/js-resource.html @@ -75,8 +75,8 @@ {{- range .Sites }} {{- $site := . }} {{- with .Home.OutputFormats.Get "SearchIndex" }} - {{- $idxCtx := dict "Site" $site "Index" . }} - {{- $indexURL := partialCached "search/functions/search-index-url" $idxCtx $idxCtx }} + {{- $hash := partialCached "search/functions/search-index-hash" $site $site }} + {{- $indexURL := printf "%s?v=%s" .RelPermalink $hash }} {{- $indices = $indices | append $indexURL }} {{- end }} {{- end }} diff --git a/layouts/partials/search/functions/pages.html b/layouts/partials/search/functions/pages.html new file mode 100644 index 00000000000..f5eb88207b3 --- /dev/null +++ b/layouts/partials/search/functions/pages.html @@ -0,0 +1,4 @@ +{{- $indexAllPages := default true .Site.Params.search.index_all_pages -}} +{{- $pages := cond $indexAllPages .Site.Pages .Site.RegularPages -}} +{{- $pages = where $pages "Params.noindex" "ne" true -}} +{{- return $pages }} diff --git a/layouts/partials/search/functions/search-index-hash.html b/layouts/partials/search/functions/search-index-hash.html new file mode 100644 index 00000000000..5ade9fcd7be --- /dev/null +++ b/layouts/partials/search/functions/search-index-hash.html @@ -0,0 +1,9 @@ +{{/* This hashing function just calculate the number of pages and the lastmod time. */}} +{{- $ctx := dict "Site" . }} +{{- $pages := partialCached "search/functions/pages" $ctx $ctx -}} +{{- $hash := printf "total=%d" $pages.Len }} +{{- $latest := first 1 $pages.ByLastmod.Reverse }} +{{- with index $latest 0 }} + {{- $hash = printf "%s&lastmod=%d" $hash .Lastmod.Unix }} +{{- end }} +{{- return ($hash | md5) }} diff --git a/layouts/partials/search/functions/search-index-url.html b/layouts/partials/search/functions/search-index-url.html deleted file mode 100644 index 05f47a42575..00000000000 --- a/layouts/partials/search/functions/search-index-url.html +++ /dev/null @@ -1,3 +0,0 @@ -{{- $ctx := dict "Site" .Site }} -{{- $hash := partialCached "search/index.json" $ctx $ctx | md5 }} -{{- return (printf "%s?v=%s" .Index.RelPermalink $hash) }} diff --git a/layouts/partials/search/index.json.html b/layouts/partials/search/index.json.html index 0680ab941e2..0ba16ed206e 100644 --- a/layouts/partials/search/index.json.html +++ b/layouts/partials/search/index.json.html @@ -1,9 +1,8 @@ {{- $items := slice -}} {{- $indexContent := default false .Site.Params.search.index_content -}} {{- $years := true }} -{{- $indexAllPages := default true .Site.Params.search.index_all_pages -}} -{{- $pages := cond $indexAllPages .Site.Pages .Site.RegularPages -}} -{{- $pages = where $pages "Params.noindex" "ne" true -}} +{{- $pagesCtx := dict "Site" .Site }} +{{- $pages := partialCached "search/functions/pages" $pagesCtx $pagesCtx -}} {{- range $pages -}} {{- $page := . -}} {{- $item := newScratch -}}