I’ve been using the Post Kinds plugin for a few years on this WordPress site. It allows you to easily style a specific type of posting (a like, bookmark, reply, rsvp, read, check-in etc), it automatically pulls in the relevant information form the posting you’re reacting to, and adds the right machine readable micro-formats so that if you ping the source website that site can see if it is a direct reply, a like, a regular mention etc.
David Shanske deserves a lot of credit for creating and maintaining this valuable WP plugin, and for his contributions to the IndieWeb community over the years. Yet I always kept some reservations even while I’ve been depending on the Post Kinds plugin. One thing was the ability to shape how these post kinds look, meanwhile addressed. One is it prevents me from adopting Gutenberg in WordPress, even while others (of the few) plugins I use are moving to a Gutenberg only stance, meaning conflict and/or hard choices lie in the near future of this blog.
Most of all however I balk at how information around a post kind gets stored. To me the thing I am reacting to is an inherent and equal part of my posting. Because pointing to the thing I’m reacting to is nothing other than a hyperlink, the core feature of the web itself. That in the case of a post kind such a hyperlink is more fancily handled and presented does not change that. However the thing I am reacting to gets lifted outside the posting and is stored differently in the WordPress database by Post Kinds. This has as a consequence that should I switch off Post Kinds the connection between my postings and what it is reacting to is severed, even if it is still in the database. It changes “Reply to hyperlink.tld: That’s a great idea” to “That’s a great idea”, which is a serious loss of meaning. In that way Post Kinds becomes a lock-in and a potential single point of failure that breaks the web, at least my part of the web that this blog forms. The two images below demonstrate the effect:
A ‘like’ posting with Post Kinds enabled
The same posting without Post Kinds, which means a serious loss of information because the actual hyperlink to the thing discussed disappears
So I want to break out of that lock-in, and find a work around. This means all relevant info about the thing I am reacting to should be in the actual posting. My current idea is that I will create simple templates for the post kinds I actually have used until now, and put them behind a keyboard shortcut. That way I can ensure the right micro-formats are used for others to interpret. Over time I can replace the existing Post Kinds dependent postings (about 900 in this blog) in the same way, clearing the way for switching it off entirely. This should increase the autonomy of keeping this blog, and decrease dependencies.
@ton That’s an interesting point. In Micro.blog, we always put everything — reply URL, photo reference, block quote, etc. — in the post Markdown or HTML, which isn’t as rich as Post Kinds from a metadata perspective, but means it’s portable anywhere. Wonder if Post Kinds should have a special export that “flattens” everything into the post content.
What I do—I’ve probably said this before, but I’m going to repeat it anyway—is, I have a couple code snippets in my
functions.php
that filter Micropub requests before they’re saved to the database, and these add all the hidden metadata to the actual post content, nicely microformatted and all.Then on the desktop, or rather, within WordPress’s admin interface, I either type things out by hand or use a “text expander.” And then I also have a bit of code that allows me to use “Press This” to create correctly formatted bookmark or read posts.
If you ever wanted to rework existing posts, I’d write a script—not even a plugin, but something you run from a terminal—that looks for all of these custom fields and prepends them to the post content by means of precisely the type of template you’re thinking of. Might not for every single post, but that’d be the easiest way, I think.
Definitely not going to change 900 posts by hand! 😀
Hi Jan, yes text expansion is what I plan to do as well. I basically create all my postings through the back-end anyway.
Although I’ve found the post kinds plug-in amazingly useful I’ve wondered about the problem of moving away from it.
As I review old posts I do find some surprises in the way the display of posts has changed, having the post kinds “stuff” in the post would help I think. I’ve no idea how I could do that if I wanted to.
Ton wrote a post about his usage of the Post Kinds plugin for WordPress and used the word “lock in”.
I understand what he is trying to reference by using the phrase “lock in” but I think it’s problematic. It’s open source software (as is WordPress itself) — you are not locked in, you just have to decide where to invest resources of time, money, and energy.
A user has (at least) two options that work with the plugin:
1) Fork it
Find likeminded users and support a fork that does what you want.
Maintain it over time, either as a full fork or cherry picking updates from upstream.
2) Add features to the current plugin
Suggest the feature. Find like minded users. Find a developer to make a PR or compensate David to do it.
And of course for plugins like this, compatibility with the “host” system means keeping up with major architectural changes over time, too.
I don’t mean to suggest that Ton should do either of these two things, just that lock in is not the right phrase at all.
His plan is to store the Post Kinds data directly in the “main” WordPress content:
And so the dependency is just on (open source) WordPress, which has a very large user and developer base and is likely to be maintained for a long time.
Also via Ton is a good read on Permacomputing, which has themes I’m thinking about with respect to user agency and maintenance of software over time.
Currently, I think we are entering into a post-open-source world. Large corporates are behind a vast majority of maintained software that happens to be licensed as open source. Software is built dependent on proprietary cloud platforms in such a way that being open source doesn’t make it portable.
I am interested in non-commercial open licensing as a new default I want to encourage for software developers, such as the Prosperity Public License or IndieCC.
And on the user agency side, I want to encourage collectivism: pool your time, energy, and resources to #BuildSoftwareTogether. Not as a “user”, but as an owner or member that wants to see a piece of software thrive.
For this collectivism, new tools like Open Collective exist. I have a handful of projects there running to bootstrap a few pieces of collective software myself.
Anyway, thanks Ton for the writing prompt. Don’t feel locked in!
John, that is good news.
One of the interesting aspects to having two sites is running two different setups. I still use the Classic Editor Plugin for my Collect blog and have started tinkering with Gutenberg in my main blog. I find blocks really cumbersome and appreciate Tony Hirst’s sentiments. I actually often carve out my posts in my Collect blog and copy the contents across, but the translation to blocks can be rather frustrating. On top of that, I am not sure where it leaves Post Kinds, which I guess is the point Ton Zijlstra is trying to make.
Ton, I think that this is something I have been in denial about for a while. I like what Post Kinds provides me, but I have often wondered about what would happen if I decided to walk away from the Post Kinds Plugin or WordPress. I like Manton’s idea of a special export. Definitely left me thinking and realising the limits to my skills.
Houtje-touwtje, literally ‘small stick-short rope’, or cord loops fasteners in English, is the more down to earth and old Dutch phrase for putting stuff together with duct tape (known as MacGyver tape to many here, after the 80’s tv series). After messing around in the FreshRSS back-end last weekend, yesterday I made a houtje-touwtje working version to let me post more easily about the things I find in my feed reader.
In my previous post I mentioned I want to support three different reactions:
favourites, something I liked, or want to let the author know I appreciated
bookmarks, something I (want to) read, and keep reference to for my notes
replies, something where I comment on or reply to a posting and its author directly
Four labeled posts in my feed reader
The way I mark postings in my feed reader is attaching a label to them (favourite, bookmark, reply)
Then with the SQL statement from the last posting I pull out those labeled postings (label, url, title, author, and content).
Yesterday evening I attempted to bring it a step or two further, but ended up with something that works.
I created a php html page that shows me, using the SQL query, every labeled posting and for each posting shows a webform. That webform is needed because I want to be able to add two things to every labeled posting (though they’re not mandatory)
My motivation for favouriting, or bookmarking, or my reply
A quote of the bit in the original posting I am picking up on
The form for me to add motivation and selected quote
Next to that the form is needed to forward the other information (link, title, URL) to the next stage, along with my response and quote. This simultaneously allows me to clean up URLs, shorten the title or provide the actual author name if the post only contains a shortened username e.g.
The webform also contains a field for the total number of labeled items (hidden), and a field for the label itself. Again needed to forward them to the next stage of the process.
The second stage is that submitting the form, calls the same php page again, but this time to process the submitted form information (no longer the database query)
Based on the label (fav, bookmark or reply) it selects a template for how I want to show those in my blog (each have their own svg-icon and first sentence), uses the right microformat, and adds in the url, author, title and my reaction and selected quote in the right spots. The microformat is relevant for when my posting sends a webmention to the website I’m reacting to, and lets that site know if it’s a reply (to show underneath in their comments), or a bookmark or favourite. Assuming that the other website can receive webmentions that is.
Resulting HTML
The result of that is then shown to me in HTML. I paste that HTML into my blog editor, add things like posting categories and tags, and hit publish. In essence I’ve replaced what the Post Kinds plugin, that I stopped using, in my WordPress blog did before: automating fetching some info, and adding it into my posting. It is akin to what I had previously, where I weekly posted links to my blog from my Evernote bookmarks using e-mail.
The posting on the blog
This ‘houtje-touwtje‘ set-up doesn’t do the fancy things yet, like posting itself automatically to my blog through micropub (UPDATE January 2022 it now does!), or providing me this functionality within my FreshRSS reader’s interface. Also, after posting things, I need to manually delete the labels, so they don’t resurface the next time I run the php script.
Another path to explore is using the same or similar workflow to put labeled posts into my personal notes.
This morning I tested out the workflow, and I was pleased with the result. I loaded up the feed reader, and did my usual reading. I marked things for follow up. I ran the script, added my motivation and selected quotes. Pasted the resulting HTML into my blog, added categories and hit publish. This definitely feels smoother and less time consuming. It’s been a while I posted more than 1 thing based on my feedreading that day, let alone four (1, 2, 3, 4) within minutes of reading it. The ‘normal’ routine was ending up with a bunch of open tabs in my browser, and at the end of the day giving up and hitting close-all for those I didn’t get around to during the day.
[Update: the php script is available in my GitHub account]
This week I recovered from Covid-19. I mostly kept to myself on the top floor of our home and later in the week also in my home office space. Y went back to school Tuesday after no longer showing symptoms. We went in for an official test on Monday. E continued to test negatively. I of course tested positive and secured my spot in the official statistics. I consider myself recovered now, and as it’s been 14 days since my first symptoms also will be breaking my isolation from today. I do still have a somewhat itchy throat. Breaking isolation from tomorrow means little, as meanwhile lock-down restrictions have been tightened again. The difference is I can leave the house, go to the park and to the shops when needed, but will otherwise be at home as everyone else.
This week I did work, but as I still easily tired, I tried to follow my energy levels. This week saw me
Preparing three meetings for a client for the coming two weeks, one with the European Commission, one with all INSPIRE data holders in the Netherlands, and one with a client’s advisory board and board. This was quite a bit of work.
Finally receiving a Jabra hybrid meeting microphone I ordered online over three weeks ago. Somehow they never started processing the order, until I complained. Then it shipped within a day. No word of apology of course. Also their order form and feedback form was in Dutch, but then I received automated responses in Italian, French and Spanish, and mails from their support staff in English. The support staff was responsive and helped me well, but if you cannot ensure multilingual support, don’t pretend to!
Having the monthly all hands company meeting, in which I presented a small tool to better track how busy we all are. We also announced everyone will get the week between Christmas and New Year off, not counting it against their 25 vacation days. We also took delivery of the ‘New Logic’ upcycled travel bags. I had ordered them through a Kickstarter project in the summer. Then it was unsure we could even travel in the summer, so I ordered everyone bags that were unsure to ever be delivered, as it seemed fitting.
Having the weekly client meetings.
Attending a half day session on digital twinning
Joining a half day work session on a reference architecture for a national digital twin of the built environment.
Pruning some shrubs and roses in the garden, removing also what had grown over the roof of our shed. Still a lot of pruning to do in other parts of the garden. The first time I was outside again in 2 weeks (except for getting tested)
Doing the digital type of gardening. Fixed where e-book highlights end-up as resource for my notes. Removed Flickr embeds from my blog, now there are just 90 postings still to go (but they all have multiple images, so it’s easily 600 images stil.) I also took the opportunity to further clean up those postings (removing Technorati tags, which stopped functioning in 2014, from the body of the posting e.g.). Made a template with which I can replace Post Kinds check-ins in my blog with a basic form so they no longer use Post Kinds for it (because). Enjoyed making use of my quick-n-dirty posting from Fresh RSS.
Medical waste shipping containers on the parking lot next to the Amersfoort Covid-19 testing station.
Inmiddels gebruik ik de Post Kinds plugin (zie mijn handleiding) al weer een tijd op deze site. Het idee van de plugin is erg goed: Je kunt meerdere soorten posts maken en deze naar eigen believen vormgeven of weergeven. Het is een uitbreiding op de Post Formats die WordPress niet echt meer lijkt te ondersteunen. Daarnaast haalt de Post Kinds plugin relevante informatie op als je een link maakt naar een andere site, iets wat ik geregeld doe omdat ik vaak bookmarks deel
Helaas heb ik al tijden gedoe met de plugin, iets wat me weer opviel toen ik mijn archief teruglas. Eind december 2020 liep ik al tegen dezelfde problemen die ik nog steeds heb. In mei 2021 botvierde ik wederom mijn frustratie in een blogpost, en gelukkig waren zowel Ton als Jan zo vriendelijk om me richting mogelijke oplossingen te sturen. Ik weet dat Ton inmiddels bezig is (of klaar?) om Post Kinds uit te faseren. En deze plugin van Jan biedt ook mogelijkheden.
Mijn site transformeert weer naar een verzameling losse bookmarks, notities en de toevallige langere blogpost. Daar zal ik de machinekamer dan ook beter op moeten inrichten. Vooral omdat ik veel mobiel doe en niet teveel stappen wil zetten om iets te kunnen posten. De traditionele WordPress app zou zelfs nog een mogelijkheid zijn, maar dan mis ik mogelijk de fraaie koppelingen die onderhuids worden gelegd tussen mijn site en de bookmark. Zoals ik hierboven naar Ton en Jan link en zij daar (hopelijk) een notificatie van krijgen. Zo bouw ik mee aan een open en toegankelijk web. Fijne bijvangst.
Maar goed, ik ga me weer eens verdiepen in de mogelijkheid om Post Kinds uit te faseren, maar dan moeten de 800+ blogposts die deze plugin heeft gemaakt wel worden omgezet naar iets anders. Of ik verdiep me weer iets meer in de filters en hooks mogelijkheden van WordPress om de Post Kinds nog beter naar mijn wensen te maken.
We zullen het zien!
<!–
–>
« Bookmark: Doomsday Algorithm
Unfortunately I’ve been struggling with the plugin for quite some time, something that struck me again when I reread my archive. At the end of December 2020 I already ran into the same problems that I still have. In May 2021 I once again expressed my frustration in a blog post, and luckily both Ton and Jan were kind enough to steer me towards possible solutions. I know that Ton is now busy (or ready?) to phase out Post Kinds. And this plugin from Jan also offers possibilities.
Google translation.