fix: wrong post count in categories

This commit is contained in:
geekifan
2025-05-03 13:12:55 +08:00
parent 50d5904e96
commit eafc6e8f17
2 changed files with 98 additions and 98 deletions

View File

@ -4,6 +4,13 @@
{{ if or (eq .RelPermalink "/") (eq .RelPermalink (relLangURL "/")) }} {{ if or (eq .RelPermalink "/") (eq .RelPermalink (relLangURL "/")) }}
{{ $is_home = true }} {{ $is_home = true }}
{{ end }} {{ 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 {{- $jsOpts := dict
"target" "es2015" "target" "es2015"
"minify" (eq hugo.Environment "production") "minify" (eq hugo.Environment "production")
@ -70,13 +77,13 @@
{{ $js := "commons" }} {{ $js := "commons" }}
{{ if $is_home }} {{ if $is_home }}
{{ $js = "home" }} {{ $js = "home" }}
{{ else if eq .Layout "categories" }} {{ else if $is_categories }}
{{ $js = "categories" }} {{ $js = "categories" }}
{{ else if eq .Type "post" }} {{ else if $is_post }}
{{ $js = "post" }} {{ $js = "post" }}
{{ else if eq .Layout "page" }} {{ else if $is_page }}
{{ $js = "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" }} {{ $js = "misc" }}
{{ end }} {{ end }}

View File

@ -1,33 +1,28 @@
{{ define "main" }} {{ define "main" }}
<article class="px-1"> <article class="px-1">
<h1 class="dynamic-title"> <h1 class="dynamic-title">
{{ i18n "tabs.categories" }} {{ i18n "tabs.categories" }}
</h1> </h1>
<div class="content"> <div class="content">
<div class="container"> {{ $allPages := where .Site.RegularPages "Type" "post" }}
{{ $categories := .Site.Taxonomies.categories }}
<!-- 首先收集所有唯一的父分类 --> <!-- get all parent categories -->
{{ $parentCategories := slice }} {{ $parentCategories := slice }}
{{ range $name, $taxonomy := $categories }} {{ range $allPages }}
{{ range $taxonomy.Pages }}
{{ if gt (len .Params.categories) 0 }} {{ if gt (len .Params.categories) 0 }}
{{ $parentCategories = $parentCategories | append (index .Params.categories 0) }} {{ $parentCategories = $parentCategories | append (index .Params.categories 0) }}
{{ end }} {{ end }}
{{ end }} {{ end }}
{{ end }}
{{ $parentCategories = $parentCategories | uniq | sort }} {{ $parentCategories = $parentCategories | uniq | sort }}
<!-- 然后为每个父分类创建卡片 --> <!-- create card for each parent category -->
{{ range $parentCategories }} {{ range $index, $category := $parentCategories }}
{{ $parentName := . }} {{ $parentName := . }}
{{ $subcategories := slice }} {{ $subcategories := slice }}
{{ $parentPages := slice }} {{ $parentPages := slice }}
<!-- 收集与此父分类相关的所有页面和子分类 --> <!-- get all pages and subcategories related to the parent category -->
{{ range $name, $taxonomy := $categories }} {{ range $allPages }}
{{ range $taxonomy.Pages }}
{{ if gt (len .Params.categories) 0 }} {{ if gt (len .Params.categories) 0 }}
{{ if eq (index .Params.categories 0) $parentName }} {{ if eq (index .Params.categories 0) $parentName }}
{{ $parentPages = $parentPages | append . }} {{ $parentPages = $parentPages | append . }}
@ -37,11 +32,10 @@
{{ end }} {{ end }}
{{ end }} {{ end }}
{{ end }} {{ end }}
{{ end }}
{{ $subcategories = $subcategories | uniq | sort }} {{ $subcategories = $subcategories | uniq | sort }}
<div class="card categories mb-3"> <div class="card categories mb-3">
<div class="card-header d-flex justify-content-between hide-border-bottom"> <div id="h_{{ $index }}" class="card-header d-flex justify-content-between hide-border-bottom">
<span class="ms-2"> <span class="ms-2">
<i class="far fa-folder{{ if gt (len $subcategories) 0 }}-open{{ end }} fa-fw"></i> <i class="far fa-folder{{ if gt (len $subcategories) 0 }}-open{{ end }} fa-fw"></i>
<a href="{{ "/categories/" | relLangURL }}{{ $parentName | urlize }}" class="mx-2">{{ $parentName }}</a> <a href="{{ "/categories/" | relLangURL }}{{ $parentName | urlize }}" class="mx-2">{{ $parentName }}</a>
@ -49,22 +43,22 @@
{{ if gt (len $subcategories) 0 }} {{ if gt (len $subcategories) 0 }}
{{ len $subcategories }} {{ len $subcategories }}
{{ if gt (len $subcategories) 1 }} {{ if gt (len $subcategories) 1 }}
subcategories, {{ i18n "categories.category_measure" | default (i18n "categories.category_measure.plural") }},
{{ else }} {{ else }}
subcategory, {{ i18n "categories.category_measure" | default (i18n "categories.category_measure.singular") }},
{{ end }} {{ end }}
{{ end }} {{ end }}
{{ len $parentPages }} {{ len $parentPages }}
{{ if gt (len $parentPages) 1 }} {{ if gt (len $parentPages) 1 }}
posts {{ i18n "categories.post_measure" | default (i18n "categories.post_measure.plural") }}
{{ else }} {{ else }}
post {{ i18n "categories.post_measure" | default (i18n "categories.post_measure.singular") }}
{{ end }} {{ end }}
</span> </span>
</span> </span>
{{ if gt (len $subcategories) 0 }} {{ if gt (len $subcategories) 0 }}
<a href="#sub-{{ $parentName | anchorize }}" data-bs-toggle="collapse" aria-expanded="true"> <a href="#l_{{ $index }}" data-bs-toggle="collapse" aria-expanded="false" aria-label="{{ $parentName }}-trigger" class="category-trigger hide-border-bottom">
<i class="fas fa-fw fa-angle-down"></i> <i class="fas fa-fw fa-angle-down"></i>
</a> </a>
{{ else }} {{ else }}
@ -75,12 +69,12 @@
</div> </div>
{{ if gt (len $subcategories) 0 }} {{ if gt (len $subcategories) 0 }}
<div id="sub-{{ $parentName | anchorize }}" class="collapse show"> <div id="l_{{ $index }}" class="collapse show">
<ul class="list-group list-group-flush"> <ul class="list-group">
{{ range $subcategories }} {{ range $subcategories }}
{{ $subCategoryName := . }} {{ $subCategoryName := . }}
<!-- 查找子分类的文章 --> <!-- get pages related to the subcategories -->
{{ $subPages := slice }} {{ $subPages := slice }}
{{ range $parentPages }} {{ range $parentPages }}
{{ if gt (len .Params.categories) 1 }} {{ if gt (len .Params.categories) 1 }}
@ -96,9 +90,9 @@
<span class="text-muted small font-weight-light"> <span class="text-muted small font-weight-light">
{{ len $subPages }} {{ len $subPages }}
{{ if gt (len $subPages) 1 }} {{ if gt (len $subPages) 1 }}
posts {{ i18n "categories.post_measure" | default (i18n "categories.post_measure.plural") }}
{{ else }} {{ else }}
post {{ i18n "categories.post_measure" | default (i18n "categories.post_measure.singular") }}
{{ end }} {{ end }}
</span> </span>
</li> </li>
@ -109,6 +103,5 @@
</div> </div>
{{ end }} {{ end }}
</div> </div>
</div>
</article> </article>
{{ end }} {{ end }}