From e64f74c4929edbd8336d66fd81bdd36aa79828ee Mon Sep 17 00:00:00 2001 From: Jeremy Mayeres <1524722+jerr0328@users.noreply.github.com> Date: Sun, 9 Feb 2025 10:03:52 +0200 Subject: [PATCH] theme(fix): social follow/share using new config (#821) A recent commit changed the config for social to use a map instead of a list, this broke the social share/follow, though a quick fix seems to restore it and removes the need for sorting. Closes #808 I checked the wikipedia example from the original issue and it seems like this will also fix that. I'm not sure if you had anything else to fix, feel free to push to my branch. --- .../partials/func/social/sortNetworks.html | 23 ------------------- layouts/partials/social/follow.html | 13 ++++------- layouts/partials/social/share.html | 13 ++++------- 3 files changed, 8 insertions(+), 41 deletions(-) delete mode 100644 layouts/partials/func/social/sortNetworks.html diff --git a/layouts/partials/func/social/sortNetworks.html b/layouts/partials/func/social/sortNetworks.html deleted file mode 100644 index 370a577..0000000 --- a/layouts/partials/func/social/sortNetworks.html +++ /dev/null @@ -1,23 +0,0 @@ -{{- /* - -Sorting a list of social networks defined by the order in `networks`. -Only networks present in both `networks` and `setups` will be included. Items missing from `networks` are ignored. -Use `networks` to setup the order of the networks and which network to enable. - -Usage: {{ $setups = partials.IncludeCached "func/sortNetworks.html" (dict "networks" $networks "setups" $setups) }} - -See also `config/_default/params.toml` > `ananke.social` for details. - -*/ -}} -{{- $networks := .networks -}} -{{- $setups := .setups -}} -{{- $output := collections.Slice -}} -{{- range $networks -}} - {{- $network := . -}} - {{- range $setups -}} - {{- if compare.Eq .slug $network -}} - {{- $output = $output | collections.Append . -}} - {{- end -}} - {{- end -}} -{{- end -}} -{{- return $output -}} diff --git a/layouts/partials/social/follow.html b/layouts/partials/social/follow.html index 7c84a1b..de78f4d 100644 --- a/layouts/partials/social/follow.html +++ b/layouts/partials/social/follow.html @@ -2,16 +2,11 @@ {{- $config := site.Params.ananke.social -}} {{- $networks := $config.follow.networks -}} -{{- $setups := (collections.Where $config.networks "slug" "in" $networks) -}} -{{/* This here is an ugly workaround for GoHugo's missing sortByArray feature. - Let's cache it so it does not take away too much time. - PS: It's also a couple of years old, so maybe there is a better solution by now. */}} -{{- $setups = partials.IncludeCached "func/social/sortNetworks.html" (dict "networks" $networks "setups" $setups) "social-follow" -}}
- {{- range $setups -}} - {{- $setup := . -}} - {{- $network := $setup.slug -}} + {{- range $networks -}} + {{- $network := . -}} + {{- $setup := index $config.networks $network -}} {{- $profile := index $config $network -}} {{- $rel := $profile.rel | default "" -}} {{- $label := $profile.label | default $setup.label -}} @@ -27,7 +22,7 @@ title="follow on {{ $label }} - Opens in a new window" aria-label="follow on {{ $label }} - Opens in a new window"> {{/* @todo add the following lines to a partial, reused in social/share.html */}} - {{- with .icon -}} + {{- with $setup.icon -}} {{- $icon := resources.Get (printf "ananke/socials/%s.svg" .) -}} {{- with $icon -}} diff --git a/layouts/partials/social/share.html b/layouts/partials/social/share.html index 68e266d..3a59a1a 100644 --- a/layouts/partials/social/share.html +++ b/layouts/partials/social/share.html @@ -13,22 +13,17 @@ {{- $networks := $config.share.networks -}} {{- $hasLabel := $config.share.sharetext | default "true" -}} {{- $hasIcon := $config.share.icons | default "true" -}} - {{- $setups := (collections.Where $config.networks "slug" "in" $networks) -}} - - {{/* This here is an ugly workaround for GoHugo's missing sortByArray feature. - Let's cache it so it does not take away too much time. - PS: It's also a couple of years old, so maybe there is a better solution by now. */}} - {{- $setups = partials.IncludeCached "func/social/sortNetworks.html" (dict "networks" $networks "setups" $setups) "social-share" -}}
- {{- range $setups -}} - {{- $setup := . -}} + {{- range $networks -}} + {{- $network := . -}} + {{- $setup := index $config.networks $network -}} {{/* @todo i18n $sharetext := lang.Translate (fmt.Printf "share_on_%s" $setup.slug) */}} {{- $label := "" -}} {{ with $config.share.sharetext -}} {{- $label = printf "Share on %s" $setup.label -}} {{- end -}} - {{ if eq .share "false" | default "true" -}} + {{ if eq $setup.share "false" | default "true" -}} {{- continue -}} {{/* @todo notification into CLI that a network is configured but not supported */}} {{- end -}}