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.
This commit is contained in:
Jeremy Mayeres 2025-02-09 10:03:52 +02:00 committed by GitHub
parent 799886d396
commit e64f74c492
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 8 additions and 41 deletions

View File

@ -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 -}}

View File

@ -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" -}}
<div class="ananke-socials">
{{- 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 -}}
<span class="icon">

View File

@ -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" -}}
<div id="sharing" class="mt3 ananke-socials">
{{- 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 -}}