Skip to content

Commit

Permalink
theme(feat): social media follow links
Browse files Browse the repository at this point in the history
  • Loading branch information
davidsneighbour committed Oct 20, 2024
1 parent c672ad4 commit 4f3e709
Show file tree
Hide file tree
Showing 10 changed files with 113 additions and 21 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,4 @@ resources/_gen/
.wireit
.favorites.json
*.code-workspace
config/gargulus
1 change: 1 addition & 0 deletions assets/ananke/socials/envelope.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
33 changes: 33 additions & 0 deletions config/_default/params.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
[ananke.social]
icon_path = "ananke/socials/%s.svg"

[ananke.social.follow]
new_window_icon = false # show a little "opens in new window" icon next to the link
networks = [
"facebook",
"bluesky",
"linkedin"
]

# social media network setups
[[ananke.social.networks]]
slug = "facebook"
label = "Facebook"
profile = "https://www.facebook.com/%s"
icon = "facebook" # font awesome brand icon name

[[ananke.social.networks]]
slug = "bluesky"
label = "Bluesky"
profile = "https://bsky.app/profile/%s"
icon = "bluesky" # font awesome brand icon name

[[ananke.social.networks]]
slug = "linkedin"
label = "LinkedIn"
profile = "http://linkedin.com/in/%s"
icon = "linkedin" # font awesome brand icon name

# optional config parameters
# [[ananke.social.networks]]
# rel = "noopener" # set to noopener by default, could contain `me` and other values
12 changes: 9 additions & 3 deletions exampleSite/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,12 @@ description = "The last theme you'll ever need. Maybe."
background_color_class = "bg-black"
recent_posts_number = 3

[[params.ananke_socials]]
name = "twitter"
url = "https://twitter.com/GoHugoIO"
[params.ananke.social]
[params.ananke.social.facebook]
username = "patrick.kollitsch"

[params.ananke.social.linkedin]
username = "patrickkollitsch"

[params.ananke.social.bluesky]
username = "kollitsch.dev"
2 changes: 1 addition & 1 deletion layouts/partials/site-footer.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
<a class="f4 fw4 hover-white no-underline white-70 dn dib-ns pv2 ph3" href="{{ .Site.Home.Permalink }}" >
&copy; {{ with .Site.Copyright | default .Site.Title }} {{ . | safeHTML }} {{ now.Format "2006"}} {{ end }}
</a>
<div>{{ partial "social-follow.html" . }}</div>
<div>{{ partialCached "social/follow.html" . }}</div>
</div>
</footer>
2 changes: 1 addition & 1 deletion layouts/partials/site-navigation.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
{{ end }}
</ul>
{{ end }}
{{ partialCached "social-follow.html" . }}
{{ partialCached "social/follow.html" . }}
</div>
</div>
</nav>
14 changes: 0 additions & 14 deletions layouts/partials/social-follow.html

This file was deleted.

2 changes: 1 addition & 1 deletion layouts/partials/social-share.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

{{ $facebook_href := printf "https://www.facebook.com/sharer.php?u=%s" $url }}
{{ $twitter_href := printf "https://twitter.com/intent/tweet?url=%s&text=%s" $url $title }}
{{ with site.Social.twitter }}
{{ with site.Params.Social.twitter }}
{{ $twitter_href = printf "%s&via=%s" $twitter_href . }}
{{ end }}
{{ $linkedin_href := printf "https://www.linkedin.com/shareArticle?mini=true&url=%s&title=%s" $url $title }}
Expand Down
65 changes: 65 additions & 0 deletions layouts/partials/social/follow.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
{{- $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" -}}

<div class="ananke-socials">
{{- range $setups -}}
{{- $setup := . -}}
{{- $network := $setup.slug -}}
{{- $profile := index $config $network -}}
{{- $rel := $setup.rel | default "noopener" -}}
{{- $link := (printf $setup.profile $profile.username) -}}
{{- $languageDirection := cond (eq $.Site.Language.LanguageDirection "rtl") "ml1" "mr1" -}}
<a href="{{ $link }}" target="_blank" rel="{{ $rel }}"
class="{{ .name }} ananke-social-link link-transition stackoverflow 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">
{{- 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>

{{ 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 -}}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
"command": "commit-and-tag-version --sign -a -t \"v\" --releaseCommitMessageFormat \"chore(release): v{{currentTag}}\" --prerelease prerelease -- --no-verify"
},
"server": {
"command": "cd exampleSite; rm -rf public; hugo server -D -E -F --disableFastRender --verbose --logLevel debug --debug --tlsAuto --panicOnWarning"
"command": "cd exampleSite; rm -rf public; hugo server -D -E -F --environment gargulus --disableFastRender --verbose --logLevel debug --debug --tlsAuto --panicOnWarning"
}
}
}

0 comments on commit 4f3e709

Please sign in to comment.