{{- $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/social/sortNetworks.html" (dict "networks" $networks "setups" $setups) "social-follow" -}}

<div class="ananke-socials">
  {{- range $setups -}}
    {{- $setup := . -}}
    {{- $network := $setup.slug -}}
    {{- $profile := index $config $network -}}
    {{- $rel := $profile.rel | default "" -}}
    {{- $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" -}}
    <a href="{{ $link }}" target="_blank" rel="noopener{{- with $rel }} {{ . -}}{{- end -}}"
        class="ananke-social-link link-transition {{ $network }} link dib z-999 pt3 pt0-l {{ $languageDirection }}"
        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 -}}
        {{- $icon := resources.Get (printf "ananke/socials/%s.svg" .) -}}
        {{- with $icon -}}
          <span class="icon">
            {{ .Content | safeHTML }}
            {{/* @todo indicator for missing or misconfigured icon */}}
          </span>
        {{- end -}}
      {{- else -}}
        {{- $label -}}
      {{- end -}}
      {{- with $config.follow.new_window_icon -}}
        {{- partial "new-window-icon.html" . -}}
      {{- end -}}
    </a>
  {{- end -}}
</div>
