From bde44fadf20a1f91a466653f9552ce8bd658e2f9 Mon Sep 17 00:00:00 2001
From: Simon Späti <simu@sspaeti.com>
Date: Tue, 07 Feb 2023 08:16:15 +0000
Subject: [PATCH] feat: Adding Twitter and Social image preview including description (#207)
---
layouts/partials/head.html | 42 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/layouts/partials/head.html b/layouts/partials/head.html
index 8efccb1..5c8d661 100644
--- a/layouts/partials/head.html
+++ b/layouts/partials/head.html
@@ -1,6 +1,7 @@
<!-- set data/config yaml file based on website language -->
{{ $config := cond (eq $.Site.Language.Lang "en") "config" (printf "config.%s" $.Site.Language.Lang) }}
{{ $data := index $.Site.Data $config }}
+{{.Site.BaseURL}}icon.png
<head>
<!-- Meta tags -->
<meta charset="UTF-8" />
@@ -8,6 +9,23 @@
name="description"
content="{{if .IsHome}}{{$data.description | default $.Site.Data.config.description}}{{else}}{{.Summary}}{{end}}"
/>
+ <meta property="og:title" content="{{ .Title }}">
+ <meta property="og:type" content="website">
+ <meta property="og:image" content="{{.Site.BaseURL}}icon.png">
+ <meta property="og:url" content="{{ .Permalink }}">
+ <meta property="og:width" content="200">
+ <meta property="og:height" content="200">
+ <meta name="twitter:card" content="summary" />
+ <meta name="twitter:title" content="{{ .Title }}" />
+ <meta name="twitter:description" content="{{if .IsHome}}{{$data.description | default $.Site.Data.config.description}}{{else}}{{.Summary}}{{end}}" />
+ <meta name="twitter:image" content="{{.Site.BaseURL}}icon.png">
+ {{ range $data.links }}
+ {{ if strings.Contains .link "twitter.com" }}
+ {{ $twitter_handle := index (split .link "/") (sub (len (split .link "/")) 1) }}
+ <meta name="twitter:site" content="{{ $twitter_handle }}" />
+ {{ end }}
+ {{ end }}
+
<title>
{{ if .Title }}{{ .Title }}{{ else }}{{ $data.page_title | default $.Site.Data.config.page_title }}{{
end }}
@@ -160,6 +178,29 @@
)
}
{{end}}
+
+ // analytics
+ function clickHandler(evt) {
+ const target = evt.target
+ const classNames = target.className.split(" ")
+ const broken = classNames.includes("broken")
+ const internal = classNames.includes("internal-link")
+ plausible("Link Click", {
+ props: {
+ href: target.href,
+ broken,
+ internal,
+ graph: false,
+ }
+ })
+ }
+
+ const links = document.querySelectorAll("a")
+ for (link of links) {
+ if (link.className.includes("root-title")) {
+ link.addEventListener('click', clickHandler, {once: true})
+ }
+ }
}
const init = (doc = document) => {
@@ -207,4 +248,5 @@
{{end}}
{{ $trimmedURL := trim (index (split .Site.BaseURL "://") 1) "/" }}
<script defer data-domain="{{$trimmedURL}}" src="https://plausible.io/js/script.js"></script>
+ <script>window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }</script>
</head>
--
Gitblit v1.10.0