473c7c14c6
You can't just cache the share links, that will result into every blog post having the same URL. Just use `partial` on the getShareLink.html. So now each post will show the correct URL to share the post via social media or alike. --------- Signed-off-by: Melroy van den Berg <melroy@melroy.org> Signed-off-by: Patrick Kollitsch <83281+davidsneighbour@users.noreply.github.com> Co-authored-by: Patrick Kollitsch <83281+davidsneighbour@users.noreply.github.com>
63 lines
2.5 KiB
HTML
63 lines
2.5 KiB
HTML
{{- $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" page "setup" $setup) }}
|
|
{{- $href := partial "func/social/getShareLink.html" $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 */}}
|