TL;DR, my site now pulls attempts to recognize single-emoji comments and display them as a "Reaction".
Slightly longer version - my site uses webmention.io for handling webmentions, and I use brid.gy to backfeed interactions from Facebook to my own site. The way brid.gy handles Facebook reactions other than the standard "like" is a little quirky - they show up in webmention.io as a "reply" with a single emoji as the "content".
Using the Ruby twemoji library, my site checks the "content" of a reply against the emoji index and, if the content is a single emoji, pulls it out of the usual "reply" display and puts it in a facepile. The emoji itself is shown as an icon in the corner of the little face image.
While I was at it, I cleaned up a lot of my webmention-handling template to make things much clearer. This will make things easier for folks that want to re-use this code when I (eventually) release this as a Jekyll plugin.
Tonight is a Homebrew Website Club night, but Baltimore is not having another official meetup until April 19th. Still, I wanted to get something done to continue my deal with Jonathan to post something IndieWeb related at least once per week.
Thanks to everyone in the IndieWeb chat for their feedback and suggestions. Please drop me a note if there are any changes you’d like to see for this audio edition!
Jonathan Prozzi and I have challenged one another to make a post about improving our websites once a week. I'm a little late with this one!
I recently added support for displaying mentions, such as likes, reposts, comments, etc. from around the web that refer to the posts on my site. One thing the update didn't do is catch another type of mention, such as when someone mentions me in a tweet (example). These get fed to my website by brid.gy, but weren't displayed anywhere.
So, I created a /mentions page for displaying these mentions. In the future, when a post mentions my homepage, the result will show up on the mentions page.
My mentions still don't yet update in real time - they are compiled into my site whenever I make a new post. That's coming up in the future, but I have taken one more step towards real-time interactions with notifications!
Webmention.io, the service that I use for accepting and storing webmentions, has a WebHook option that can notify your site whenever a new webmention has been received. I wrote up a simple Python service using Flask that will listen for these messages from webmention.io and send them to me via PushBullet, a notification service that I've been using for a while for other projects.
Now, I'll see a notification on my phone and laptop when another site sends me a webmention!
Listened to This Week in the IndieWeb Audio Edition • March 18th - 24th, 2017 by Marty McGuire from martymcgui.re
I write a text script for each of these audio editions, which I would like to find a way to add to the post as a transcript for the audio. A couple of (silly?) things stopping me: (1) I’m not sure of the best way to lay that out and mark it up for the widest use and (2) My script format includes lots of notes-to-self that need to be cleaned up, adding yet-another-editing-task to getting this podcast out. :}
Thanks to everyone in the IndieWeb chat for their feedback and suggestions. Please drop me a note if there are any changes you’d like to see for this audio edition!
martymcgui.re has been busy since the last meeting. Added tags and displaying webmentions to his site. Launched Screech, a micropub client for posting audio. Uses it to post an audio edition of the This Week in the IndieWeb as a podcast. Started looking into better reply contexts for sites with no microformats2 info, maybe starting with Soundcloud (which requires using their API to convert permalinks into embeds) or using Aaron Parecki's X-Ray.
brianey.com missed the last meeting, so it's been a while. Working on a new site at thebrianyoung.com, set up his WordPress network to include IndieWeb plugins, including things like accepting Webmentions. Some small updates to imnotwrong.com. Committing to more (of everything) for next time.
eddiehinkle.com started blogging again back in February. Dusted off Jekyll and started delving back into IndieWeb. Reads a lot of books and wanted to have that info on his site from Goodreads. Uses a Node.js script to dump Goodreads data into Jekyll _data/ folder. Added microformats to pages. Posts project 365 photos to site, a little bit of a burden since everything is still manual. Current project is micropub. Plan is to set up a Node.js "controller" because he wants to do more responses and interactive things. Today added "On This Day", showing posts from the same day in previous years
maryreisenwitz.com was in the other half of the room working on laser-cutting projects, but did talk informally about wanting to add e-commerce to her site.
We discussed the shutdown of App.net, the upcoming micro.blog, the challenges of building everything yourself, and some of the laser-cutting projects that our host Mary was working on for an event next weekend.
We hope that you'll join us for the next HWC Baltimore in April back here at the Digital Harbor Foundation Tech Center! Check back soon for the date!
Webmentions are one of the most interesting and powerful technologies floating around the IndieWeb. At their most basic, they sites on the web to interact by sending a notification when a page on one site links to a page on another. When combined with machine-readable metadata like microformats2, they enable really neat social interactions between sites, feeding back likes, comments, bookmarks, shares, event RSVPs, and plenty more.
Receiving Webmentions
A site doesn't have to do all its own Webmention handling, and there are a few services that will handle them for you. I set up my website with the Webmention.io service back in August 2016 (so long ago!) and it's been accepting mentions from other sites since then. And, while there aren't a lot of websites that send Webmentions natively, there are services like Bridgy which uses Webmentions to backfeed social interactions to my site from sites like Facebook and Twitter. Pretty neat!
Sending Webmentions
When I publish a post with a link to a site that support Webmentions, I still need to actually send that notification. I haven't yet built a tool that does that for my own website, but I have been able to make use of Aaron Parecki's Telegraph, which will take in a link to one of my posts and parse it for outgoing links, find out of the targets of those links support Webmentions, and allow me to send them with the press of a button. It's ridiculously easy to use and has the added benefit of letting me pick-and-choose which links go out as Webmentions.
Displaying Webmentions
Webmention.io has been collecting mentions for my site for something like 6 months, but they don't just magically show up on my site! Webmention.io provides an API for fetching the mention data for individual pages, or all mentions for my domain.
My site is built on Jekyll, a static site generator, and I like that so far it doesn't rely on JavaScript for folks to read it. I didn't want to require JavaScript for displaying mentions, so I needed a way to "bake in" my mentions for each post. I was inspired by Aaron Gustafson's jekyll-webmention_io, but found that I didn't like some of the choices in markup or the way that it stored the mention data, so I went ahead and wrote my own. It's still heavily a work-in-progress, but I do hope to release it for other folks to use once it's more stable.
What works? Let's see!
Here's an example post with some Likes and RSVPs (both "yes"es and "maybe"s):
All of these are being displayed with the data that Webmention.io provides with its API, and there are some types of post that I would like to handle differently such as the ❤️ above (which was a Facebook "heart" reaction), and I'd like to include a JavaScript enhancement that will show any new mentions, so they aren't sitting in "limbo" until I make a new post.
Overall, I'm really excited to finally be showing these on my site! I think Webmention is a pretty critical part of bringing the "social web" into the IndieWeb and back out of the silos. I am grateful to all the folks that have made this possible with their work on standards and tools!