From b97a1b2abbcd609cc78b50affb94b66d1864fdc1 Mon Sep 17 00:00:00 2001 From: John Bowdre Date: Mon, 24 Jun 2024 22:58:07 -0500 Subject: [PATCH] publish post --- content/posts/kudos-with-cabin/index.md | 60 ++++++++++++++---- .../posts/kudos-with-cabin/kudos-in-cabin.png | Bin 0 -> 45366 bytes 2 files changed, 47 insertions(+), 13 deletions(-) create mode 100644 content/posts/kudos-with-cabin/kudos-in-cabin.png diff --git a/content/posts/kudos-with-cabin/index.md b/content/posts/kudos-with-cabin/index.md index 1b6b7f0..4589513 100644 --- a/content/posts/kudos-with-cabin/index.md +++ b/content/posts/kudos-with-cabin/index.md @@ -2,7 +2,6 @@ title: "Kudos With Cabin" date: 2024-06-24 # lastmod: 2024-06-24 -draft: true description: "Using Cabin's event tracking to add a simple post upvote widget to my Hugo site." featured: false toc: true @@ -120,31 +119,66 @@ I got carried away a little bit and decided to add a fun animation when the butt ### JavaScript -I want the button to do a little bit more than *just* send the event to Cabin so I decided to break that out into a separate script, `assets/js/kudos.js`: +I want the button to do a little bit more than *just* send the event to Cabin so I decided to break that out into a separate script, `assets/js/kudos.js`. This script will latch on to the kudos-related elements, and when the button gets clicked it will (1) fire off the `cabin.event('kudos')` function to record the event, (2) disable the button to discourage repeated clicks, (3) change the displayed text to `Thanks!`, and (4) celebrate the event by spinning the emoji and replacing it with a party popper. ```javascript // torchlight! {"lineNumbers":true} -document.addEventListener('DOMContentLoaded', () => { - // select the elements to manipulate +// manipulates the post upvote "kudos" button behavior + +window.onload = function() { + // get the button and text elements var kudosButton = document.querySelector('.kudos-button'); var kudosText = document.querySelector('.kudos-text'); var emojiSpan = kudosButton.querySelector('.emoji'); - kudosButton.addEventListener('click', () => { + kudosButton.addEventListener('click', function(event) { + // send the event to Cabin cabin.event('kudos') + // disable the button kudosButton.disabled = true; kudosButton.classList.add('clicked'); - + // change the displayed text kudosText.textContent = 'Thanks!'; kudosText.classList.add('thanks'); - - // Rotate the emoji + // spin the emoji emojiSpan.style.transform = 'rotate(360deg)'; - - // Change the emoji after rotation - setTimeout(() => { + // change the emoji to celebrate + setTimeout(function() { emojiSpan.textContent = '🎉'; - }, 150); // Half of the transition time for a smooth mid-rotation change + }, 150); // half of the css transition time for a smooth mid-rotation change }); -}); +} ``` + +The last step is to go back to my `single.html` layout and pull in this new JavaScript file. I placed it in the site's `assets/` folder so that Hugo can apply its minifying magic so I'll need to load it in as a page resource: + +```html +# torchlight! {"lineNumbers":true} +
+ {{ .Content }} +
+ {{- $reply := true }} + {{- if eq .Site.Params.reply false }} + {{- $reply = false }} + {{- else if eq .Params.reply false }} + {{- $reply = false }} + {{- end }} + {{- if eq $reply true }} +
+
+ + Enjoyed this? +
+ {{ $kudos := resources.Get "js/kudos.js" | minify }} + + 📧 Reply by email + {{- end }} +``` + +And that's it! After clicking the 👍 button on a few pages I can see the `kudos` events recorded in my [Cabin portal](https://l.runtimeterror.dev/rterror-stats): +![A few hits against the 'kudos' event](kudos-in-cabin.png) + + +Go on, try it out: \ No newline at end of file diff --git a/content/posts/kudos-with-cabin/kudos-in-cabin.png b/content/posts/kudos-with-cabin/kudos-in-cabin.png new file mode 100644 index 0000000000000000000000000000000000000000..75f0faba9a87596150810c1b502c6b381767c141 GIT binary patch literal 45366 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