After several years of giving back no data, apparently YouTube has changed at least some of the markup and metadata on their site so that parsers are returning richer data now. I’m thrilled to see that as of this morning putting in traditional YouTube permalinks now allows the parser in David Shanske‘s awesome IndieWeb Post Kinds plugin to properly return the title, summary, site name, tags, and featured images from YouTube videos! If only they’d include an h-card to give back the author name, URL, and avatar…

Making watch posts for YouTube just got a whole lot easier!

Using IFTTT to syndicate (PESOS) content from social services to WordPress using Micropub

Introduction

What follows may tend toward the jargon-y end of programming, but I’ll endeavor to explain it all and go step-by-step to allow those with little or no programming experience to follow along and use the tools I’m describing in a very powerful way.  I’ll do my best to link the jargon to definitions and examples for those who haven’t run across them before. Hopefully with a bit of explanation, the ability to cut and paste some code, or even make some basic modifications, you’ll be able to do what I and others have done, but without having to puzzle it all out from scratch.

Most readers are sure to be aware of the ubiquitous “share” buttons that appear all over the web. Some of the most common are “share to Facebook” or “share to Twitter”. In my examples that follow, I’m doing roughly the same thing, but I’m using technology called webhooks and micropub to be able to share not just a URL or web address, but a variety of other very specific data in a specific way to my website.

This “share”–while a little more complicated–gives me a lot more direct control over the data I’m sending and how it will be seen on my website. I would hope that one day more social websites will have built in share buttons that allow for direct micropub integration so that instead of only sharing to corporate sites like Facebook, Twitter, et al. they’ll let people share directly to their own personal websites where they can better control their online identity and data. What I’m describing below is hopefully a temporary band-aid that allows me to keep using common social services like Pocket, YouTube, Meetup, Goodreads, Letterboxd, Diigo, Huffduffer, Reading.am, Hypothes.is, and hundreds of others but to also post the content to my site so that I own and control more of my own online data.

An example using Pocket

Following in the footsteps of Charlotte Allen and Jan-Lukas Else, I’ve been tinkering around with improving some of my syndication workflows for a number of social silos including Pocket, a social silo that focuses on bookmarking material to read later.

I have long used IFTTT (aka If This, Then That), a free and relatively simple web service that allows one to create applets that tie a large number of web-based and social services together, to send data from my Pocket account to my WordPress-based website. I’d done this using my Pocket RSS feed to create WordPress draft posts that I could then modify if necessary and publish publicly if I desired. Since I regularly use a number of Micropub clients in conjunction with the WordPress Micropub plugin and IFTTT supports webhooks, I thought I’d try that out as a separate process to provide a bit less manual pain in mapping the data for posts to appear like I want them to on my website. 

Now I can use my Pocket account data and map most of it directly to the appropriate data fields on my website. Because Pocket has direct integration into IFTTT, I can actually get more data (particularly tags) out of it than I could before from the simple RSS feed.

Below, you’ll find what I’ve done with a quick walk through and some example code snippets. I’ll break some of it down into pieces as I go, and then provide a specific exemplar of some of the code properly strung together at the end. I’ll also note that this general procedure can be used with a variety of other silos (and either their integrated data or RSS feeds) within IFTTT to post data to your website. Those running platforms other than WordPress may be able to use the basic recipe presented here with some small modifications, to send similar data from their accounts to their sites that support Micropub as well. 

Directions for connecting IFTTT to publish to WordPress via Micropub

Preliminaries

Install and activate the Micropub plugin for WordPress. This will give your website a server endpoint that IFTTT will use to authenticate and send data to your website on your behalf.

If you don’t already have it, install the IndieAuth plugin for WordPress and activate it. This will allow you to generate an authorization token (think password) with the appropriate scopes (think permissions to do specific actions on your website) to allow IFTTT to securely post to your website. 

Within the WordPress administrative interface/dashboard go to Users >> Mange Tokens or go to the path /wp-admin/users.php?page=indieauth_user_token on your website. 

At the bottom of that page under the section “Add Token” add a convenient name for your new token. You’ll see in the following screencapture that I’ve used “IFTTT for Webhooks”. Next click the check boxes to add scopes for “create” and “media”. Finally click the “Add New Token” button.

Screencapture from the Add Token section of the User >> Manage Tokens page

On the resulting page, copy the entirety of the returned access token in a safe place. You’ll need this token later in the process and once you’ve navigated away from the page, there’s no way to retrieve the token again later. The same token can be used for multiple different recipes within IFTTT,  though one could create a different token for each different recipe if desired.

Sign up for an IFTTT account (if you don’t already have one). 

Register Pocket as a service you can use within IFTTT.

The IFTTT Applet

In your IFTTT.com account, create a new applet.

Screenshot of the "If This Then That" recipe start with "This" highlighted

For the “if” part of the applet, search for and choose the Pocket application.

Screenshot of a search for "Pocket"

Choose the trigger “Any new item” (other triggers could be chosen for different combinations of actions).

Click the “then” part of the applet, and search for and chose the Webhooks application.

Screenshot of the "That" portion with a search for Webhooks

Choose the “Make a web request” option (currently the only option on the page).

Next we’ll fill in the action fields.

Screencapture of the Complete Action Fields step

 

Fill in the four action fields with the following values, with the appropriate modifications as necessary:

URL: https://www.example.com/wp-json/micropub/1.0/endpoint

Be sure to change example.com to the appropriate URL for your website. If you’re using a platform that isn’t WordPress in combination with the Micropub plugin, you can quickly find your appropriate endpoint by looking at your homepage’s source for a <link> element with a rel="micropub" attribute.

Method: POST
Content Type: application/x-www-form-urlencoded

More advanced users might experiment with other content types, but this will naturally require different data and formatting in the Body section.

Body: 

The Body portion is one of the most complicated portions of the operation, because this is where you can get creative in how you fill this out and the end results you end up with on your website. You can use the available variables in the recipe to custom create almost anything you like and some services will give you a tremendous amount of flexibility. I’ll walk through a handful of the most common options and then tie them all together at the end. Ultimately the Body will be a string of various commands that indicate the data you want to send to your website and all of those commands will be strung together with an ampersand character (“&“) between each of them.

There are some small differences you may want to experiment with in terms of what you put in the Body field based on whether or not you’re using the Post Kinds plugin to create your posts and reply contexts or if you’re not. 

Depending on which pieces you choose, I recommend doing a few test runs for your applets to make sure that they work the way you expect them to. (The Micropub plugin has a setting to mark incoming posts automatically as drafts, so you’re not spamming your readers while you’re testing options if you’re testing this on a live site.) Sometimes formatting issues (particularly with setting a publish time) may cause the post to fail. In these cases, experiment to find and excise the offending code and see if you can get things working with minimal examples before adding additional data/details.

For those who would like to get into more advanced territory with the programming and methods, I recommend looking at the W3C’s Webmention specification

The first thing you’ll want in the Body will be your access token. This is similar to a password that allows the webhook to publish from IFTTT to your website. You’ll want a line that reads as follows with the AccessTokenHere replaced with the access token from your token provider which you created earlier and saved. You’ll want to keep this secret because it acts like a password for allowing remote applications to post to your website.

access_token=AcessTokenHere

Next will come the content you want to be published to your site.

&content=<<<{{EntryTitle}}<br>{{EntryPublished}}>>>

I’ll mention that the content snippet can include almost anything you’d like using the variables provided by IFTTT as well as a reasonable variety of HTML. I’ve used it to add things like <blockquotes> for annotations and even <audio> tags for making listen posts or bookmarking audio with Huffduffer!

The following snippet tells your site what kind of content it’s receiving. Unless you’re doing something more exotic than bookmarks, likes, favorites, replies, or most post kinds (except maybe events), you’ll want to use the h-entry snippet as follows:

&h=entry

If you’d like your post to contain a formal title, then you’ll want to include the following code snippet. Generally with shorter content like notes/status updates, bookmarks, reads, likes, etc., I follow the practice of publishing titleless posts when they’re not required, so I personally skip this piece in most of my posts, but some may wish to include it.

&name=<<<{{Title}}>>>

To have your website create or use the correct category or tag taxonomies on your posts, you’ll want to have something similar to the following snippet. If you want to specify more than one category, just string them together with ampersands. If your category/tag has a blank space in it you can replace the spaces with %20. The Micropub server on your site should automatically check to see if you have categories or tags that match what is sent, otherwise it will create a new tag(s).

&category[]=Bookmark&category[]=Social%20Stream

I’ve found that in practice, some silos that allow for multiple tags will actually publish them via micropub using something along the lines of the following if the  appropriate variables on IFTTT exist. In these cases, I append this to the other categories and tags I want to specify.

&category[]=<<<{{Tags}}>>>

If you’re using your Pocket account to send your bookmarked articles to read later, you’ll want to create a bookmark with the following line:

&bookmark-of=<<<{{EntryUrl}}>>>

Alternatively, if you were using your Pocket account to archive your articles once you’ve actually read them, you could have IFTTT post these archived items as “reads” to your site by choosing the “New Item Archived” element in the Pocket portion of the IF set up process. Here you’d replace the above bookmark-of line with the following:

&read-of=<<<{{EntryUrl}}>>>

If you were creating different sorts of posts you might also use the appropriate alternate verbiage: like-of, watch-of, listen-of, rsvp, etc. (find details for the appropriate mark up on the IndieWeb wiki or the correct microformats v2 property within the code for the Post Kinds plugin). If you are using the Post Kinds plugin, this is the piece of data that it receives to specify the correct post kind and create the reply context for your post and will likely preclude you from needing to send any data in the content portion (above) unless the services applet will let you send additional commentary or notes that you want to appear in the body of your post.

Next, if your site supports syndication links with a plugin like Syndication Links for WordPress, you would use the following line of code so that those are set and saved properly. (This presumes that the URL specified is the permalink of the content on the social silo. I’ll note that Pocket doesn’t provide these (easily) as most of their links are canonical ones for the original content, so I don’t use this on my IFTTT recipe for my Pocket workflow, but I do use it for others like Huffduffer and Reading.am. It conveniently allows me to find copies of my content elsewhere on the web.)

&syndication=<<<{{EntryUrl}}>>>

If you’d like to have the timestamp on your post match the time when you actually bookmarked the item in Pocket, you’ll need to add the following line of code. Without this line, the publication time will match the time of the Webhook action, which for most IFTTT things can be a delay of a minute or two up to an hour or more afterwards. In practice, I’ve noticed that most content posts to my website within about 10-15 minutes of the original, and this is based on the polling lag within IFTTT checking your triggers. (Sadly, I’ll report that I’ve never gotten this code snippet to work for me in practice, and I suspect it may be because the time format from IFTTT doesn’t match what is expected by the Micropub server on my website. Perhaps David Shanske or Ryan Barrett may have a more specific idea about what’s causing this or suggest a fix? I’ll try to dig into it shortly if I can. As a result, I generally have left this snippet of code off of my triggers and they’ve worked fine as a result. Until this issue might be fixed, if you want to have the exact timestamp, you could alternately include the data, if provided, in the content section instead and then copy it over manually after-the-fact.)

&published=<<<{{EntryPublished}}>>>

If you’ve got syndication endpoints set up properly with something like the Syndication Links plugin, you can use the following sort of code snippet. I generally eschew this and prefer to save my posts as drafts for potential modification prior to publishing publicly, but others may have different needs, so I’m including the option for relative completeness so people can experiment with it if they like.

&mp-syndicate-to[]=twitter-bridgy

This concludes the list of things that might commonly be included in the Body portion of the IFTTT applet. Tying these all together for combination in the Post Kinds Plugin one would want something along the lines of :

Body: access_token=AccessTokenHere&content=<<<{{EntryTitle}}<br> {{EntryPublished}}>>>&h=entry&category[]=Bookmark&category[]=Social%20Stream&bookmark-of=<<<{{EntryUrl}}>>>

Here’s another example of the code I use in conjunction with a similar applet for Diigo, a bookmarking service. The “Description” portion allows me to add a note or comment on the bookmark when I make it and that note is transported over to the post on my website as well.

Body: access_token=AccessTokenHere&content=<<<{{Description}}>>>&h=entry&category[]=Bookmark&category[]=Social%20Stream&category[]=<<<{{Tags}}>>>&bookmark-of=<<<{{Url}}>>>

Note that when the string of commands is done, you do not need to have a trailing ampersand. Most of the examples I’ve used are from the Pocket set up within IFTTT, but keep in mind that other services on the platform may use alternate variable names (the portion in the braces {{}}). The differences may be subtle, but they are important so be careful not to use {{EntryTitle}} if your specific recipe expects {{Title}}.

To finish off making your new applet, click on the “Create Action” button. (If necessary, you can test the applet and come back to modify it later.)

Finally, give your applet an appropriate tile and click the “Finish” button. For my Pocket applet I’ve used the name “Pocket bookmark PESOS Micropub to WordPress”.

Screencapture of the Review and Finish page on IFTTT

Now that your applet is finished, give it a whirl and see if it works the way you expect! Don’t feel discouraged if you run into issues, but try experimenting a bit to see if you can get the results you’d like to see on your website. You can always go back to your applet recipe and modify it if necessary.

Conclusion

Hopefully everyone has as much fun as I’ve had using this workflow to post to their websites. It may take some patience and experimentation to get things the way you’d like to have them, but you’re likely to be able to post more easily in the future. This will also let you own your data as you create it while still interacting with your friends and colleagues online.

I know that it may be possible to use other services like Zapier, Integromat, Automate.io, or other similar services instead of IFTTT though some of these may require paid accounts. I’d love to see what sorts of things people come up with for using this method for owning their own data. Can you think of other services that provide webhooks for potential use in combination with Micropub? (Incidentally, if this is your first foray into the Micropub space, be sure to check out the wealth of free Micropub clients you can use to publish directly to your website without all of the set up and code I’ve outlined above!)

Currently I’m using similar workflows to own my data from social services including Pocket, Diigo, Huffduffer, Reading.am, YouTube, Meetup/Google Calendar, and Hypothes.is. I’ve got several more planned shortly as well.

Thanks once again to Charlotte Allen and subsequently Jan-Lukas Else for the idea of using Micropub this way. Their initial documentation was invaluable to me and others are sure to find it useful. Charlotte has some examples for use with Facebook and Instagram and Jan-Lukas’ example may be especially helpful for those not using WordPress-specific solutions.

And as always, a big thank you to the entire IndieWeb community for continuing to hack away at making the web such a fun and vibrant space by making the small building blocks that make all of the above and so much more possible.

Narwhal Microblog Plugin for WordPress: Quickly Posting Notes to your IndieWeb Site

This morning, after reading a brief, but interesting snippet in the IndieWeb WordPress chat from last night, David Shanske made me think about an old itch I had to have a quicker and more stripped down posting interface for notes on my website. I immediately thought of WordPress’s P2 and 02 themes/products which had a built-in simple posting interface reminiscent of Twitter’s UI. 

Screencapture of Twitter's simple posting interface

Not wanting to wait to see what David might come up with before the next couple of IndieWebCamps, I thought I’d at least do some research to see what was hiding in the good old WordPress repository. I found a few old plugins that were roughly the sort of idea I was looking for, but they were last maintained about 8-10 years ago. 

Then I came across the Narwhal Microblogging plugin from Billy Wilcosky, which is being actively developed/maintained and has almost exactly what I’m looking for!

Screencapture of the Narwhal microblogging plugin user interface

Apparently the plugin itself had an early simple start before the developer came across Jon Smajda’s plugin Posthaste which was apparently repurposed for the Prologue/P2 code that WordPress used for that product/theme. He’s since rewritten a large chunk of it based on Posthaste’s original code and added in some basic formatting options and the ability to add media, so one can post a quick note along with a photo.

Settings for the plugin are hiding in Settings << Writing admin interface (or at the path /wp-admin/options-writing.php on your website) which includes the ability to choose which pages to display the “widget” and allowing one to hide the title, tags, categories, draft seclector, one’s Gravatar, and the Greeting and Links. I’d personally pare my version down to just provide tags, categories, and the draft options to keep the interface as clean as possible.

Screencapture of the settings for the Narwhal plugin

Finally the developer notes that within the user interface “if you leave the ‘Category:’ box at its default setting it posts to your default category. However… If you have a category named ‘asides’, it will put posts with empty titles into the ‘asides’ category even if you do not explicitly specify the ‘asides’ category in the dropdown. You can then style them as asides.”

This is the view of the posting interface on my site after paring it down to my personal bare minimum.

Benefits

I’ve already discussed some of the immediate benefits for easily and quickly posting directly from my own website. Just below I’ll add a few others.

Most importantly for me at the moment, the plugin works with the Classic Editor in WordPress. The interface also only shows up when one is logged into their website, so visitors won’t ever see it.

Titleless posts

The plugin automatically takes the first 40 characters of your note and posts that into the title field, so you don’t have to bother with it. Sadly, this means that feed readers and other services will take your status updates and give them a title. (Though in the wild, most feed readers do something like this anyway. I am hearing strong rumors that Inoreader is about to have better support for social media-like posts soon.) For those using the plugin for IndieWeb use and prefer to keep their notes/asides/status updates titleless, you can spelunk into the code pretty easily and make a quick change which the developer kindly documents in his support page:

But, if you want to modify the title character limit it is easy to do.

  1. Go to this plugin’s folder and open the narwhal-microblog.php file.
  2. In this file you will see a line for this max character limit and you will see the number 40. You could just increase it to something like 100, 3500, or 999999. Depending on how long you are willing to let your titles get.

In my case, I think I’ll just decrease the character limit to 0 and then rely on the Post Kinds plugin to add it’s customary pseudo-title to the admin interface on my back end so that I can distinguish my posts in the posts pages.

UI suggestions

The category chooser could be a little cleaner and provide a dropdown of all my pre-existing categories with the ability to select multiple ones. I suspect that somewhere in the WordPress universe there’s a way to do this even if it means swiping a snippet of code from core’s editor.

The basic text box for entering text could be a bit smaller on the page to accept 2-4 lines of text since it’s meant for short posts. As it stands now, it defaults to 10, but it also smartly already has a slider that appears when you type more than the available number of lines and it also has a handle in the corner to allow you to increase the boxes size.

I’ve mentioned doing natively titleless notes above, but to make things a bit more user friendly, it would be nice to have the ability in the settings page to enter a number for the text excerpt, so that users could configure it without needing code. I suspect that most in the IndieWeb space would set the title excerpt to zero so as to not have titles on their notes.

It will take me some time to dig into it, but it would be nice if the developer had some notes about the CSS classes used in the plugin so that one might more easily style the display of the output on one’s website. Fortunately the defaults to match one’s current theme seem relatively solid.

At present, there isn’t any UI for including syndication targets to external services like Twitter, Mastodon, etc. It would be nice if there was some tie into syndication services or functionality like that provided with Syndication Links plugin and brid.gy publish or brid.gy fed if those pieces are present.

The last dovetail that would be nice to have, particularly within an IndieWeb framing, would be to have better direct integration of this plugin with the Post Kinds plugin. This could extend to auto-setting the post kind to “note”, which should in turn allow the automatic setting of Post Formats to either “status” or “aside”.

Summary

In sum, this plugin is really fantastic for allowing a simple and lightweight means of posting quick status updates or notes to one’s WordPress website! It’s the next best thing to using any of the variety of Micropub clients, particularly when you already happen to be at your own site.

I suspect this plugin is the sort of thing that many within the IndieWeb and WordPress communities will love using–and at least one person in the chat has already said they think it’s a great find. There are currently less than 10 active installations of the plugin, but I think it deserves a magnitude or more. Let’s see what we can do about that!

Have you tried it? What do you think of the idea?

From Following Posts and Blogrolls (Following Pages) with OPML to Microsub Servers and Readers

I’m still tinkering away at pathways for following people (and websites) on the open web (in my case within WordPress). I’m doing it with an eye toward making some of the UI and infrastructure easier in light of the current fleet of Microsub servers and readers that will enable easier social reading without the centralized reliance on services like Facebook, Twitter, Instagram, Snapchat, Medium, LinkedIn, et al.

If you haven’t been following along, here are some relevant pieces for background:

Generally I’ve been adding data into my Following Page (aka blogroll on steroids) using the old WordPress Links Manager pseudo-manually. (There’s also a way to bulk import to it via OPML, using the WordPress Tools Menu or via /wp-admin/import.php?import=opml). The old Links Manager functionality in WordPress had a bookmarklet to add links to it quickly, though it currently only seems to add a minimal set–typically just the URL and the page title. Perhaps someone with stronger JavaScript skills than I possess could improve on it or integrate/leverage some of David Shanske’s Parse This work into such a bookmark to pull more data out of pages (via Microformats, Schema.org, Open Graph Protocol, or Dublin Core meta) to pre-fill the Links Manager with more metadata including page feeds, which I now understand Parse This does in the past month or so. (If more than one feed is found, they could be added in comma separated form to the “Notes” section and the user could cut/paste the appropriate one into the feed section.) Since I spent some significant time trying to find/dig up that old bookmarklet, I’ll mention that it can be found in the Restore Lost Functionality plugin (along with many other goodies) and a related version also exists in the Link Library plugin, though on a small test I found it only pulled in the URL.

Since it wasn’t completely intuitive to find, I’ll include the JavaScript snippet for the Links Manager bookmarklet below, though note that the URL hard coded into it is for example.com, so change that part if you’re modifying for your own use. (I haven’t tested it, but it may require the Press This plugin which replaces some of the functionality that was taken out of WordPress core in version 4.9. It will certainly require one to enable using the Links Manager either via code or via plugin.)

javascript:void(linkmanpopup=window.open('https://exanple.com/wp-admin/link-add.php?action=popup&linkurl='+escape(location.href)+'&name='+escape(document.title),'LinkManager','scrollbars=yes,width=750,height=550,left=15,top=15,status=yes,resizable=yes'));linkmanpopup.focus();window.focus();linkmanpopup.focus();

Since I’ve been digging around a bit, I’ll note that Yannick Lefebvre’s Link Library plugin seems to have a similar sort of functionality to Links Manager and adds in the ability to add a variety of additional data fields including tags, which Ton Zijlstra mentions he would like (and I wouldn’t mind either). Unfortunately I’m not seeing any OPML functionality in the plugin, so it wins at doing display (with a huge variety of settings) for a stand-alone blogroll, but it may fail at the data portability for doing the additional OPML portion we’ve been looking at. Of course I’m happy to be corrected, but I don’t see anything in the documentation or a cursory glance at the code.

In the most ideal world, I’d love to be able to use the Post Kinds Plugin to create follow posts (see my examples). This plugin is already able to generally use bookmarklet functionality to pull in a variety of meta data using the Parse This code which is also built into Post Kinds.

It would be nice if these follow posts would also copy their data into the Links Manager (to keep things DRY), so that the blogroll and the OPML files are automatically updated all at once. (Barring Post Kinds transferring the data, it would be nice to have an improved bookmarklet for pulling data into the Links Manager piece directly.)

Naturally having the ability for these OPML files be readable/usable by Jack Jamieson’s forthcoming Yarns Microsub Server for WordPress (for use with social readers) would be phenomenal. (I believe there are already one or two OPML to h-feed converters for Microsub in the wild.) All of this would be a nice end -to-end solution for quickly and easily following people (or sites) with a variety of feeds and feed types (RSS, Atom, JSONfeed, h-feed).

An additional refinement of the blogroll display portion would be to have that page display as an h-feed of h-entries each including properly marked up h-cards with appropriate microformats and discoverable RSS feeds to make it easier for other sites to find and use that data. (This may be a more IndieWeb-based method of displaying such a page compared with the OPML spec.) I’ll also note that the Links Manager uses v1 of the OPML spec and it would potentially be nice to have an update on that as well for newer discovery tools/methods like Dave Winer’s Share Your OPML Subscription list, which I’m noting seems to be down/not functioning at the moment.

An IndieWeb Podcast: Episode 14 A loose collective of developers and techno-utopians

Episode 14: A loose collective of developers and techno-utopians

Running time: 1h 19m 57s | Download (37.5MB) | Subscribe by RSS | Huffduff

Summary: Our first episode since January. David Shanske and Chris Aldrich get caught up on some recent IndieWebCamps, an article about IndieWeb in The New Yorker, changes within WordPress, and upcoming events.

Recorded: May 19, 2019

Shownotes

6 camps later…
Austin
Online
New Haven
Berlin
Düsseldorf
Utrecht

National Duckpin Bowling Congress
Duck Tours
Streaming rigs for remote participation at IndieWeb Camps
Ad hoc sessions (🎧 00:11:28)

Can “Indie” Social Media Save Us? (The New Yorker) by Cal Newport (🎧 00:13:50)

Swarm Account deletions and posting limits
New Checkin icon within the Post Kinds Plugin: example https://david.shanske.com/kind/checkin/
Weather now has microformats mark up in WordPress
Fatwigoo problems with icons
IndieWeb Bingo

Webmention Project

Project of updating Matthias Pfefferle‘s Webmention and Semantic Linkbacks plugins (🎧 00:26:10)

Readers & Yarns

Readers & Yarns update (🎧 00:40:50)
X-Ray
Indigenous Replacement: Final Indigenous Log: The Future of the App

Post Kinds Plugin

Post Kinds and new exclude functionality (🎧 00:48:15)

  • widgets
  • titleless posts
  • On this day

David’s list of 24 IndieWebCamps he’s attended
Looking back at past IndieWebCamp sessions and wiki pages for interesting ideas and new itches
Date and time stamps on webmentions
Call for tickets in WordPress
Subscribing to h-cards with WebSub
Is Mastodon IndieWeb?
Fixing IndieAuth
Improving scoping, particularly for multi-user sites

Coming up within the community

IndieWeb Book Club

IndieWeb Book Club is coming up featuring Mike Monteiro’s book Ruined by Design(🎧 01:13:04)

IndieWeb Summit 2019

9th annual IndieWeb Summit (Portland) is coming up in June. RSVP now.

Questions?

Feel free to send us your questions or topic suggestions for upcoming episodes. (Use the comments below or your own site using Webmention). 
Perhaps a future episode on Micro.blog?

Replied to Daniel Cotillas Ruiz on Twitter (Twitter)
“@ChrisAldrich Also I have just realized the Post Kind menu on the post doesn´t appear on Gutenberg...”
As mentioned in the description on the plugin Post Kinds is not yet compatible with Gutenberg. If it’s something you want to use, you’ll have to install and activate the Classic Editor.
Replied to a tweet by Scott KingeryScott Kingery (Twitter)
Presuming I’m following your question: The plugin is already using Parse This to scrape and import the “name” (aka the post title you’re bookmarking, reading, etc.) from the original website based on microformats, html, OG meta, or even schema before it posts to your site. Some sites may not provide these in which case you may have to supply something yourself. I’ve only seen a very small number of sites return nothing for these.

As I recall, if the post name comes up empty, the plugin will default to the text “a post” so that there’s something there to link to, but you can always go back and change it if necessary. If you’re using the bookmarklet, you can always manually input something as well before publishing. 

Let me know if I’ve misunderstood your question and this didn’t cover your use case(s).

I’ve been looking at potentially switching themes again on my website,  but I’m still not sure I want to make the jump. If I do, I’m going to simplify things down a bit.

In the process, I’ve been looking at tweaking some of the CSS in the Post Kinds Plugin, particularly since I’m using it so heavily for a lot of my content. One of the small things I’ve wanted to do was to make what I can only call the pseudo-titles of the bookmarks, reads, etc. slightly larger to bring more attention to the titles and authors of those parts.

To do it, I’ve added the following couple of lines to my child theme’s style.css file:

/* Changes the font size on the titles of Kinds */
section.response > header {
  font-size: 20px;
}
Replied to a tweet by David ChartierDavid Chartier (Twitter)
David Shanske, have you gotten this far with your work on the Post Kinds plugin? I know you wanted to import your Pinboard account, but I’m not sure if you’ve got infrastructure for the import piece.
Any other ideas (aka #ActiveWeb)?

A cursory look at my website for 2018

I just added it up quickly and realized that I posted publicly to my website/blog/commonplace book a total of 4,694 times in 2018! Holy cow!

I don’t have quite the crazy analysis that Jeremy Keith has done of his posts, and I initially thought that there was no way I’d posted as much as he had. Perhaps it might be worth delving deeper into the numbers to see exactly what is going on?

Possibly worse(?!), that total posting number is up from 1,762 public posts in 2017. I can only attribute the increase in quantity to the ability to increasingly easily post to my site via micropub clients and some simple bookmarklets I use in conjunction with David Shanske’s brilliant Post Kinds plugin. G-d bless the IndieWeb and its tremendously helpful community for helping me take back ownership of my digital online life. I can only imagine how much higher that number goes this coming year if I can manage to build a Microsub set up and indie reader into my website and make the entire processes even more friction-less.

I unwittingly spent a few minutes last night on cleaning up some plumbing on my back end that will make it easier to follow up (when necessary) on likes, reads, and bookmarks that I collect.

I can’t bear to go through and count the number of private posts for the year, but I will say that having my own online searchable database of things  I’ve written, replied to, bookmarked, read, listened to, watched, annotated, etc. has been incredibly useful over the past few years.

👓 Two spikes in my posting history | doubleloop

Read Two spikes in my posting history by Neil MatherNeil Mather (doubleloop)
I’ve been playing around with Metabase to view a few stats about my website. frequency and spikes
It was fun to look at the frequency of my posts over time – you see quite a prominent spike around March and April 2017, and then there’s a slowish decline in frequency until around August/Septemb...
I should look at the data for posting on my own site to see what the underlying mechanisms may be. Of course just the move to own all of my online posting and the general ideas behind IndieWeb, but before looking at data, I suspect most of it is related to bookmarklets for Post Kinds being so simple to use. 

I haven’t really delved into microsub yet, but I suspect it’s going to have an even more profound effect on my reading and posting habits.

Using Inoreader as an IndieWeb feed reader

It may still be a while before I can make the leap I’d love to make to using Microsub related technology to replace my daily feed reader habits. I know that several people are working diligently on a Microsub server for WordPress and there are already a handful of reader interfaces available. I’m particularly interested in the fact that I can use a reader interface integrated with Micropub so that my reactions in the reader (likes, bookmarks, replies, etc.) are posted back to my own personal website which will then send notifications (via Webmention) to the mentioned websites. Of course it’s going to take some time before I’m using it and even more time after that for the set up to become common and easy to use for others. So until then, I and others will need some tools to use right now.

Toward this end I thought I’d double down on my use of Inoreader in my daily web consumption workflows. I wanted to make it easier to use my feed reader to post all these types of posts to my website which will still handle the notifications. In some sense, instead of relying on a feed reader supporting Micropub, I’ll use other (older) methods for making the relevant posts. As I see it, there are two potential possibilities using Inoreader:
(1) using a service like IFTTT (free) or Zapier (paid) to take the post intents and send them to my WordPress site, or
(2) using the custom posting interface in Inoreader in conjunction with post editor URL schemes with the Post Kinds plugin to create the posts. Using WordPress’ built-in Post This bookmarklet schemes could also be used to make these posts, but Post Kinds plugin offers a lot more metadata and flexibility.

If This Then That (IFTTT)

Below is a brief outline of some of the IFTTT recipes I’ve used to take data from posts I interact with in Inoreader and post them to my own website.

The trigger interface in IFTTT for creating new applets using Inoreader functionality.

Likes

IFTTT has an explicit like functionality with a one click like button. There is an IFTTT recipe which allows taking this datum and adding it directly as a WordPress post with lots of rich data. The  “then that” portion of IFTTT using WordPress allows some reasonable functionality for porting over data.

Favorites

IFTTT also has explicit favorite functionality using a one click starred article button. There is an IFTTT recipe which allows adding this directly as a WordPress post.

Since the “starred” article isn’t defined specifically in Inoreader as a “favorite”, one could alternately use it to create “read” or “bookmark” posts on their WordPress websites. I’m tempted to try this for read posts as I probably wouldn’t often use it to create favorite posts on my own website. Ultimately one at least wants an easy-to-remember 1 to 1 mapping of pieces of functionality in Inoreader to their own website, so whatever I decide I’ll likely stick to it.

Bookmarks

While there is no specific functionality for creating bookmarks in Inoreader (though starred articles could be used this way as previously mentioned), there is a “saved webpage” functionality that could be used here in addition to an IFTTT recipe to port over the data to WordPress.

Reads

While Inoreader has a common feed reader read/unread functionality, it is often not used tacitly and this is a means of reducing friction within the application. Not really wanting to muddle the meaning of the “starred” article to do it, I’ve opted to adding an explicit “read” tag on posts I’ve read.

IFTTT does have a “New tagged article” recipe that will allow me to take articles in Inoreader with my “read” tag and post them to my website. It’s pretty simple and easy.

Replies

For dealing with replies, there is an odd quirk within Inoreader. Confoundingly the feed reader has two similar, yet still very different commenting functionalities. One is explicitly named “comment”, but sadly there isn’t a related IFTTT trigger nor an RSS feed to take advantage of the data one puts into the comment functionality. Fortunately there is a separate “broadcast” functionality. There is an IFTTT recipe for “new broadcasted article” that will allow one to take the reply/comment and post it to one’s WordPress website.

Follows

Like many of the above there is a specific IFTTT recipe that will allow one to add subscriptions directly to WordPress as posts, so that any new subscriptions (or follows) within the Inoreader interface can create follow posts! I doubt many people may use this recipe, but it’s awesome that it exists.  Currently anything added to my blogrolls (aka Following Page) gets ported over to Inoreader via OPML subscription, so I’m curious if them being added that way will create these follow posts? And if so, is there a good date/time stamp for these? I still have to do some experimenting to see exactly how this is going to work.

RSS feed-based functionality

In addition to the IFTTT recipe functionality described above, one could also use IFTTT RSS functionality to pipe RSS feeds which Inoreader provides (especially via tags) into a WordPress website. I don’t personally use this sort of set up, but thought I’d at least mention it in passing so that anyone who might like to create other post types to their website could.

Custom posting in Inoreader with Post Kinds Plugin

If using a third-party service like IFTTT isn’t your cup of tea, Inoreader also allows custom sharing options.  (There are also many pre-built ones for Facebook, Twitter, etc. and they’re also re-orderable as well.) I thus used WordPress’ post editor URL schemes to send the data I’d like to have from the original post to my own website. Inoreader actually has suggestions in their UI for how to effectuate this generically on WordPress. While this is nice, I’m a major user of the Post Kinds Plugin which allows me a lot more flexibility to post likes, bookmarks, favorites, reads, replies, etc. with the appropriate microformats and much richer metadata. Post Kinds has some additional URL structures which I’ve used in addition to the standard WordPress ones to take advantage of this. This has allowed me to create custom buttons for reads, bookmarks, replies, likes, and listens. With social sharing functionality in Inoreader enabled, each article in Inoreader has a sharing functionality in the bottom right corner that has a configuration option which brings up the following interface:

Custom sharing functionality in Inoreader. I’ve added set up to post reads, bookmarks, likes, replies and listens to my personal website.

Once made, these custom button icons appear at the bottom of every post in Inoreader, so, for example, if I want to reply to a post I’ve just read, I can click on the reply button which will open a new browser window for a new post on my website. The Post Kinds plugin on my site automatically pulls in the URL of the original post, parses that page and–where available–pulls in the title, synopsis, post date/time, the author, author URL, author photo, and a featured photo as well as automatically setting the specific post kind and post format. A lot of this data helps to create a useful reply context on my website. I can then type in my reply to the post and add any other categories, tags, or data I’d like in my admin interface. Finally I publish the post which sends notifications to the original post I read (via Webmention).

Screencapture of Inoreader’s interface highlighting some of their social features as well as the custom sharing interface I’ve added. The article shown here is one lamenting the lost infrastructure of feed readers and hopes for future infrastructure from Jon Udell entitled Where’s my Net dashboard?

Conclusion and future

With either of the above set ups, there are a few quick and easy clicks to create my posts and I’m done. Could it be simpler? Yes, but it likely won’t be much more until I’ve got a fully functional Microsub server and reader up and working.

Of course, I also love Inoreader and its huge variety of features and great usability. While I’m patiently awaiting having my own WordPress Microsub server, I certainly wouldn’t mind it if Inoreader decided to add some IndieWeb functionality itself. Then perhaps I wouldn’t need to make the switch in the near future.

What would this look like? It could include the ability to allow me to log into Inoreader using my own website using IndieAuth protocol. It could also add Micropub functionality to allow me to post all these things directly and explicitly to my website in an easier manner. And finally, if they really wanted to go even further, they could make themselves a Microsub server that enables me to use any one of several Microsub clients to read content and post to my own website. And of course the benefit to Inoreader is that if they support these open internet specifications, then their application not only works with WordPress sites with the few appropriate plugins, but Inoreader will also work with a huge variety of other content management systems that support these specs as well.

Whether or not Inoreader supports these protocols, there is a coming wave of new social feed readers that will begin to close many of these functional gaps that made RSS difficult. I know things will slowly, but eventually get better, simpler, and easier to use. Soon posting to one’s website and doing two way communication on the internet via truly social readers will be a reality, and one that’s likely to make it far easier to eschew the toxicity and problems of social sites like Facebook and Twitter.

 

 

An Indieweb Podcast: Episode 10 The Thrilla in Manilla

Episode 10: The Thrilla in Manilla

Running time: 1h 28m 36s | Download (27.0MB) | Subscribe by RSS | Huffduff

Shownotes

October 1st will be the 43 anniversary of the Ali/Frazer fight, so this week’s title is apropos after David spent a month in Manila working on many IndieWeb related projects including the Micropub plugin, client discovery in IndieAuth, Post Kinds, etc.

In this week’s episode, we discuss new developments in WordPress and what David has wanted to accomplish for all these years in the IndieWeb community: the ability to read something on his phone, store it on his website to either share or just save, as appropriate.

Reply to Robin DeRosa about citation management

Replied to a tweet by Robin DeRosaRobin DeRosa (Twitter)
I’ve been (slowly) pecking away at trying to own all of this type of data on my own website. It sounds like what you’re hoping for is a cross between Derek Sifford’s Academic Blogger’s Toolkit which has a pretty slick WordPress interface for looking up and importing references and David Shanske’s Post Kinds Plugin which allows one to create specific post types like bookmarks, reads, notes, highlights, annotations, etc.

I think if Academic Blogger’s Toolkit could create an internal database within WordPress and an interface to allow you to easily import/export it as well as use it within your own instance, that might be the simplest solution to have ownership over all of one’s reference data. The Post Kinds plugin would give you the rest including the ability to hide your posts as private just to you or others granted access on your site.

Like Greg McVerry, Ian O’Byrne, Aaron Davis, and others I use my own site like a commonplace book and store bookmarks of things I’d like to read as well as things that I have read, usually along with notes, highlights, annotations, and other marginalia that I think would be of use.

Perhaps by adding one or two extensions, WordPress could be the perfect platform for doing this type of work without reliance on external sites?

Academic Blogger's Toolkit

https://wordpress.org/plugins/indieweb-post-kinds/

Reply to Now even more IndieWebified | Paul Jacobson

Replied to Now even more IndieWebified by Paul JacobsonPaul Jacobson (Paul Jacobson)
I just watched Chris Aldrich’s tutorial on how to configure a WordPress site for IndieWeb use. In other words, how to setup your WordPress site as pretty dynamic hub on the Web using a variet…
I’m glad the video helped out.

I’ve been a big fan of the Post Kinds Plugin as well. Honestly I wished that WordPress had gone the extra mile and adopted something more like it when it was working on the Post Formats concept a few years back. I’ve written a bit about the Post Kinds Plugin in the past and perhaps you’ll appreciate some of those pieces, particularly the bookmarklet portions for desktop and details about mobile posting.

Because Post Kinds and Post Formats are not one-to-one or onto functions, doing the mapping  in both directions is difficult, but when posting using a Post Kinds first method, you should be able to set the Post Formats you prefer. There are some useful defaults within the plugin, but they can be manually changed in the code available in the class-kind-taxonomy file in a relatively obvious way. In my case, while the mapping of “notes” to “asides” is a useful one, I prefer them to map to “status” for my current theme, so I just manually change that one word in the code to reflect my particular preference.

There’s a lot hiding under the hood if you want to tinker in the code. If you have issues or feature requests, I know that the developer David Shanske is very receptive to feedback towards improving the set up. (And similarly for almost all of the IndieWeb-related plugins which can be found on GitHub.)