Linkback protocols are an old breed. They were born in a time where MySpace, Wikipedia & WordPress had just been launched, and Friendster was more popular than this new website called Facebook.
The latest linkback protocol, Webmention, is relatively recent though, as it became a W3C recommendation in 2017.
What are linkback protocols ?
A web mechanism to notify
website-A.com publishes content that includes a link to
website-A.com says “Hello
website-B.com ! I have just written something about you, maybe you'd like to know !”
I find linkback protocols very valuable, for several reasons:
- they have strong technical features: conceptually simple, flexible, lightweight, easy to implement... As they exist since almost 20 years, their robustness has been tried-and-tested.
- they are a web standard
- they foster a decentralized web
As such, they form a practical alternative to commenting systems of tech Giants centralized platforms.
Many publishing tools (blog engines, website frameworks...) already support linkbacks. As an example, IndieWeb has a long list of software that support Webmention.
Myself, to generate this website, I am using Pelican, a static blog engine written in Python.
Sadly, static websites cannot receive linkbacks, as this requires some custom server-side code. However they can perfectly well send linkbacks !
Hence, I have written a Pelican plugin to send linkbacks, with support for both Pingbacks & Webmentions, which I am now proud to introduce here:
There are already libraries on Pypi dedicated to publishing linkbacks, for various protocols. However I did not find any which I was satisfied with the code quality, hence I wrote my own implementation.
send_webmention functions in
linkbacks.py are pretty straightforward.
They are well tested, and are easily usable in another Python project:
from linkbacks import * logging.basicConfig(level=logging.DEBUG) LOGGER.setLevel(logging.DEBUG) send_pingback(source_url, target_url) send_webmention(source_url, target_url)
As proof of this library correctly sending notifications, there are two websites that acknowledged reception of Pingback from this blog:
By the way, I learned that most Wordpress websites systematically answer to Pingback requests with a very unhelpful silent
faultCode 0, due to the default value of the
xmlrpc_pingback_error filter (source). 😞
This was done to prevent Pingback exploits like the infamous CVE-2013-0235 (mitigation commit source),
but I don't think this kind of security through obscurity is needed.
In fact I fear that the impact of hiding the Pingback submission status in Wordpress was mostly to slow down the adoption of this protocol...
Many thanks to Matthieu for providing me a temporary Wordpress blog, under a different domain, for my tests !
Another side note: maybe in the future I'll write a web-app to receive & store linkback requests, and "plug" it to this blog. Or better, add this feature to isso (cf. issue #19). In the meantime, I have found the webmention.io service very nice & simple to use to add support for Webmention on this blog. As it is centralized, it is not perfect, but it is a good start to support the adoption of this great linkback protocol !
By the way, I recently suggested to Reddit that they support Webmentions. You can upvote this demand here: feature request.
That's it for today. Of course, I'd be more than happy to get feedback from you if you use this Pelican plugin. 😉 And may the God of Clean Web Protocols & Semantics be with you !