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.

Read We're closing Crosscut's comment section. Here's why — and what's next by Ana Sofia Knauf, Anne Christnovich, Mohammed Kloub (crosscut.com)
With the rise of social platforms and an uptick in threatening comments, the newsroom is taking reader engagement in a different direction.

We analyzed our Disqus data and we found that roughly 17,400 comments were made on our site in 2019, but 45% came from just 13 people. That data tells us that social media, email, phone calls, letters to the editor, our Crosscut events and an occasional visit to the newsroom are far better tools for us to hear about your concerns, story ideas, feedback and support.

The Disqus data statistics here are fascinating. It also roughly means that those 13 people were responsible for 600+ comments on average or roughly 2 a day every day for the year. More likely it was a just a handful responsible for the largest portion and the others tailing off.

Sadly missing are their data about social media, email, phone, and letters to the editor which would tell us more about how balanced their decision was. What were the totals for these and who were they? Were they as lopsided as the Disqus numbers?
Annotated on January 08, 2020 at 04:33PM

In the meantime, stay in touch with Crosscut by:
Liking us on Facebook
Following us on Twitter
Following us on Instagram
Chatting with us on Reddit
Signing up for one (or all) of our newsletters 

It seems like they’ve chose a solution for their community that boils down to pushing the problem(s) off onto large corporations that have shown no serious efforts at moderation either?

Sweeping the problem under the rug doesn’t seem like a good long term answer. Without aggregating their community’s responses, are they really serving their readers? How is the community to know what it looks like? Where is it reflected? How can the paper better help to shape the community without it?

I wonder what a moderated IndieWeb solution for them might look like?
Annotated on January 08, 2020 at 04:42PM

It would be cool if they considered adding syndication links to their original articles so that when they crosspost them to social media, at least their readers could choose to follow those links and comment there in a relatively continuous thread. This would at least help to aggregate the conversation for them and their community while still off-loading the moderation burden from their staff, which surely is part of their calculus. It looks like their site is built on Drupal. I would suspect that–but I’m not sure if–swentel’s IndieWeb Drupal module has syndication links functionality built into it.

Rather than engaging their community, it almost feels to me like they’re giving up and are allowing a tragedy of their commons when there may be some better experimental answers that just aren’t being tried out.

The worst part of this for me though is that they’ve given up on the power of owning and controlling their own platform. In the recent history of journalism, this seems to be the quickest way of becoming irrelevant and dying out.

Liked Syndication Links 4.2.1 and Simple Location 4.0.2 Released by David ShanskeDavid Shanske (david.shanske.com)

Released some minor bugfix editions today.

Simple Location

  • Rounds all numbers to a maximum of two decimal points, as I introduced a bug in the last version that would fail to fill in numbers in the post editor due form validation requirements.
  • Extracts additional location information from Compass…mostly the information I store when I’m on a plane, to generate a better description of the location. It also passes this info to WordPress more effectively so it could do more in future.
  • I also introduced a new location provider. If set, if you enter a 3 letter airport code in the location name box, it will replace it with the location and name of that airport, as well as the weather. In future, I may add a similar reverse address lookup for people.
  • Misc bug fixes

Syndication Links

  • Some bug fixes introduced in 4.2.0
  • Due to the request to allow syndication provider checkboxes to be checked by default, I introduced two new filters: syndication_link_checked and syndication_link_disabled. The first parameter of each is a boolean that if true, will set either checked or disabled on that Syndication Provider. The second and third parameter is the uid of the provider and the post_id of the post.
Hooray!
Home

55 °F heavy intensity rain

Syndication Links now supports per-post syndication to Micro.blog from WordPress

The inimitable David Shanske released the 4.2.0 version of the Syndication Links plugin for WordPress this evening.

In addition to some other useful upgrades and bug fixes, the big new feature this release adds is excellent syndication support for Micro.blog.

While many people use RSS feeds, JSONfeed, or other plugin methods for syndicating their WordPress website’s content to Micro.blog, this plugin now provides for a per-post decision about exactly what content to send to Micro.blog. It also naturally provides a syndication link from your site back to the Micro.blog post. To my knowledge no other method provides this  syndication link functionality.

As I suspect many may already be aware, if your site supports Webmention (typically done with the Webmention and Semantic-linkbacks plugins), then Micro.blog will notify your site with replies and comments to your post as they appear on Micro.blog. This provides one the ability to do two-way communication between the two platforms.

Set up and configuration for Micro.Blog syndication

If you don’t already have it, install the plugin and activate it, otherwise update it within your site’s administrative interface.

Add your Micro.blog account username to your user profile on your WordPress site. This is typically found at /wp-admin/profile.php. In my case I simply added c to the field labeled Micro.blog username.

screencapture of the WordPress user interface
Enter your Micro.blog username (not the full URL) in the appropriate field and save your profile.

Adjust your WordPress Syndication Links settings page (typically found at /wp-admin/admin.php?page=syndication_links) to include Micro.blog by using the appropriate checkbox. Be sure to save the setting.

Screencapture of the Syndication Links settings UI
I obviously have a lot of syndication targets. Micro.blog is always one of them. If you’re also using Micropub clients like Quill that support the feature, you can choose Micro.blog as a syndication target in those interfaces.

Remove, if necessary, any of the RSS, JSON, or other syndication feeds from your Micro.blog account so you’re not accidentally duplicating the syndication.

Add the JSONfeed URL from the bottom of the Syndication Links plugin settings page into your list of feeds at https://micro.blog/account/feeds.

Screencapture of the Syndication Links settings UI

Create a post, select Micro.blog as an endpoint in the relevant meta-box, and publish your post.

Once published, your post will ping Micro.blog’s server to indicate the new content which will then be displayed in your timeline. The Syndication Links plugin will then find the permalink URL of your post on Micro.blog and display it on your post (as per your settings) along with any other syndicated copies. This notification process is roughly real time, but may take a minute or two for your post to display and the syndication link to appear on your site based on the processing times on the relevant servers.

Screencapture of a post on my site featuring the new Syndication Links features for micro.blog
Here’s an example of what Syndication Links looks like on a post recently syndicated to Micro.blog. This example was syndicated to both Micro.blog and Twitter.

As an added bonus, Syndication Links plugin will also find the syndication links from Micro.blog in your current feed and add those to your original posts.

If you have any questions, need clarifications, or find bugs with regard to your set up, you can file issues for the plugin on GitHub.

 

A manual tweak for icons in the Syndication Links plugin

I’m not sure why I had never manually done the fix before, but I’ve had issues1 2 with the Syndication Links plugin showing icons for the reading.am service and my old chrisaldrich.wordpress.com site, which I primarily use as a pseudo-mirror/backup to my primary site. I figured there had to be a way to force them in instead of relying on the set up to process the links and show something. Reading.am doesn’t work because there isn’t an svg available for it and though there’s a WordPress icon, the plugin’s parser doesn’t seem to be able to recognize the subdomain properly.

Within the code at class-syn-link-domain-icon-map.php, I added the following two lines to the obvious spot in the list within the code to fix the icon issues I was having:

'chrisaldrich.wordpress.com' => 'wordpress',
'reading.am' => 'book',

I then reuploaded the edited file to my server. Essentially I’m hard-coding the domain name and the default icon I’d like to have the plugin display.

If the plugin is updated, I’ll obviously have to manually add them again, but the disappearance of the icons again will be pretty obvious and this post will document the necessary changes.

Although upon tweaking this I’m noticing that the reading.am icon isn’t working (I also tried ‘website’ instead of ‘book’ but that didn’t work either). Perhaps the .am tld is causing an issue? Alas…

I suspect that there’s some other bug hiding in the works as one or both of the two types of links above should default to the generic ‘website’ icon when a syndication link exists, but the system isn’t able to specify a particular icon. There may be some small if/else bug hiding in the logic of the plugin.

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?

Home

54 °F thunderstorm

It dawns on me that I haven’t used JetPack’s Publicize or social sharing functionalities in ages (particularly with the coming death of Google+), so I’ve gone in and finally turned them off. I’m still surprised they don’t return the URLs of where the content got shared for showing on the page with plugins like Syndication Links.

Update to the Syndication Links plugin for WordPress for Custom Endpoints

David Shanske has recently updated the Syndication Links plugin for WordPress that now allows users to add custom syndication endpoints to their websites so they can actually syndicate their content to external sites. 

In particular, this now includes syndication endpoints like IndieWeb News and indieweb.xyz subs. Configuring the plugin with a syndication name, UID, and the appropriate URL will create additional endpoint checkboxes in the “Syndicate To” metabox. (The UID is simply a unique identifier that the plugin uses in conjunction with Micropub clients, and the URL is the appropriate full URL to the appropriate syndication target.)

If one wishes to test syndication out, I might suggest using the test endpoint provided by indieweb.xyz. The appropriate entries in the custom provider section at /wp-admin/admin.php?page=syndication_links would be:

  • Name: xyz hottubs
  • UID: xyz-hottubs
  • URL:  https://indieweb.xyz/en/hottubs/
Settings for configuring custom syndication endpoints in the Syndication Links plugin

For convenience, the settings page also allows the user to disable (via checkbox) endpoints they don’t use or don’t want to appear in their administrative meta boxes.

An example of the meta box that appears in the administrative interface when creating new posts. To syndicate your content to the desired sites using Webmention, just click the appropriate boxes.

Use with Micropub Clients

The update to the Syndication Links plugin also means that Micropub clients with appropriate support (like Quill, for example) will know about which syndication endpoints your site supports and will be able to include them in its checkbox list for auto-syndicating via Micropub.

Example Quill micropub interface with syndication endpoints configured within Syndication Links plugin

Naturally, people using these methods should be very careful about how they’re using them so that they aren’t abusing or spamming these channels. Those abusing these channels will certainly find their sites blocked from posting. Keep in mind that some of the syndication endpoints shown here are examples and that other endpoints exist or can be created on sites like indieweb.xyz. 

Bridgy for WordPress

I’ll also note in passing that the syndication functionality to Twitter, Flickr, and GitHub that the Bridgy for WordPress Plugin provides is now also available within the Syndication Links plugin, so those who already have Brid.gy set up with their websites can easily and safely deactivate and uninstall that plugin. Doing this will prevent the duplication of meta boxes in one’s admin UI. Given the migration of some of its functionality, it is certainly possible in the future that this plugin may be deprecated or the Brid.gy set up portion of its functionality may be merged into another plugin like the IndieWeb plugin.


👤  Chris McLeodJoe Jennett, and Khürt Williams may appreciate this the most for use with indieweb.xyz. It may be a minute too late for Brad Enslen however.

A few display quirks in the Syndication Links plugin

Filed an Issue Add and Display Syndication Links. (GitHub)
Contribute to dshanske/syndication-links development by creating an account on GitHub.
With the most recent update I’m noticing a few small edge case quirks that seem to have popped up:

For syndication to indieweb.xyz the displayed result (set for icon only) is giving a relatively interesting “info” icon,which is a reasonable proxy, but sadly the hover text is also “info” instead of a more useful or expected “indieweb.xyz”.

For syndications to reading.am (which I’m guessing still doesn’t have a service specific icon) instead of giving the old default image of a globe icon, it’s not displaying anything at all. I haven’t tested specifically, but are unmapped urls still given that old default icon?

I’m still seeing issues with my chrisaldrich.wordpress.com URL. Previously it displayed a blank space (presumably not able to understand the inpub), but the newer version is displaying the word “WordPress” even when I’m using icons only. (Example: https://boffosocko.com/2019/02/14/a-sketch-for-an-indieweb-bullet-journal/#Syndicated%20copies) My initial inclination is that the two instances of “WordPress” at https://github.com/dshanske/syndication-links/blob/057733d921b485cf8f0eb98b28b104ccb708bd21/includes/class-syn-meta.php#L333 are both CamelCase when all the other examples around/near that segment of code are all lower case.

👓 Syndication Links 4.0.0 Released | David Shanske

Read Syndication Links 4.0.0 Released by David ShanskeDavid Shanske (David Shanske)
Today, from my hotel room in Berlin, Germany, where I am preparing to attend Indiewebcamp Berlin, my first European Indiewebcamp, I released Syndication Links 4.0.0. The major version number change is because in this version, Syndication Links takes on a new role. As promised previously, I’ve buil...
Yet another update from the unstoppable David Shanske! I can’t wait to try this out.

A pencast overview (with audio and recorded visual diagrams) of IndieWeb technologies

I’ve seen a bunch of new folks coming into the IndieWeb community recently who are a bit overwhelmed with the somewhat steep learning curve of both new jargon as well as new ideas and philosophies of what it means to have one’s own domain and presence on the internet.

While parts of the IndieWeb’s overall idea are quite simple, where the actual rubber meets the road things can be a bit overwhelming, and more so if you’re a non-technical person. This doesn’t have to be the case. Generally I’d recommend to people to begin attending local Homebrew Website Clubs or, even better, to attend an IndieWebCamp in person to get a one day crash course followed by a day of building and help. Sadly, life can intervene making these not as quick and immediate a reality as one might otherwise like.

So toward the end of making the crash course to explain in relatively broad terms some of the basic terminology as well as some of the bigger individual pieces and what’s happening when using an IndieWeb site with most of the major new functionality built in, I’ve made a short pencast of what is going on. Naturally there’s still a tremendous amount to learn and do, and a million things which could always be better or improved, but if you’re setting up a site using WordPress this overview will hopefully get you a lot further a lot faster. (It may also be useful for those setting up Known or even something for micro.blog, though those will have different plugins and other small quirks that aren’t covered here.)

What is a Pencast?

Pencast?! What is that? It’s a technology that has been around for a while courtesy of Livescribe.com digital pens which not only record an audio file of what is being said, but also record penstroke by penstroke what is being written. Even better the audio and the penstrokes are crosslinked, so you can more easily jump around within a lecture or talk.

To do this you should download the version of the notes in Livescribe’s custom Pencast .pdf format. This seems like a standard .pdf file but it’s a bit larger in size because it has an embedded audio file in it that is playable with the free Adobe Reader X (or above) installed. With this version of the notes, you should be able to toggle the settings in the file (see below) to read and listen to the notes almost as if you were sitting with me in person and I was drawing it out in front of you as I spoke. You can also use your mouse to jump around within the pencast by touching/mousing to particular areas or by jumping forward and back by means of the audio bar. If you need to, also feel free to zoom in on the page to have a closer look.

Pencast version

An IndieWeb Crash Course [14.9MB .pdf with embedded audio]

Viewing and Playing a Pencast PDF

Pencast PDF is a new format of notes and audio that can play in Adobe Reader X or above.

You can open a Pencast PDF as you would other PDF files in Adobe Reader X. The main difference is that a Pencast PDF can contain ink that has associated audio—called “active ink”. Click active ink to play its audio. This is just like playing a Pencast from Livescribe Online or in Livescribe Desktop. When you first view a notebook page, active ink appears in green type. When you click active ink, it turns gray and the audio starts playing. As audio playback continues, the gray ink turns green in synchronization with the audio. Non-active ink (ink without audio) is black and does not change appearance.

Audio Control Bar

Pencast PDFs have an audio control bar for playing, pausing, and stopping audio playback. The control bar also has jump controls, bookmarks (stars), and an audio timeline control.

Active Ink View Button

There is also an active ink view button. Click this button to toggle the “unwritten” color of active ink from gray to invisible. In the default (gray) setting, the gray words turn green as the audio plays. In the invisible setting, green words seem to write themselves on blank paper as the audio plays.

 
If you have comments or feedback, I’m thrilled to receive it. Feel free to comment below, or if you’ve already IndieWebified your site, write your comment there and send it to me via webmention, or add your permalink to the box below. Ideally this version of the pencast is a first draft and I’ll put something more polished together at a later date, but I wanted to get this out there to have a few people test-drive it to get some feedback.

Thanks!​​​​​​​​​

Reply to Bridgy Registration

Replied to Bridgy Registration · Issue #102 · indieweb/wordpress-indieweb (GitHub)

I have some functionality in the Bridgy app that allows someone to register for Bridgy for various services. I'm thinking of moving this functionality into the Indieweb plugin. All it is is a series of links that redirect you to the Bridgy site and redirect back when done.

That seems like Indieweb plugin territory.

I think there’s certainly a case to be made that it may make sense to include it in the IndieWeb plugin, particularly as it’s often a one time set up operation.

I also think that it might make a lot of sense to put that piece into the Syndication Links plugin as well since that’s a piece that directly relates to something Brid.gy is looking for to do backfeed. Doing this may also make even more sense if Syndication Links becomes a tool for POSSE as well. It would be nice to have a definitive one-stop-shop for syndication and backfeed related functionality.

As a “throw-away” aside, if you’re looking for a good name for such a thing, perhaps Boomerang? Throw your content out there and all the responses return back to your site?

 

 

Setting up WordPress for IndieWeb use

https://youtu.be/ZsPjdk2-m68

I spent some time this morning doing a dry run through setting up a suite of IndieWeb plugins on a fresh WordPress installation. Going off of a scant outline I talked for almost two hours describing IndieWeb functionality as I set it all up. Hopefully it will provide a useful guide to newcomers to the space until I can write up a more solid outline and take a more polished approach. Apologies in advance for the roughness of the audio, lack of quality, and even live mistakes. Hopefully folks won’t mind suffering through until we can come up with some better tutorials.

As prerequisites, I assume you’ve already got your own domain and have installed WordPress on a server or other host. I actually finish setting up the WordPress install as I start the video and then sign in for the first time as we begin.

While many of the core plugins are straightforward, there is a huge amount of leeway in how folks can choose (or not) to syndicate to sites like Twitter, Facebook, and others. Here I make the choice to use the Bridgy Publish plugin and only demonstrate it with Twitter. With one example shown, hopefully other silos can be set up with Brid.gy as well. The IndieWeb wiki details other options for those who want other methods.

At the end I walk through creating and syndicating a post to Twitter. Then I demonstrate commenting on that post using another CMS (WithKnown) from a separate domain.

I do my best to provide verbal descriptions and visual examples, but these can certainly be supplemented with further detail on the IndieWeb wiki. I hope to come back and add some diagrams at a later date, but this will have to suffice for now.​​​​​​​​​

For those who would like an audio only version of this talk, you can listen here (.mp3):

Feature Idea: UI code to create an original-of page and/or widget

Filed an Issue Syndication Links Plugin for WordPress (dshanske/syndication-links) (GitHub)
Add and Display Syndication Links https://wordpress.org/plugins/syndication-links/
I noticed that Kartik has an an original-of page at https://kartikprabhu.com/original-of which may have inspired the original-of URL functionality for use in Syndication Links.

For improved UI, is there a code snippet that could be created (or which already exists?) that could be added to a custom page to allow the creation for a simple search for such things the way Kartik has done? I’m thinking of something along the lines of <?php get_search_form(); ?> which can be added to 404 page templates to allow the addition of a search box on such a page to get the user moving in the right direction.

This type of original-of search functionality could also be added to a simple widget as well so that one doesn’t need an entire page for it. Suggested verbiage: “Have a social media permalink for a piece of content? Use it here to search for the original version on this site.”