Switched to ClassicPress

A few weeks ago I decided to switch this site to ClassicPress. The recent WordPress drama was merely the final straw.  It was years of the block editor, aka Gutenberg.

I want to write content. The block editor feels like I am typesetting a magazine. The classic WordPress editor feels like I am writing content. Most people don’t need to handle the level of visual manipulation WordPress now makes default.

Matt, the cofounder and leader of WordPress wrote about this in 2017. And it mirrors that thought. I have issues with the classic editor and how integrating certain metadata works…but the benefits of a simple text entry for the bulk of my content can’t be denied.

There comes in ClassicPress. And I have my criticisms there too. Nothing is perfect. Currently tracking with WordPress 6.2, they are committed to a leaner version of WordPress that focuses on a classic editor experience. Version 2.3.0 just came out, and updates dependent libraries, removes Javascript in favor of HTML5 elements…instead of layering on more and more client side Javascript to help things run.

In previous versions they added categories and tags to media, redesigned the media modals to remove additional deprecated libraries, added security enhancements, and…in a feature I didn’t expect and cannot find much discussion or posting on, adding a new object relationships table.

This makes it possible to relate any object in ClassicPress to any other object. All that’s needed are the object types of the two items and the ID of at least one of them. Being as I am keeping compatibility with WordPress at this time, I have not used it for anything…though I can think of some great uses.

To quote the ClassicPress team themselves…it is not just WordPress without blocks, it “is developing its own personality, while performing faster than WordPress and with a codebase that’s only around half the size”.

I will continue developing for both platforms…and not specifically developing blocks because they do not interest me. But I look forward regardless to what we can build.

Determining Good Syndication Defaults

I’ve been very reluctant to set defaults for syndication, making options be selected each time instead. This is a bit problematic because I like to reduce friction.

The issue is that I don’t want them to be global. I want them to be a bit more granular.

For example, a hallmark of a note for me is that is doesn’t have an explicit title. Maybe I want all notes to go to all services that support them unless I say otherwise….

I am worried about a mistake I made years ago involving importing old posts… so the code needs to check the published date and not post anything old automatically.

Responses to URLs on a syndication site should automatically go out to that site…but not necessarily to other sites.

I had a discussion about this with my Indieweb associates at IndieWebCamp San Diego and I’m still not sure what I’ll end up doing.

My IndieWeb Journey – 10 Years Of IndieWeb

This was originally part of an introduction at IWC Online in 2020, but I’d never posted it. As my 10th anniversary of joining the Indieweb chat is today, I thought I’d post on it.

“Your high school’s yearbook club just graduated and knows HTML”—Chloe Weil

Photo of IWC 2014 East
IndieWebCamp 2014 East – June 28, 2014

 

Making an Appearance

Good Afternoon, I am interested in your philosophy and wish to subscribe to it. – First visit to the Indieweb chat room.

I first heard about the IndieWeb on March 6, 2014 when Amber Case, who co-founded IndieWebCamps, appeared episode 80 of the now defunct podcast, In Beta, talking about the upcoming IWC SF.

The ideas meshed with what I myself thought…you should have a website and post there. I’d flirted with websites, and by 2014, I had been writing blog entries elsewhere under a variety of different usernames and identities regularly for years. I had tried to resurrect my website because I was tired of the only identity people could find being one on someone else’s site.

 

My First IndieWebCamp

I found out that there was an upcoming Indiewebcamp in my area. So my involvement with the Indieweb physically began on April 26, 2014 when I visited my first IndieWebCamp, IWC NYC 2014.

IndieWebCamp NYC 2014 Day 1
IndieWebCamp NYC 2014 Day 1

 

IndieWebCamps

The original IndieWebCamp, in Portland Oregon, which was later renamed the IndieWeb Summit, has been going on since 2011. A UK event joined in 2012, but 2014, the year I joined, was the first year we really took the idea on the road. We had events at MIT, Online, San Francisco, New York, the UK, and for the first time, the Portland event had counterparts running concurrently in New York and Berlin.

I continued to participate in Indiewebcamps until 2020, when the pandemic put that on hold, and this past December, we finally got a US based one together again.

Evolution

Here is an early screenshot of my site from April 2014. My site has changed its look many times, but the data still remains the same.

This is what that post looks like today

What Has Changed

Not much. When I joined in 2014, I wasn’t much of a developer. I have gotten better, building my knowledge of IndieWeb and WordPress concepts and helping to maintain Indieweb plugins for WordPress.

As a community, when I started we had Microformats and Webmentions, IndieAuth was only something one person had implemented. We’ve added Micropub and Microsub and continued to iterate on the other building blocks.

So I Finally Got COVID

The title sort of says it all. Three years of changing my behavior, getting criticized for still wearing a mask(which I’m not sure is anyone’s business any more than if I wore a bowler hat), my number finally came up.

It was a surprise to many people, including me. And to be honest, despite keeping up on things, I’m not an expert. I keep asking myself what chain of events led to this, but I’ll likely never figure out.

The incubation period of COVID is such that during the period I could have gotten it I was on a plane(and no one sat in the seat next to me), a train(also no one next to me), and walking around outside. Could I have been too close to someone when I took an outdoor mask break? Maybe. Who knows?

As of now, people who were close to me when I subsequently calculated I was probably contagious have not reported getting ill themselves. That was also hard for me to determine. I’ve had every COVID booster, which is supposed to reduce symptoms. And the symptoms felt like a sinus infection…which I get multiple times a year. I sniffle all year round, and there were several people where I was reporting sinus issues because of pollen that was flying around, so I made an assumption.

So, this gets to the…what do I learn from this? I’m still not sure. I don’t know how often I should test when I feel no symptoms. I didn’t go to anything when pre-testing was common etiquette. It clearly isn’t now for most people. So, I have come up with a few possible asymptomatic testing ideas and am trying to decide which to adopt.

  • Test after any plane flight or similar as a confined space with close contact.
  • Test before and after any gathering. Gathering being in close contact with a group of people for an extended period. Before to ensure not spreading anything unknowingly.
  • Test after being in an outdoor space with other people for an extended period of time.
  • Assume any respiratory illness or distress could be COVID and test.

So, I have been in isolation for 5 days as of tomorrow. The CDC has a page of advice on this. If you had symptoms, Day 0 is the day of symptom onset, regardless of your first test. Day 1 is the first full day after the symptoms start.

They advise staying at home for 5 days and isolating from others. You can end isolation after 5 days if you have no symptoms or if you have been fever free for 24 hours after Day 5.

Regardless of when you end isolation, you are supposed to, until Day 11, avoid being around high risk individuals and wear a mask. I got stuck in my parent’s guest room, and they are high risk individuals, so we’ll see what I figure out. They note that with two sequential negative tests 48 hours apart, you may remove your mask sooner than day 10.

There is also the risk of COVID Rebound. COVID rebound is defined as a recurrence of COVID symptoms and/or receiving a positive COVID test after having the disease and then testing negative. It has been reported to occur between two and eight days after initial recovery.

Of course, all of this is the advice of the US CDC. I checked the UK’s NIH website, and they don’t say anything about masks. The Canadian authorities state you should stay home until you experience no symptoms, and then wear a mask for 10 days. No wonder I’m confused.

I’m also trying to figure out the issue of cleaning…again for the benefit of high risk individuals. I have laundry piling up, and this building has a shared laundry room. So, how long before I put any laundry in? Do I disinfect the machine after? How? What do I do with things and surfaces I touched? The information on how long the virus might stay on a surface is somewhat varied. However, the general agreement is that the chance of catching COVID through surface contact is slim. Still want to clean everything though.

As an analytical person, I want to refine my behavior as a result of this, but I’m not sure exactly how. What do others think?

 

Indiewebifying a WordPress Site – 2023 Edition

Last year, I wrote a post on how to Indiewebify a site…it was actually in response to a CSS-Tricks post, and a successor to previous posts I had written on the subject.  I’d suggest you read that article first, and return here, and I’ll go over where we are a year later, and what is to come.

We could always use more contributors to IndieWeb plugins, and there is so much to do. One of the biggest problems is probably that many community members, but not all, prefer classic WordPress to the current Gutenberg block editor, and this does hinder individuals who want to use the latest and greatest. For me, I just am not as interested in writing Javascript vs PHP code.

So, to summarize some things from last year, what has changed, and what is in the future.

The IndieWeb plugin offers an h-card template and widget. This would be the perfect place to add a block option if a contributor was interest. It adds tools to help you show your identity, and suggests other IndieWeb plugins you might try. Sort of a Jetpackesque idea.

It offers rel-me links, either visible or hidden. Now, other sites are using rel-me again…Mastodon, Pixelfed, etc. This allows them to also verify distributed identity…that one URL and another URL are the same person because they link to each other with links marked up with rel=”me”.

IndieAuth doesn’t have many new features to add, but it continues to be refined and improved for improvements under the hood. It allows you to log into a WordPress site using an IndieAuth endpoint…most commonly another IndieAuth enabled WordPress site, or for a client application to get a token to act on your behalf…most commonly a Micropub client.

Micropub, which is a plugin I intend to do some work on in the near future, allows you to publish content to your site using a Micropub client. The advantage of this is the Micropub server(built into the plugin), converts the Micropub vocabulary into a WordPress post. So there can and are a variety of bespoke applications that allow you to post any number of content types.

Webmentions, completing a long project, hit version 5.0 in April. The 5.X branch is a merging of the Semantic Linkbacks plugin and the Webmentions plugin, with a completely rewritten and updated codebase. The way webmentions were implemented prior to 5.0 was a direct copy of pingbacks and trackbacks. We have and continue to move away from that.

The IndieWeb is built on parsing of Microformats. Microformats are a specific and simple markup to HTML that allows a parser to gain context…and therefore render a reply, like, link preview, etc. The new Webmentions plugin has several fallbacks of less fidelity now, still favoring Microformats. If it is a WordPress site, it will try to render the information from the WordPress REST API. If it isn’t, it will try to get basic information from JSON-LD or meta-tags…This basic information is a summary, author(image and URL), etc.

Brid.gy, the service that bridges other sites to yours via Webmention and Micropub, has added some Bluesky support. Brid.gy Fed had come on to allow your site to interact with ActivityPub supported sites(like Mastodon).

WordPress has its own ActivityPub plugin, created and maintained primarily by the creator of many IndieWeb plugins, Matthias Pfefferle. I’m not personally involved in that as a contributor(he has more than enough interest elsewhere), but I’m a user of it.

Syndication Links displays links to other versions of a post..on any arbitrary site. It supports integrations with Bridgy and others to trigger the syndication to that other site.

A few other useful plugins….

  • Simple Location – if you want to add location awareness to posts, and static maps, this supports it and integrates well with other IndieWeb plugins, because I wrote it.
  • Tempus Fugit – A collection of time based website tweaks, such as adding This Day and This Week URLs and features.

If you do want to experiment with Blocks and the IndieWeb, you can try Jan Boddez’s Indieblocks.

If you prefer the Classic Editor, I still maintain the Post Kinds plugin for myself and others.

 

IndieAuth for WordPress 4.4.0 Released

Version 4.4.0 of the WordPress IndieAuth plugin was released today, and it contains a lot of changes, but very little in terms of noticeable ones.

The biggest changes involve the removal of the already hidden by default Remote IndieAuth code, which allowed you to use a third-party indieauth endpoint. The plugin now only allows you to use the local code.

Why is this? Because the plugin is a full IndieAuth endpoint. If someone truly is interested in using someone else’s endpoint, then I’ve put that code aside if it is needed.

I also reworked a lot of the code based on the newest revision of the IndieAuth specification. I jumped on the revision bandwagon early for the plugin, but I had essentially bolted the new pieces onto the older code. I tried to move things around to integrate it more.

I had missed updating the Web Sign In feature to support the latest revision. Web Sign In is effectively an IndieAuth client. It allows you to log into your WordPress site using IndieAuth instead of a username and password.

So, you put in a URL, authenticate to that URL, and it will log you into your site.  This is what indielogin does, although if there is no IndieAuth endpoint, it falls back on other things and the WordPress version does not..although it could in theory…just not sure what services it would fall back to.

This feature allows things like logging into a multi-user WordPress site with your personal WordPress site by linking the two and being logged in or logging into the personal site.

But this isn’t the end of it, because I have more ideas I’d like to play with for the future.

  • Improve the process for how the system decides that a user is in fact, the same as the logged in user on the other site, possibly by having a list of approved domains that can authenticate?
  • What if Web Sign In could be made the default for logging in?
  • What if the act of trying to log into a WordPress site with your own website created a subscriber level user(a user with no privileges)? That user could then be issued permissions to view non-public information.
  • More with Ticketing…which means more enhancements to allow a logged in user to see specific ‘private’ posts inside and outside of feeds.

Schumer Discusses the Double Standard

The world continues to be a scarier place. This week, Senator Chuck Schumer gave a speech on the floor of the Senate, trying to explain how American Jews, in general, feel about the situation. Schumer is the highest ranking Jewish official in the United States, in fact, the highest ranking Jewish official ever.

In my opinion, his speech and Biden’s speech of support for the victims on October 7th were some of the more powerful pieces of political oratory in recent memory.

Schumer covered the points that I keep trying to express myself, noting that Jews “are worried—quite naturally, given the twists and turns of history—about where these actions and sentiments could eventually lead.

Earlier this week, at a high school not far from where I live, students tried to get a teacher fired who merely attended the March for Israel in Washington. To agree with the Senator…walking out of school in support of Palestinians is legitimate, even protesting within the school, but making this teacher a target is not. The teacher wasn’t teaching their personal views, and ended up hiding and fearing for their safety.

There is no moral justification for what Hamas did on October 7th. But too many people believe otherwise.

Three individuals in Brooklyn this past Saturday approached Jews going about their business, and unprovoked, punched or kicked them, and apparently yelled, “Free Palestine.”

The IHRA has a working and nuanced definition of anti-semitism that is definitely worth reading. While I may be able to say that criticism of Israel in itself is not anti-semitism, many of those who are protesting demonstrate that they aren’t just criticizing Israel.

 

After a Month of Silent Debate, Once Again Having Something To Say

I’ve been watching the situation in the Middle East, and stymied about what I should and want to say on the matter. Too many flashbacks to when I was in college, 20 years ago, and a series of articles in the college newspaper about the West Bank made the Letter to the Editor section of the paper grow to more than a page, when previously it was barely noticeable. I was one of the ones writing in opposition to the narrow view of the article, which claimed that because most Palestinians were significantly below the poverty line, they couldn’t buy weapons and therefore, were not doing what the Israelis accused them of doing. My opposition was pointing out that suggested that others were supplying them with weapons…and those same others were not helping in any other way.

I didn’t enjoy that tense period in my college career. And I’m starting to feel again what I did then…but this time, it is much much worse.  You watch the news and see the images of protesters in cities around the world, the significant rise in antisemitism, and you cannot help but be worried about the future.

Everyone is trying to take an incredibly complex problem and boil it down to a simple one…and spin it to look like what they want. That includes Hamas, the Israelis, the Arab world, and multiple groups around the world. I’m a centrist, and legitimately try to see both sides of an issue. But trying to see both sides of an issue does not mean that I’m going to rationalize away terrorism as legitimate resistance.

I can go through the history of the region. I can discuss the historical context of the issue if anyone wants to hear it.

But, let’s fast forward to the current year. Israel’s width is roughly 70 miles at its widest point and 6 at its shortest. It is roughly 260 miles long. It is slightly smaller in square mileage than New Jersey. So, imagine people in Delaware have a habit of shooting rockets into New Jersey.

So, it is a fact that Hamas has been smuggling weapons into Gaza. That they have learned to build their own locally using materials that can also be used for other purposes. If the choice is to let them do that, knowing where those weapons will be aimed at, we’re back to understanding Israel’s position on the matter.

It is the practical matter of what you’d expect Israel to do. And, this is not even talking about the more radical elements every country has. There are two territories that are in a position to lob rockets at your civilian population. Amongst the people who live there are terrorists who want to indiscriminately kill civilians and cause destruction. And the people there also want to come to your country to work because there are job opportunities there.

How do you solve this problem?  We’re back to…no good solution. Every option is equally bad. If Israel doesn’t destroy the Hamas infrastructure, it is an invitation for Hamas to rebuild and do this again. There is also the matter of over 200 hostages. If Israel continues to destroy the Hamas infrastructure, there will be casualties and destruction…because of where the Hamas infrastructure is…in some cases where they deliberately placed it in order to create this situation.

While the Israeli government is certainly not a perfect entity, and I can levy a lot of legitimate criticisms, I don’t think they have, as I mentioned, any good choices in this. And if anyone thinks they have a good and reasonable solution.

This whole thing brings up all of those feelings…and I’m going to have to keep writing about it, because the one thing I can’t do is be totally silent.

 

New Thoughts on Ticketing for IndieAuth

On many occasions in the past, I’ve participated in private post discussions as part of various Indiewebcamp events.

Private resources…posts, feeds, or any sort of private content, is one of the holy grails of the Indieweb community. Everyone seems to want it, but we haven’t made that much progress on a simple solution.

In order to enable the ability for an arbitrary person to get access to private resources  we need to give them some sort of credential to do so.

There were multiple proposals…Private Webmentions, AutoAuth…etc floated. Most recently, in 2020, we started talking about Ticket Auth….which we just renamed Ticketing for IndieAuth.

The rename is because the proposal is an extension to IndieAuth, it isn’t an authentication system by itself. None of the previous efforts clicked with me. They seemed to be…too much. The joy I have with of Indieweb protocols is how easy they are. That is a credit to how the community has developed and written them.

The concept of ticketing, which is the same concept used in Private Webmentions in 2016, is that the publisher is the one initiating the interaction. AutoAuth, by comparison, starts the flow with the consumer requesting access.

A ticket is an invitation in the form of a code that the consumer can redeem for a token, the same way a ticket to an amusement park is redeemed for entry.

The problem with requesting access is that it assumes the consumer knows about the private resource…which by itself could be leaking information the publisher doesn’t want to know.

So, that means the first step for our proposal has to be that it does not require the resource to advertise itself. That doesn’t mean it can’t…it means that requirement isn’t built into the protocol.

So, as the story goes, our publisher…let’s call him Zeke, wants to let Yoshi access Zeke’s private resource…let’s say a private feed. Why? Who cares? Zeke does.

So Zeke polls Yoshi’s website and sees he advertises a ticket endpoint as part of his IndieAuth configuration. A ticket endpoint indicates to Zeke that Yoshi is set up to receive tickets and redeem them for tokens. So, Zeke sends Yoshi a ticket.

Yoshi’s ticket endpoint receives the ticket, and redeems it for a token from Zeke’s token endpoint(the thing that issues tokens for Zeke). Now, what Yoshi does with the token isn’t in the protocol, that’s Yoshi’s business. Yoshi can integrate the ticket endpoint with a reader that will retrieve the content for Yoshi to read, or whatever.

In my opinion, that’s all this extension is meant to be. and there are some rough edges about that exchange we have to smooth. But it is simple, it works…

I differ with another community member on this, who wrote this draft version of an IndieAuth Ticketing specification because, if I understand correctly, while I think not defining all the parts he needed for his dream implementation within this specific protocol was a strength, he considers it a weakness.

This includes the original ticket endpoint, which he refers to as the ‘ticket deposit’ flow. And the redeeming of that ticket, which he calls the ‘ticket grant’ flow. But it adds additional pieces…

First is the ‘ticket wanted’ flow, which creates another endpoint for a user to request a ticket. Now, this is something we did discuss as a possible optional piece that could be implemented to indicate to a publisher you wanted a token. But is it a necessary component for this concept? If we do put in a flow like this, it should be truly optional to implement.

Second is the ‘authorization code on-behalf-of’ flow. This flow is an attempt to solve a different problem, which I’m saying is also out of band for Ticketing. It is how you can request a token on behalf of someone else. This flow seems to be based on RFC8693.

It seems complicated to me because it relies on the reader/client asking Yoshi to request a ticket from Zeke(using that ticket wanted flow), and then getting the ticket and using it.

The question that seems more within the scope of the Ticketing extension is…if your ticket endpoint can redeem a token, how would you pass it to a client or reader to use? We started with the assumption the ticket endpoint would do the redemption.

I think there is certainly a bigger discussion about this to be had…token delegation. I think there may be other solutions that might work with the goal of a simplified flow. As it stands, assuming the token is used by a tightly coupled endpoint, how the token is used can be out of band for now.

For me, right now, I’m focused on sending of a ticket and its subsequent redemption and sorting out a few lingering questions about that, and then I’d can implement simple token exchanges with others and iterate on that.

What do everyone think?

Syndication is Hard

Recently, in a conversation, it was asked how the syndication in my WordPress plugin, Syndication Links works. The syndication principle used here is POSSE…Post On your Site, Syndicate Elsewhere…so your site does all the heavy lifting.

Syndication Links is more of a framework for syndication, as opposed to actually doing all the work. It is expandable via plugin or extension, or additional providers being added.

There is a lot more I’d like to do with it, but providers keep making it harder to interface with their services. But…that isn’t the problem that prompted me to write this.

I’ve integrated support for using Bridgy. In the past, I used Bridgy’s Webmention publishing support. This would trigger Bridgy to read the web page and interpret the Microformats in the page and publish to the various sites it supports. Then, Bridgy added support for Micropub…allowing the sending of microformats properties directly…which meant regardless of the WordPress theme, the results could be consistent.

The problem is, Bridgy has some very developed opinions about how to publish that Syndication Links doesn’t yet..although they are under development.

Right now, if the content is longer than a certain length(dictated by the maximum length of the provider), the code will replace it with link + title, but can be overridden by a setting, which would send the entire content to Bridgy…who might truncate it inconsistently.

There is also an option for using the manual excerpt option in WordPress, if set…but not an auto-generated excerpt.

But, looking to improve this…like figuring out how to take advantage of additional properties supported by Bridgy and to custom-render a better submission int he first place. But…first, have to figure out how.

Opted for this post rather than a GitHub issue because I thought it might get some feedback and traction.

Webmention for WordPress 5.0 Released

On Tuesday, Matthias Pfefferle and I released Webmention for WordPress version 5. We started this project at the start of the pandemic…and it took a bit longer than we expected. It merges in the old Semantic Linkbacks plugin, rewrites large sections of code, and creates a better experience.

However, we have already received some feedback and are working on incorporating it into version 5.1…which won’t take 3 years to release. The goal is to fix some reported bugs, address some of the feedback, and more.

So, please, if you haven’t upgraded…do so, and give us feedback via Github.

Why I Haven’t Embraced WordPress Blocks

As someone who maintains a very specific set of WordPress plugins, over the last few years, I’ve been asked why I have not updated them to the block editor. The simplest reason is I don’t use the block editor, and I write the plugins for me, not for a commercial purpose, so while I keep saying I’m likely to give in and actually write some simple blocks just so people other than me can use them, it has been a hard road for me to take on such a project for others.

So, why don’t I use the block editor? Or why haven’t I embraced blocks in any way? It comes on two sides of the fence. The user and the developer side.

The traditional WordPress post is based around a single content field, in which HTML is saved. Now, you can enhance that with filtering, but anything that isn’t that content has to be handled separately.

So, compare this to blocks. Blocks are these pieces designed to be used in content. That allows you to do other things..have more complicated code for each block, or just a simple HTML structure.

However, this is exactly what HTML is for. I wouldn’t object to blocks for site-building, but for writing a post, I just want a nice rich HTML editor.

When blocks are saved to content, they end up as a combination of rendered HTML with the block code in HTML comments so it can be parsed and rerendered when edited. It also supports dynamic content, which would not be rendered when saved.

I’d actually considered this long before Gutenberg was proposed for Microformats. Microformats are embedded in HTML as classnames…I’d thought of creating an editor that stored this in content, and parsed it out in the editor.

So, it’s more than need most of the time for what I want to write. I’m either writing an article…a quick note(microblogging style), or sharing an event/link/etc, or sharing a photo. I don’t need most of the stuff being offered.

If you read this quote from the WordPress FAQ, we’re in alignment on this point:

“The classic WordPress editor is an open text window—it’s always been a wonderful blank canvas for writing, but when it comes to building posts and pages with images, multimedia, embedded content from social media, polls, and other elements, it required a mix of different approaches that were not always intuitive.”

So, that covers the user side. What about the developer side?

I am used to developing in PHP, server side. I write code using vim. So, what do I need to write a block according to WordPress?

  • I need to learn Javascript ‘deeply’. Can’t say I’m motivated on that.
  • I have to set up a build environment to support that if I want to go all in.
  • I have no way to enforce Microformats structures in the block editor.  But…if someone wants to do a reply to 15 things in the same post, should that really be a problem for me?

For me, Javascript is meant to handle simple HTML manipulations and for calling server side to update a page. I rarely use it for anything else.

So, what about my IndieWeb plugins?  Well, some of the questions I have there are something a motivated person might be able to help me think of. Also, it is quite possible I’ve completely misunderstood something about blocks by not using them more.

  • IndieAuth – Needs absolutely nothing I can think of. It’s an authentication plugin after all.
  • Webmention – Other than maybe some settings options in the block editor, nothing here occurs to me.
  • Micropub – Is there a simple way to create blocks in PHP so you can convert incoming Micropub posts into blocks? But you’d need some specialty blocks to represent various Microformats properties, which you’d need also for Post Kinds.
  • Indieweb Post Kinds actually does a few different things. It creates a taxonomy to classify posts, similar to the old post formats options. This just allows for automatic creation of archives. I also use the selector to change the interface, but this could be done differently. It also uses Parse This to create rich embeds of linked content. But it adds the microformats for different types of Indieweb posts outside of the traditional content block using WordPress filters. That is something I never particularly liked, and wouldn’t mind replacing with something integrated into content. Just not sure if blocks would be better for that, being as you can’t necessarily identify what is the content piece. I very deliberately started the process of decoupling parts of Post Kinds just in case someone wanted a block editor interface to the backend logic.
  • Syndication Links – The plugin allows you to add links to a post reflecting another version of that post elsewhere. So, this is fine if you go to a post, and add them in…but not necessarily if you want to trigger syndication and bring back the results in your posts. Of course, it sounds like a dynamic block could possibly do this.
  • Simple Location – Probably is not a problem here to make this work as a block plugin, however, the location and other properties are stored in post meta. However, to use post meta dynamically, it needs to be added to the WordPress REST API so it can be polled via the block editor. But this is already a problem for me. Location can either be public or private…so, whether to share the location data to the REST API is based on the value of another field. register_meta has an option for an auth_callback, but that is for updating post meta values. Other than that, probably just a matter of motivation, as before.  But it would be the most likely for me to experiment with if I ever decided to try.
  • Indieweb – The Indieweb plugin has several widgets that could be converted to blocks. There is the problem of the logic that allows rel-me links to end up in the header if there is not a visible display, but that could be worked out. Also, always convinced the H-Card Widget could be styled better.

So, there we are. I’d love it if someone commented…to either tell me why I’m wrong about something, or what I might consider.

Syndication Links for WordPress Version 4.4 Released

Version 4.4 of Syndication Links is a major rewrite of the code to cleanup the plugin. It fixes a bunch of small issues, as well as adds new features.

  • A new filter tells the plugin to add or not add the links to the content in the event your theme supports directly displaying it
  • Add an option to specify which post types will present syndication options
  • Add an option to disable forking syndication into the background in the Post Editor and doing it immediately.
  • A newly redesigned settings page
  • Fix of an issue with Mastodon Autoposter

The biggest new feature is the introduction of support for both Bridgy via Webmention and Bridgy via Micropub. In this first version, it just converts wordpress properties to Micropub properties. It may be necessary to become more opinionated in future versions and feedback is welcome.