Silhouette of geese against a dusky sky flocking together and flying/following each other in a V formation.

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.

Published by

Chris Aldrich

I'm a biomedical and electrical engineer with interests in information theory, complexity, evolution, genetics, signal processing, IndieWeb, theoretical mathematics, and big history. I'm also a talent manager-producer-publisher in the entertainment industry with expertise in representation, distribution, finance, production, content delivery, and new media.

18 thoughts on “From Following Posts and Blogrolls (Following Pages) with OPML to Microsub Servers and Readers”

  1. Thanks for consolidating this in one place, Chris. I caught snippets of the series and conversation between you and Ton in my Reader, but didn’t go back to search out everything. Now I have a concise place to go to when I have some time to read everything 😃
    For my own part, my Links page is powered by the old WordPress Links Manager. I had no idea that had an OPML import function – that would have saved me hours of manual entry! I also didn’t know it could generate an OPML file for import elsewhere. “Today I Learned.”
    In the last couple of weeks I’ve thought about creating a special page on my site to aggregate all of my Bookmark-type posts into one place. Similarly, I could create a custom “Kind” for Following, and aggregate those in a single place. Neither option would have their own automatic OPML file, but using a Kind does allow for a specific Feed for each type. It would allow for the full range of post meta to be added to each type too. The Post Kinds plug-in generates archives for each Kind, but I’m thinking a custom page would allow me to play with the presentation a bit more.
    It’s something for me to experiment with at the least!

  2. Thanks for this writeup, Chris.  I probably haven’t thought as much as I should about following posts, so your documentation is really helpful.
    You’ve reminded me that I’d like to eventually figure out a good way to have Yarns import and export OPML files.  Given that the impetus of Yarns vs a hosted server is to own your feeds, it’s a shame I haven’t implemented better data portability yet.
    Another idea your post brings to mind, is that it would nice to have an option to automatically create following posts (and add to the blogroll) when adding a new feed (and subsequently remove following posts when unfollowing).  This should be fairly easy to implement, and would take advantage of Parse-This since its integrated into Yarns already.
    Additional would be a bookmarklet for adding feeds.
    As usual,  you’re a fount of good ideas. I won’t have time to implement any of these things before IWS, but one of them might be a nice project for that weekend.

    Syndicated copies:

  3. I’ll have to read this blog posts and the included links several times to gain some understanding. It feels like this is all become incredibly complicated.

    Bookmarks

  • 🔖 Jack Jamieson

Leave a Reply

Your email address will not be published. Required fields are marked *