From c2650cc239de2b896781ba9588fa72918839555d Mon Sep 17 00:00:00 2001 From: George Cushen Date: Sat, 3 Aug 2019 13:53:30 +0100 Subject: [PATCH] feat(widget): Tag Cloud: add taxonomy and font size options Enables the widget to be used for categories etc. and not only tags. Also fix tag ordering by title rather than by count (d0ec05a). Fix #1267 Fix d0ec05a --- exampleSite/content/home/tags.md | 8 ++++++++ layouts/partials/widgets/tag_cloud.html | 19 +++++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/exampleSite/content/home/tags.md b/exampleSite/content/home/tags.md index 56c048c0..6da5875c 100644 --- a/exampleSite/content/home/tags.md +++ b/exampleSite/content/home/tags.md @@ -9,6 +9,14 @@ title = "Popular Topics" subtitle = "" [content] + # Choose the taxonomy from `config.toml` to display (e.g. tags, categories) + taxonomy = "tags" + # Choose how many tags you would like to display (0 = all tags) count = 20 + +[design] + # Minimum and maximum font sizes (1.0 = 100%). + font_size_min = 0.7 + font_size_max = 2.0 +++ diff --git a/layouts/partials/widgets/tag_cloud.html b/layouts/partials/widgets/tag_cloud.html index af8b82ce..f8488cd9 100644 --- a/layouts/partials/widgets/tag_cloud.html +++ b/layouts/partials/widgets/tag_cloud.html @@ -1,5 +1,11 @@ +{{/* Pages Widget */}} + +{{/* Initialise */}} {{ $ := .root }} {{ $st := .page }} +{{ $taxonomy := $st.Params.content.taxonomy | default "tags" }} +{{ $fontSmall := $st.Params.design.font_size_min | default 0.8 }} +{{ $fontBig := $st.Params.design.font_size_max | default 2.5 }} {{ $items_count := $st.Params.content.count }} {{ if eq $items_count 0 }} @@ -8,6 +14,10 @@ {{ $items_count = $items_count | default 20 }} {{ end }} +{{/* Query */}} +{{ $tags := first $items_count (index site.Taxonomies $taxonomy).ByCount }} +{{ $count := len $tags }} +

{{ with $st.Title }}{{ . | markdownify | emojify }}{{ end }}

@@ -16,10 +26,7 @@
{{ with $st.Content }}{{ . }}{{ end }} - {{ if not (eq (len site.Taxonomies.tags) 0) }} - {{ $tags := first $items_count site.Taxonomies.tags.ByCount }} - {{ $fontSmall := 0.8 }} - {{ $fontBig := 2.5 }} + {{ if ne $count 0 }} {{ $fontDelta := sub $fontBig $fontSmall }} {{ $min := len (index ($tags).Reverse 0).Pages }} @@ -28,8 +35,8 @@ {{ $fontStep := div $fontDelta $delta }}
- {{ range $name, $taxonomy := $tags }} - {{ $tagCount := len $taxonomy.Pages }} + {{ range $name, $term := (sort $tags ".Page.Title" "asc") }} + {{ $tagCount := len $term.Pages }} {{ $weight := div (sub (math.Log $tagCount) (math.Log $min)) (sub (math.Log $max) (math.Log $min)) }} {{ $fontSize := add $fontSmall (mul (sub $fontBig $fontSmall) $weight) }} {{ .Page.Title }}