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

Patrick Kollitsch
24.58.2024 a5ff1b1e259220705722b6ffed0f70cb62c3f9e9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
{{- $context := . -}}
{{- $disabled := $context.Params.disable_share | default "false" -}}
{{- $config := site.Params.ananke.social -}}
{{- with $config.share.disable_share -}}
  {{- $disabled := . -}}
{{- end -}}
 
{{- if eq "false" $disabled -}}
 
  {{- $title := $context.Title -}}
  {{- $url := printf "%s" $context.Permalink | absLangURL -}}
 
  {{- $config := site.Params.ananke.social -}}
  {{- $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 := . -}}
      {{/* @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" -}}
        {{- continue -}}
        {{/* @todo notification into CLI that a network is configured but not supported */}}
      {{- end -}}
      {{- $options := (dict "context" $context "setup" $setup) }}
      {{- $href := partialCached "func/social/getShareLink.html" $options $options -}}
      <a href="{{ $href }}"
        class="ananke-social-link {{ $setup.slug }} no-underline"
        title="{{ $label }}" aria-label="{{ $label }}"
        target="_blank" rel="nofollow noopener noreferrer">
        {{ with $config.share.icons -}}
          {{/* @todo add the following lines to a partial, reused in social/follow.html */}}
          {{- with $setup.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 -}}
        {{- else -}}
          {{- $label -}}
        {{- end -}}
      </a>
    {{- end -}}
  </div>
 
{{- end -}} {{/* if eq "true" $disabled */}}