diff options
| author | Eltrac <hi@guhub.cn> | 2025-07-14 19:05:44 +0800 |
|---|---|---|
| committer | Eltrac <hi@guhub.cn> | 2025-07-14 19:05:44 +0800 |
| commit | 3cb68b6d5231ac9932b521dee767aae19ae1ca60 (patch) | |
| tree | d19a8819ab59b68498c049b270582c5a30371e9d /layouts/taxonomy.html | |
| parent | 54b306460dd67be4c0f41dee3d8ec5d6014178a7 (diff) | |
refactor: keep layouts folder structure up to standards
Former-commit-id: 44c7def3f6958550ccf965971f1819c1d6c514f1
Diffstat (limited to 'layouts/taxonomy.html')
| -rw-r--r-- | layouts/taxonomy.html | 82 |
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 }} |
