summaryrefslogtreecommitdiff
path: root/layouts/taxonomy.html
diff options
context:
space:
mode:
authorEltrac <hi@guhub.cn>2025-07-14 19:05:44 +0800
committerEltrac <hi@guhub.cn>2025-07-14 19:05:44 +0800
commit3cb68b6d5231ac9932b521dee767aae19ae1ca60 (patch)
treed19a8819ab59b68498c049b270582c5a30371e9d /layouts/taxonomy.html
parent54b306460dd67be4c0f41dee3d8ec5d6014178a7 (diff)
refactor: keep layouts folder structure up to standards
Former-commit-id: 44c7def3f6958550ccf965971f1819c1d6c514f1
Diffstat (limited to 'layouts/taxonomy.html')
-rw-r--r--layouts/taxonomy.html82
1 files changed, 82 insertions, 0 deletions
diff --git a/layouts/taxonomy.html b/layouts/taxonomy.html
new file mode 100644
index 00000000..ef8f515f
--- /dev/null
+++ b/layouts/taxonomy.html
@@ -0,0 +1,82 @@
+{{ define "main" }}
+<article class="taxonomy">
+ {{ partial "header.html" . }}
+ {{ partial "components/postnav.html" . }}
+
+ <!-- Display Tags -->
+ <section class="taxonomy-tags">
+ {{ $categorizedTags := dict }}
+ {{ $uncategorizedTags := slice }}
+
+ <!-- Group tags by category -->
+ {{ range $tagName, $tagPages := .Site.Taxonomies.tags }}
+ {{ $tagPage := site.GetPage (printf "/tags/%s" $tagName) }}
+ {{ $tagData := dict "Name" $tagName "Count" (len $tagPages) "Page" $tagPage }}
+ {{ if $tagPage.Params.category }}
+ {{ $category := $tagPage.Params.category }}
+ {{ $categoryTags := index $categorizedTags $category | default slice }}
+ {{ $categoryTags = $categoryTags | append $tagData }}
+ {{ $categorizedTags = merge $categorizedTags (dict $category $categoryTags) }}
+ {{ else }}
+ {{ $uncategorizedTags = $uncategorizedTags | append $tagData }}
+ {{ end }}
+ {{ end }}
+
+ <!-- Sort tags by count -->
+ {{ $uncategorizedTags = sort $uncategorizedTags "Count" "desc" }}
+ {{ range $category, $categoryTags := $categorizedTags }}
+ {{ $categorizedTags = merge $categorizedTags (dict $category (sort $categoryTags "Count" "desc")) }}
+ {{ end }}
+
+ <!-- Display uncategorized tags first -->
+ {{ if $uncategorizedTags }}
+ <div class="taxonomy-tags">
+ {{ range $uncategorizedTags }}
+ <a href="{{ .Page.RelPermalink }}"
+ class="taxonomy-tags-item{{ if lt .Count 4 }} dimmed{{ end }}">
+ {{ if .Page.Params.icon }}
+ {{ if or (hasPrefix .Page.Params.icon "http://") (hasPrefix .Page.Params.icon "https://") }}
+ <span class="tag-icon">
+ <img src="{{ .Page.Params.icon }}" alt="{{ .Page.LinkTitle }}"
+ style="height:1em;width:1em">
+ </span>
+ {{ else }}
+ <span class="tag-icon">{{ .Page.Params.icon }}</span>
+ {{ end }}
+ {{ end }}
+ <span class="tag-name">{{ if not .Page.Params.icon }}#{{ end }}{{ .Page.LinkTitle }}</span>
+ <span class="tag-count">{{ .Count }}</span>
+ </a>
+ {{ end }}
+ </div>
+ {{ end }}
+
+ <!-- Display categorized tags -->
+ {{ range $category, $categoryTags := $categorizedTags }}
+ <div class="taxonomy-category">
+ <h3 class="taxonomy-category-title">{{ $category }}</h3>
+ <div class="taxonomy-tags">
+ {{ range $categoryTags }}
+ <a href="{{ .Page.RelPermalink }}"
+ class="taxonomy-tags-item{{ if lt .Count 4 }} dimmed{{ end }}">
+ {{ if .Page.Params.icon }}
+ {{ if or (hasPrefix .Page.Params.icon "http://") (hasPrefix .Page.Params.icon "https://") }}
+ <span class="tag-icon">
+ <img src="{{ .Page.Params.icon }}" alt="{{ .Page.LinkTitle }}"
+ style="height:1em;width:1em">
+ </span>
+ {{ else }}
+ <span class="tag-icon">{{ .Page.Params.icon }}</span>
+ {{ end }}
+ {{ end }}
+ <span class="tag-name">{{ if not .Page.Params.icon }}#{{ end }}{{ .Page.LinkTitle }}</span>
+ <span class="tag-count">{{ .Count }}</span>
+ </a>
+ {{ end }}
+ </div>
+ </div>
+ {{ end }}
+ </section>
+</article>
+{{ partial "footer.html" . }}
+{{ end }}