From eafc6e8f1756062b02b8c5ceea36a8f0c310d7a1 Mon Sep 17 00:00:00 2001 From: geekifan Date: Sat, 3 May 2025 13:12:55 +0800 Subject: [PATCH] fix: wrong post count in categories --- layouts/partials/js-selector.html | 15 ++- layouts/taxonomy/category.terms.html | 181 +++++++++++++-------------- 2 files changed, 98 insertions(+), 98 deletions(-) diff --git a/layouts/partials/js-selector.html b/layouts/partials/js-selector.html index b86ba9a..2a5d030 100644 --- a/layouts/partials/js-selector.html +++ b/layouts/partials/js-selector.html @@ -4,6 +4,13 @@ {{ if or (eq .RelPermalink "/") (eq .RelPermalink (relLangURL "/")) }} {{ $is_home = true }} {{ end }} +{{ $is_categories := and (eq .Kind "taxonomy") (eq .Type "categories") }} +{{ $is_category := and (eq .Kind "term") (eq .Type "categories") }} +{{ $is_tags := and (eq .Kind "taxonomy") (eq .Type "tags") }} +{{ $is_tag := and (eq .Kind "term") (eq .Type "tags") }} +{{ $is_post := eq .Type "post"}} +{{ $is_page := eq .Layout "page"}} +{{ $is_archives := eq .Layout "archives"}} {{- $jsOpts := dict "target" "es2015" "minify" (eq hugo.Environment "production") @@ -70,13 +77,13 @@ {{ $js := "commons" }} {{ if $is_home }} {{ $js = "home" }} -{{ else if eq .Layout "categories" }} +{{ else if $is_categories }} {{ $js = "categories" }} -{{ else if eq .Type "post" }} +{{ else if $is_post }} {{ $js = "post" }} -{{ else if eq .Layout "page" }} +{{ else if $is_page }} {{ $js = "page" }} -{{ else if or (eq .Layout "archives") (eq .Type "categories") (eq .Type "tags") }} +{{ else if or $is_archives $is_category $is_tag }} {{ $js = "misc" }} {{ end }} diff --git a/layouts/taxonomy/category.terms.html b/layouts/taxonomy/category.terms.html index 0c0c61a..782db01 100644 --- a/layouts/taxonomy/category.terms.html +++ b/layouts/taxonomy/category.terms.html @@ -1,114 +1,107 @@ - {{ define "main" }}

{{ i18n "tabs.categories" }}

-
- {{ $categories := .Site.Taxonomies.categories }} + {{ $allPages := where .Site.RegularPages "Type" "post" }} + + + {{ $parentCategories := slice }} + {{ range $allPages }} + {{ if gt (len .Params.categories) 0 }} + {{ $parentCategories = $parentCategories | append (index .Params.categories 0) }} + {{ end }} + {{ end }} + {{ $parentCategories = $parentCategories | uniq | sort }} + + + {{ range $index, $category := $parentCategories }} + {{ $parentName := . }} + {{ $subcategories := slice }} + {{ $parentPages := slice }} - - {{ $parentCategories := slice }} - {{ range $name, $taxonomy := $categories }} - {{ range $taxonomy.Pages }} - {{ if gt (len .Params.categories) 0 }} - {{ $parentCategories = $parentCategories | append (index .Params.categories 0) }} + + {{ range $allPages }} + {{ if gt (len .Params.categories) 0 }} + {{ if eq (index .Params.categories 0) $parentName }} + {{ $parentPages = $parentPages | append . }} + {{ if gt (len .Params.categories) 1 }} + {{ $subcategories = $subcategories | append (index .Params.categories 1) }} + {{ end }} {{ end }} {{ end }} {{ end }} - {{ $parentCategories = $parentCategories | uniq | sort }} - - - {{ range $parentCategories }} - {{ $parentName := . }} - {{ $subcategories := slice }} - {{ $parentPages := slice }} - - - {{ range $name, $taxonomy := $categories }} - {{ range $taxonomy.Pages }} - {{ if gt (len .Params.categories) 0 }} - {{ if eq (index .Params.categories 0) $parentName }} - {{ $parentPages = $parentPages | append . }} - {{ if gt (len .Params.categories) 1 }} - {{ $subcategories = $subcategories | append (index .Params.categories 1) }} + {{ $subcategories = $subcategories | uniq | sort }} + +
+
+ + + {{ $parentName }} + + {{ if gt (len $subcategories) 0 }} + {{ len $subcategories }} + {{ if gt (len $subcategories) 1 }} + {{ i18n "categories.category_measure" | default (i18n "categories.category_measure.plural") }}, + {{ else }} + {{ i18n "categories.category_measure" | default (i18n "categories.category_measure.singular") }}, {{ end }} {{ end }} - {{ end }} - {{ end }} - {{ end }} - {{ $subcategories = $subcategories | uniq | sort }} - -
-
- - - {{ $parentName }} - - {{ if gt (len $subcategories) 0 }} - {{ len $subcategories }} - {{ if gt (len $subcategories) 1 }} - subcategories, - {{ else }} - subcategory, - {{ end }} - {{ end }} - {{ len $parentPages }} - {{ if gt (len $parentPages) 1 }} - posts - {{ else }} - post - {{ end }} - + {{ len $parentPages }} + {{ if gt (len $parentPages) 1 }} + {{ i18n "categories.post_measure" | default (i18n "categories.post_measure.plural") }} + {{ else }} + {{ i18n "categories.post_measure" | default (i18n "categories.post_measure.singular") }} + {{ end }} - - {{ if gt (len $subcategories) 0 }} - - - - {{ else }} - - - - {{ end }} -
+ {{ if gt (len $subcategories) 0 }} -
-
    - {{ range $subcategories }} - {{ $subCategoryName := . }} - - - {{ $subPages := slice }} - {{ range $parentPages }} - {{ if gt (len .Params.categories) 1 }} - {{ if eq (index .Params.categories 1) $subCategoryName }} - {{ $subPages = $subPages | append . }} - {{ end }} - {{ end }} - {{ end }} - -
  • - - {{ $subCategoryName }} - - {{ len $subPages }} - {{ if gt (len $subPages) 1 }} - posts - {{ else }} - post - {{ end }} - -
  • - {{ end }} -
-
+ + {{ else }} + + + {{ end }}
- {{ end }} -
+ + {{ if gt (len $subcategories) 0 }} +
+
    + {{ range $subcategories }} + {{ $subCategoryName := . }} + + + {{ $subPages := slice }} + {{ range $parentPages }} + {{ if gt (len .Params.categories) 1 }} + {{ if eq (index .Params.categories 1) $subCategoryName }} + {{ $subPages = $subPages | append . }} + {{ end }} + {{ end }} + {{ end }} + +
  • + + {{ $subCategoryName }} + + {{ len $subPages }} + {{ if gt (len $subPages) 1 }} + {{ i18n "categories.post_measure" | default (i18n "categories.post_measure.plural") }} + {{ else }} + {{ i18n "categories.post_measure" | default (i18n "categories.post_measure.singular") }} + {{ end }} + +
  • + {{ end }} +
+
+ {{ end }} +
+ {{ end }}
{{ end }} \ No newline at end of file