{{- $context := . -}} {{- $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/sortNetworks.html" (dict "networks" $networks "setups" $setups) "social-follow" -}}
{{- range $setups -}} {{- $setup := . -}} {{- $network := $setup.slug -}} {{- $profile := index $config $network -}} {{- $rel := $setup.rel | default "noopener" -}} {{- $label := $profile.label | default $setup.label -}} {{- $link := (printf $setup.profile $profile.username) -}} {{- with $profile.profilelink -}} {{- $link = $profile.profilelink -}} {{- end -}} {{- $languageDirection := cond (eq $.Site.Language.LanguageDirection "rtl") "ml1" "mr1" -}} {{- with .icon -}} {{- $icon := resources.Get (printf "ananke/socials/%s.svg" .) -}} {{- with $icon -}} {{ .Content | safeHTML }} {{/* @todo indicator for missing or misconfigured icon */}} {{- end -}} {{- else -}} {{- $label -}} {{- end -}} {{- with $config.follow.new_window_icon -}} {{- partial "new-window-icon.html" . -}} {{- end -}} {{- end -}}
{{ define "partials/func/sortNetworks.html" }} {{- /* 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 -}} {{- end -}}