mirror of https://github.com/theNewDynamic/gohugo-theme-ananke.git

Jeremy Mayeres
09.03.2025 e64f74c4929edbd8336d66fd81bdd36aa79828ee
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.
1 files deleted
2 files modified
49 ■■■■ changed files
layouts/partials/func/social/sortNetworks.html 23 ●●●●● patch | view | raw | blame | history
layouts/partials/social/follow.html 13 ●●●●● patch | view | raw | blame | history
layouts/partials/social/share.html 13 ●●●●● patch | view | raw | blame | history
layouts/partials/func/social/sortNetworks.html
File was deleted
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" -}}
<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">
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" -}}
  <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 -}}