I very much appreciate how Sven Knebel extensively responded to my previous posting on some Webmention issues I came across. Some of his responses do make me have new questions.

About the wrong URL, i.e. not the source of the webmention, showing up in a Webmention, Sven writes:

…. There’s a href=”https://news.indieweb.org/nl” class=”u-syndication” as the only top-level link inside his post, and no explicit url property set. This causes the microformats parser to assume that this link points to the canonical location of the post, and it is thus used for comment display. This seems like a problem with the microformats specification, and I’ll follow up on it there, but for now the easy fix would be for Frank’s posts to mark up their permalink, e.g. by adding a class=”u-url” to the link on the headline.

To me this reads as a vulnerability. I would expect my site to always take the source from the webmention message as URL. That is the only one that has been checked from my end for the presence of a reference to my site (the target). If the source page is allowed to set a different URL, even by mistake like here, that feels extremely counterintuitive. It opens it up to spam. In this case the faulty link is to a benign site, but it could have been pills or malware. It is also strange to me that my server in the comments table of the database correctly stores the source url, but in the meta data table stores a url at the discretion of the source’s website. (Meanwhile Frank has fixed it for now on his end as demonstrated by his webmention to my previous post, but my point remains)

About no content being shown of the blogpost that links to my blogposts Sven says:

This is intentional. Frank’s post only mentions your post (=includes a link to it), it is not marked up as an explicit reply. Only replies are shown with content, since for mentions this is often misleading.

This to me doesn’t make a lot of sense. [update: and for my site at least it isn’t true either, I linked back as an explicit reply to my own posting, but it still shows it as a mention].
There is indeed a difference between a direct reply to something (@Frank….) and mentioning that something as part of something else (As Frank says….). Yet that doesn’t warrant a difference in presentation, where a reply would be shown, yet for a mention just the address of the site. It also gives the source control over how something is shown on my site (by setting a different microformat for a link), while I do not have that control.
From the perspective of the reader of my blog it is not enough to only see that ‘some site links to this blogpost’ to click on that link to find out if it might be of interest, it is tremendously helpful to see a piece of that referring page to determine the context in which it refers to my blogpost.

Most if not all of my mentions of others’ blogposts aren’t meant as a direct response but as building or continuing on a line of reasoning, riffing off other people’s ideas. This is the way distributed conversations take place, how ambient humanity is established. Distributed conversations are a fundamental part of blogging to me. It’s not back and forth replies, it’s a jam session. To enjoy the jam session, you need to see the whole band at a glance, not just a list of the line-up while listening to a sole musician. Discoverability and serendipity flow from it.
It used to be that trackbacks did precisely that, show the context in which someone else referred to my blogposts. It is enriching my own posts to show that context underneath them. See below how that looked a long time ago, in a post on information strategies from 2005.

Three trackbacks on an old post of mine, showing context of the linking blogpost



These three posts are not in response to me, but reflections triggered by my posts and extensions of my contribution

So I’d definitely want to show that context for webmentions. What strikes me as odd now is how little control I have over how the Webmention and Semantic Linkbacks plugins actually deal with webmention data. The stuff I’d like to show is stored in my database, but I can’t through the plugins determine how that is shown.
The same is true on the flipside: my site adds microformats so others can machine read my blog, but apparently it doesn’t do it right. Yet I have no control from the mentioned plugins interfaces over how that is done, nor do I have documentation / insight into how the plugins are designed to comply with microformat specifications. So the next step is: read up on microformat specifications, and dive into the code of the plugins to see where it does what, and whether I can change that in ways that won’t be simply overwritten with the first update of WordPress or the plugins. [UPDATE: I installed a different WordPress Theme, called Sempress, as it should be better at adding the correct microformats for this site]

8 reactions on “Wrapping My Head Around Webmentions Pt 2

  1. Ton continues to wrap his head around Webmention, and wonders about how mentions should be displayed on the “mentioned” site:

    What strikes me as odd now is how little control I have over how the Webmention and Semantic Linkbacks plugins actually deal with webmention data. The stuff I’d like to show is stored in my database, but I can’t through the plugins determine how that is shown.

    The same is true on the flipside: my site adds microformats so others can machine read my blog, but apparently it doesn’t do it right. Yet I have no control from the mentioned plugins interfaces over how that is done, nor do I have documentation / insight into how the plugins are designed to comply with microformat specifications.

    The h-entry page on the Microformats Wiki sheds some light on this, providing some options for marking up links in a way that affects the semantics, and the rel-values page in the IndieWeb wiki has some further discussion of options, but there doesn’t yet seem to be a clear way forward here.

    It does seem like it would be useful to allow an author to add semantics to links that would differentiate between commenting, mentioning, liking and re-posting, and that seems to be the way that things are headed.

    Looking at a section of Ton’s post, for example, where he links both to Sven Knebel’s contribution and to his own, both links are marked it with u-in-reply-to:

    <p>I very much appreciate how <a href="https://www.svenknebel.de/posts/2018/7/4/" class="u-in-reply-to">Sven Knebel extensively responded</a> to my previous <a href="https://www.zylstra.org/blog/2018/07/wrapping-my-head-around-webmentions/" class="u-in-reply-to">posting on some Webmention issues</a> I came across. Some of his responses do make me have new questions.</p>

    While he’s clearly replying to Sven’s post, Ton’s reference to his own post isn’t really “in reply to” himself, it’s merely mentioning it; perhaps these mentions should be rendered differently?

    Webmention | IndieWeb | Microformats

  2. Yes, totally trusting the claimed url is a potential issue, and e.g. my own webmention handling code only allows it for a whitelist of trusted services like brid.gyi, where I know they intentionally pretend to be a different domain. I’m not involved with the WordPress plugins and their development, so I don’t know what rules those follow here.

    Regarding the mentions vs replies, they have to be clearly distinguishable to avoid misunderstandings (see e.g. this example from the Indieweb wiki for how it can go badly), and since it isn’t clear how important a mention is, many prefer to have them displayed as compact as possible. That said, if you prefer it differently I’m sure the plugin devs will add an option for you or tell you what to modify if you ask them for help.

    From my understanding, neither the Webmention nor the Semantic Linkback plugins are responsible for setting up microformats markup for your page, they merely add some aspects of it that are part of their responsibilities. Ideally, this is handled by the theme, and there is the microformats plugin which attempts as good as it can to inject the correct markup, but is limited in what it can do. The Indieweb chatrooms (available via IRC, Slack or a web interface) are probabably the best way to get help with that. I’m happy to help figure out what’s wrong with markup, but don’t know enough about WordPress to directly help fixing it.

    • Hi Sven, thanks once more. You’re right I realise, the microformats in my site have been put there by a different plugin, the microformats 2 plugin by the Indieweb WP outreach effort. Its description specifically warns it’s a best guess effort. So I’ll sift through the code of that.

  3. As I mentioned when I was talking about my nascent Webmention setup, the tiny Drupal module I’ve coded up only sends Webmentions, it doesn’t (yet) receive them: for that I’m outsourcing things to Webmention.io.

    This was as simple as inserting two lines in the header of each page of this website:

    <link rel="pingback" href="https://webmention.io/ruk.ca/xmlrpc" />
    <link rel="webmention" href="https://webmention.io/ruk.ca/webmention" />

    Once I authenticate myself on Webmention.io as the owner of this site, I have access to a “dashboard” that shows me all my Webmentions; right now there’s only one, resulting from this post on Ton’s blog:

    I can also query Webmention.io’s API with a simple GET request, including the target, like:

    https://webmention.io/api/mentions?target=https://ruk.ca/content/heres-my-opml

    which returns JSON with all the Webmentions sent to that target:

    {
    "links": [
    {
    "source": "https://www.zylstra.org/blog/2018/07/4347/",
    "verified": true,
    "verified_date": "2018-07-08T07:59:45+00:00",
    "id": 532400,
    "private": false,
    "data": {
    "author": {
    "name": "Ton Zijlstra",
    "url": "https://www.zylstra.org/blog/author/admin-2/",
    "photo": "https://webmention.io/avatar/secure.gravatar.com/59b7acc0ea30bd7a2bf210318b4640c2d1fe5d7d8f6358513edc1df0bd842535.jpg"
    },
    "url": "https://www.zylstra.org/blog/2018/07/wrapping-my-head-around-webmentions-pt-2/",
    "name": "#4347",
    "content": "<p>Hey Brad, <a href="https://ramblinggit.com/2018/07/the-indieweb-discovery-and-web-search/">discovery</a> is why I started publishing the <a href="https://www.zylstra.org/blog/2018/04/time-for-a-return-of-the-blogroll/">feeds I read as opml</a> for others to explore, and some I read <a href="https://ruk.ca/content/heres-my-opml">do so too</a>. In <a href="https://www.zylstra.org/wp/wp-content/uploads/2018/07/Schermafbeelding-2018-07-03-om-15.07.38-541x1024.png">2005 I used to have photos of blog authors I read</a>. Do you publish your feed list somewhere? <a href="https://tomcritchlow.com/feeds/">Tom Critchlow also shows all the content of the feeds he follows</a> on his site. Works well as a discovery mechanism too I found. Maybe I’ll start doing that as well from my <a href="http://tt-rss.org">TinyTinyRSS</a> instance I installed earlier this week.</p>n<ul>n<li style="background-color:#b3b3b3;"><a href="https://share.diasporafoundation.org/?url=https%3A%2F%2Fwww.zylstra.org%2Fblog%2F2018%2F07%2F4347%2F&amp;title=%234347" title="Share on Diaspora" style="background-color:#999;color:#fff;">share </a></li>n<li style="background-color:#9baec8;"><a title="Share on Mastodon" style="background-color:#2b90d9;color:#fff;">share </a></li>n<li style="background-color:#1488bf;"><a href="https://www.linkedin.com/shareArticle?mini=true&amp;url=https%3A%2F%2Fwww.zylstra.org%2Fblog%2F2018%2F07%2F4347%2F&amp;title=%234347" title="Share on LinkedIn" style="background-color:#0077b5;color:#fff;">share </a></li>n<li style="background-color:#32bbf5;"><a href="https://twitter.com/share?url=https%3A%2F%2Fwww.zylstra.org%2Fblog%2F2018%2F07%2F4347%2F&amp;text=%234347&amp;via=ton_zylstra" title="Share on Twitter" style="background-color:#55acee;color:#fff;">tweet </a></li>n<li style="background-color:#4273c8;"><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.zylstra.org%2Fblog%2F2018%2F07%2F4347%2F" title="Share on Facebook" style="background-color:#3b5998;color:#fff;">share </a></li>n<li style="background-color:#a8a8a8;"><a href="mailto:?body=https%3A%2F%2Fwww.zylstra.org%2Fblog%2F2018%2F07%2F4347%2F&amp;subject=%234347" title="Send by email" style="background-color:#999;color:#fff;">e-mail </a></li>n</ul>",
    "published": "2018-07-05T16:50:27+00:00",
    "published_ts": 1530809427
    },
    "activity": {
    "type": "link",
    "sentence": "Ton Zijlstra posted 'Hey Brad, discovery is why I started publishing the feeds I read as opml for oth...' linking to https://ruk.ca/content/heres-my-opml",
    "sentence_html": "<a href="https://www.zylstra.org/blog/author/admin-2/">Ton Zijlstra</a> posted 'Hey Brad, discovery is why I started publishing the feeds I read as opml for oth...' linking to <a href="https://ruk.ca/content/heres-my-opml">https://ruk.ca/content/heres-my-opml</a>"
    },
    "target": "https://ruk.ca/content/heres-my-opml"
    }
    ]
    }

    You’ll see that it includes a host of rich metadata about the Webmention, including the contents of the posts with the mention, a snippet that includes the sentence in which the mention appears, and the name and avatar of the author.

    Right now I’m not rendering that anywhere on my original post; I’m considering whether the best way to do that is to simply pull the Webmentions in real time via JavaScript or, instead, to set up a webhook at Webmention.io that pushes the Webmentions to a process in my Drupal that converts them to a regular old Drupal comment.

    Webmention.io | Webmention

  4. At IndieWeb Camp Nürnberg today I worked on changing the way my site displays webmentions. Like I wrote earlier, I would like for all webmentions to have a snippet of the linking article, so you get some context to decide if you want to go to that article or not.
    It used to be that way in the past with pingbacks, but my webmentions get shown as “Peter mentioned this on ruk.ca”.
    After hunting down where in my site this gets determined, I ended up in a file my Semantic Weblinks plugin, called class-linkbacks-handler.php. In this file I altered “get_comment_type_excerpts” function (which sets the template for a webmention), and the function “comment_text_excerpt”, where that template gets filled. I also altered the max length of webmentions that are shown in their entirety. My solution takes a snippet from the start of the webmention. I will later change it to taking a snippet from around the specific place where it links to my site. But at least I succeeded in changing this, and now know where to do that.
    When the next update of this plugin takes place I will need to take care, as then my changes will get overwritten. But that too is less important for now.
    The webmentions for this posting are now shown as a snippet from the source, below the sentence that was previously the only thing shown.

Comments are closed.

Reading

  • Chris Aldrich