From aa3c92b9dbd4b6a47e26342d18550aa63bdcdb46 Mon Sep 17 00:00:00 2001 From: JP Hastings-Spital Date: Thu, 20 Jun 2024 14:25:09 +0100 Subject: [PATCH] Adding interactions to clap count This means that people appreciating my posts on other platforms get a single clap per interaction type (eg. comment or star or repost etc.) --- assets/js/main.js | 10 +++++++--- config.toml | 7 +++---- layouts/partials/claps.html | 6 ++++-- layouts/partials/interaction-count.obj | 8 ++++++++ layouts/partials/menu.html | 2 +- layouts/partials/post-previews.html | 2 +- layouts/shortcodes/topclaps.gmi | 3 ++- layouts/shortcodes/topclaps.html | 5 +++-- 8 files changed, 29 insertions(+), 14 deletions(-) create mode 100644 layouts/partials/interaction-count.obj diff --git a/assets/js/main.js b/assets/js/main.js index ad6ec192..8d69fab6 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -33,9 +33,10 @@ const performClap = (e) => { return data; }) .then(data => { - localStorage.setItem(clapKey(btn.parentElement.action), data.claps); + const clapCount = addInteractions(btn, data.claps); + localStorage.setItem(clapKey(btn.parentElement.action), clapCount); forEveryClapButton((btn) => { - setClapCount(btn, data.claps); + setClapCount(btn, clapCount); }, btn.parentElement.action) btn.parentElement.classList.add('clapped') btn.disabled = false; @@ -54,6 +55,8 @@ const performClap = (e) => { const clapKey = (action) => `clap:${(new URL(action)).pathname}`; +const addInteractions = (btn, claps) => (claps + (btn.dataset.interactions || 0)); + const setClapCount = (btn, clapCount) => { if (clapCount === 0) { return @@ -100,8 +103,9 @@ document.addEventListener("DOMContentLoaded", () => { return res.json() }) .then(data => { + const clapCount = addInteractions(btn, data.claps); forEveryClapButton((btn) => { - setClapCount(btn, data.claps); + setClapCount(btn, clapCount); }, action) }) .catch(console.error) diff --git a/config.toml b/config.toml index 8b557150..2e38ea95 100644 --- a/config.toml +++ b/config.toml @@ -65,12 +65,12 @@ date = ["date", "publishDate", "lastmod", ":git"] [params.defaultSVG] post = "document" - bookmarks = "bookmark" + bookmark = "bookmark" article-bookmark = "bookmark" game-bookmark = "game" video-bookmark = "video" product-bookmark = "package" - notes = "message" + note = "message" photo = "camera" calendar = "calendar" review = "review" @@ -78,8 +78,7 @@ date = ["date", "publishDate", "lastmod", ":git"] contact = "email" curiosities = "star" memex = "brain" - photos = "camera" - reading-lists = "book" + reading-list = "book" [params.defaultEmoji] posts = "📔" diff --git a/layouts/partials/claps.html b/layouts/partials/claps.html index ca85e1b1..89c083a3 100644 --- a/layouts/partials/claps.html +++ b/layouts/partials/claps.html @@ -1,7 +1,8 @@ {{- $relperma := .url -}} {{- $style := .style | default "clap" -}} +{{- $interactionCount := partial "interaction-count.obj" page -}}
-