webmention.io
webmention.io copied to clipboard
Failure to create a webmention on a relative URL
When attempting to manually register a webmention reply from https://www.jvt.me/posts/2019/03/20/hwc-nottingham-session-1/
to https://www.jvt.me/posts/2019/03/14/homebrew-website-club-nottingham/
, I get the following error:
{
"status": "no_link_found",
"source": "https://www.jvt.me/posts/2019/03/20/hwc-nottingham-session-1/",
"target": "https://www.jvt.me/posts/2019/03/14/homebrew-website-club-nottingham/",
"summary": "The source document does not have a link to the target URL"
}
However, the HTML link looks correct, aside from it being a relative URL:
<p>The first <a class="u-in-reply-to" href="/posts/2019/03/14/homebrew-website-club-nottingham/">Homebrew Website Club: Nottingham</a> is over, and it was great!</p>
When hitting the page with https://php.microformats.io/, the following parsed MicroFormats JSON is returned:
{
"items": [
{
"type": [
"h-entry"
],
"properties": {
"name": [
"Homebrew Website Club: Nottingham, Session 1"
],
"summary": [
"A recap of our first Homebrew Website Club: Nottingham."
],
"in-reply-to": [
"https://www.jvt.me/posts/2019/03/14/homebrew-website-club-nottingham/",
"https://quickthoughts.jgregorymcverry.com/2019/03/20/what-an-amazing-day-indieweb-keeps-growing"
],
"url": [
"https://www.jvt.me/posts/2019/03/20/hwc-nottingham-session-1/"
],
"published": [
"2019-03-20 00:00:00 +0000 UTC"
],
"updated": [
"2019-03-21 11:41:05 +0000 UTC"
],
"content": [
{
"html": "<p>The first <a class=\"u-in-reply-to\" href=\"https://www.jvt.me/posts/2019/03/14/homebrew-website-club-nottingham/\">Homebrew Website Club: Nottingham</a> is over, and it was great!</p><p>We had <em>15</em> people, which was a really impressive turnout and we almost filled the cafe area in Ludorati.</p><p>It seems that we didn't get as much chance to actually hack on things as we'd wanted, as we ended up having some good chats amongst ourselves about non-website related things.</p><p>A couple of interesting conversations I want to recount:</p><blockquote><p>How do I start blogging? What do I even blog about?</p></blockquote><p>I spoke about how I <a href=\"https://www.jvt.me/posts/2017/06/25/blogumentation/\">blog as a form of documentation</a>, and blog for myself. The audience for my blog posts isn't the internet, but myself. Yes, it is in a publicly readable format, but it is primarily for me. Others can read it, which is a great cherry-on-top, but it's not the key reason. This helps reduce the barrier of \"what if someone doesn't like my writing\".</p><blockquote><p>How do I get started with my site? I want to do it, but I also want to write the theme from scratch, which then means I need to understand how the tool/framework, and then it balloons in complexity.</p></blockquote><p>To this, I'd recommend just setting your site up with a pre-built theme. Get the core content up there and then customise the theme after. <strong>Unless</strong> you're trying to show off your design skills, in which case the reverse is true!</p><p>Before the next event I'm planning on creating a custom post type in Hugo to share out the new events - if you're interested <a href=\"https://gitlab.com/jamietanna/jvt.me/issues/395\">you can follow along on the issue</a>.</p><p>Something to think about for the next event is maybe more structure / agenda, although like other HWCs, I want to keep it less structured and more fluid for attendees.</p><p>And to comment on <a class=\"u-in-reply-to\" href=\"https://quickthoughts.jgregorymcverry.com/2019/03/20/what-an-amazing-day-indieweb-keeps-growing\">Greg's note</a>, the below is really awesome:</p><blockquote><p>What an amazing day! #IndieWeb keeps growing. So excited that we broke a record!! 11 Homebrew website Clubs across the globe. Including four new Clubs: Accra, Nottingham, and Guadalajara! and Karlushe Find one or start one near you: <a href=\"https://indieweb.org/Events\">https://indieweb.org/Events</a></p></blockquote><p>This is really exciting to see, and it'll be great to see a regular meeting happening.</p><p>It was also really great to see a diverse group - in all measures, including experience and job roles.</p><p>Thanks everyone for coming, and looking forward to the next one!</p>",
"value": "The first Homebrew Website Club: Nottingham is over, and it was great!\nWe had 15 people, which was a really impressive turnout and we almost filled the cafe area in Ludorati.\nIt seems that we didn't get as much chance to actually hack on things as we'd wanted, as we ended up having some good chats amongst ourselves about non-website related things.\nA couple of interesting conversations I want to recount:\nHow do I start blogging? What do I even blog about?\nI spoke about how I blog as a form of documentation, and blog for myself. The audience for my blog posts isn't the internet, but myself. Yes, it is in a publicly readable format, but it is primarily for me. Others can read it, which is a great cherry-on-top, but it's not the key reason. This helps reduce the barrier of \"what if someone doesn't like my writing\".\nHow do I get started with my site? I want to do it, but I also want to write the theme from scratch, which then means I need to understand how the tool/framework, and then it balloons in complexity.\nTo this, I'd recommend just setting your site up with a pre-built theme. Get the core content up there and then customise the theme after. Unless you're trying to show off your design skills, in which case the reverse is true!\nBefore the next event I'm planning on creating a custom post type in Hugo to share out the new events - if you're interested you can follow along on the issue.\nSomething to think about for the next event is maybe more structure / agenda, although like other HWCs, I want to keep it less structured and more fluid for attendees.\nAnd to comment on Greg's note, the below is really awesome:\nWhat an amazing day! #IndieWeb keeps growing. So excited that we broke a record!! 11 Homebrew website Clubs across the globe. Including four new Clubs: Accra, Nottingham, and Guadalajara! and Karlushe Find one or start one near you: https://indieweb.org/Events\nThis is really exciting to see, and it'll be great to see a regular meeting happening.\nIt was also really great to see a diverse group - in all measures, including experience and job roles.\nThanks everyone for coming, and looking forward to the next one!",
"lang": "en-gb"
}
]
},
"lang": "en-gb"
}
],
"rels": {
"stylesheet": [
"https://www.jvt.me/css/style.css",
"https://www.jvt.me/css/font-awesome.min.css",
"https://www.jvt.me/css/asciinema-player.css",
"https://fonts.googleapis.com/css?family=Libre+Baskerville:400,400i,700"
],
"shortcut": [
"https://www.jvt.me/favicon.png"
],
"icon": [
"https://www.jvt.me/favicon.png"
],
"alternate": [
"https://www.jvt.me/feed.xml"
],
"webmention": [
"https://webmention.io/www.jvt.me/webmention"
],
"pingback": [
"https://webmention.io/www.jvt.me/xmlrpc"
],
"me": [
"https://gitlab.com/jamietanna",
"https://github.com/jamietanna",
"https://twitter.com/jamietanna",
"https://linkedin.com/in/jamietanna"
]
},
"rel-urls": {
"https://www.jvt.me/css/style.css": {
"rels": [
"stylesheet"
]
},
"https://www.jvt.me/css/font-awesome.min.css": {
"rels": [
"stylesheet"
]
},
"https://www.jvt.me/css/asciinema-player.css": {
"rels": [
"stylesheet"
]
},
"https://fonts.googleapis.com/css?family=Libre+Baskerville:400,400i,700": {
"rels": [
"stylesheet"
]
},
"https://www.jvt.me/favicon.png": {
"type": "image/png",
"rels": [
"icon",
"shortcut"
]
},
"https://www.jvt.me/feed.xml": {
"title": "Jamie Tanna | Software (Quality) Engineer",
"type": "application/rss+xml",
"rels": [
"alternate"
]
},
"https://webmention.io/www.jvt.me/webmention": {
"rels": [
"webmention"
]
},
"https://webmention.io/www.jvt.me/xmlrpc": {
"rels": [
"pingback"
]
},
"https://gitlab.com/jamietanna": {
"text": "\u00a0@jamietanna",
"rels": [
"me"
]
},
"https://github.com/jamietanna": {
"text": "\u00a0@jamietanna",
"rels": [
"me"
]
},
"https://twitter.com/jamietanna": {
"text": "\u00a0@jamietanna",
"rels": [
"me"
]
},
"https://linkedin.com/in/jamietanna": {
"text": "\u00a0Jamie Tanna",
"rels": [
"me"
]
}
},
"debug": {
"package": "https://packagist.org/packages/mf2/mf2",
"source": "https://github.com/indieweb/php-mf2",
"version": "0.4.6",
"note": [
"This output was generated from the php-mf2 library available at https://github.com/indieweb/php-mf2",
"Please file any issues with the parser at https://github.com/indieweb/php-mf2/issues",
"Using the Masterminds HTML5 parser"
]
}
}
Where we can see that in-reply-to
is populated with the post URL:
"in-reply-to": [
"https://www.jvt.me/posts/2019/03/14/homebrew-website-club-nottingham/",
"https://quickthoughts.jgregorymcverry.com/2019/03/20/what-an-amazing-day-indieweb-keeps-growing"
],
Any thoughts greatly appreciated!
I am having the same issue.
source https://duffy.xyz/2019/homebrew-website-club-11-13/
target https://tantek.com/2019/317/e1/homebrew-website-club-sf
Debug Info:
{
"status": "no_link_found",
"source": "https://duffy.xyz/2019/homebrew-website-club-11-13/",
"target": "https://tantek.com/2019/317/e1/homebrew-website-club-sf",
"summary": "The source document does not have a link to the target URL"
}
From php.microformats.io:
{
"items": [
{
"type": [
"h-card"
],
"properties": {
"name": [
"James Duffy"
],
"note": [
"I am Duffy! I am a Lead DevOps Engineer living in San Francisco. I automate infrastructure and make software deployments seamless. I also enjoy photography."
],
"locality": [
"San Francisco"
],
"photo": [
"https://duffy.xyz/static/profile.187162ed5ecb.jpg"
],
"url": [
"https://duffy.xyz/"
],
"email": [
"mailto:[email protected]"
]
}
},
{
"type": [
"h-entry"
],
"properties": {
"name": [
"Homebrew Website Club 11/13"
],
"category": [
""
],
"rsvp": [
"interested"
],
"url": [
"https://duffy.xyz/2019/homebrew-website-club-11-13/Homebrew Website Club 11/13"
],
"in-reply-to": [
"http://tantek.com/2019/317/e1/homebrew-website-club-sf"
],
"published": [
"2019-11-11T13:15:45-08:00"
],
"content": [
{
"html": "<blockquote>\n \n RSVP: <span class=\"p-rsvp\">interested</span> to <a href=\"http://tantek.com/2019/317/e1/homebrew-website-club-sf\" class=\"u-in-reply-to\">Homebrew Website Club SF!</a>\n \n </blockquote>\n \n\n <p>Considering I just finished a rebuild of my website I would like to attend the Homebrew Website Club this week and show it off. Hopefully my schedule will allow me to make it.</p>",
"value": "RSVP: interested to Homebrew Website Club SF!\nConsidering I just finished a rebuild of my website I would like to attend the Homebrew Website Club this week and show it off. Hopefully my schedule will allow me to make it."
}
],
"author": [
{
"type": [
"h-card"
],
"properties": {
"name": [
"James Duffy"
],
"url": [
"https://duffy.xyz"
]
},
"value": "James Duffy"
}
]
}
}
],
"rels": {
"apple-touch-icon": [
"https://duffy.xyz/static/favicon/apple-icon-57x57.73835a1afe73.png",
"https://duffy.xyz/static/favicon/apple-icon-60x60.52df9f4136fe.png",
"https://duffy.xyz/static/favicon/apple-icon-72x72.c136ac617310.png",
"https://duffy.xyz/static/favicon/apple-icon-76x76.3cd04844a681.png",
"https://duffy.xyz/static/favicon/apple-icon-114x114.6a2dfc72e0c4.png",
"https://duffy.xyz/static/favicon/apple-icon-120x120.9834fcbc9e04.png",
"https://duffy.xyz/static/favicon/apple-icon-144x144.8b467c2f6c6f.png",
"https://duffy.xyz/static/favicon/apple-icon-152x152.f599295b7be4.png",
"https://duffy.xyz/static/favicon/apple-icon-180x180.6e6fbb39cb9d.png"
],
"icon": [
"https://duffy.xyz/static/favicon/android-icon-192x192.61e4f6f4f5fe.png",
"https://duffy.xyz/static/favicon/favicon-32x32.22a54e62bcf5.png",
"https://duffy.xyz/static/favicon/favicon-96x96.fb26fea19263.png",
"https://duffy.xyz/static/favicon/favicon-16x16.816fb43c9fae.png"
],
"manifest": [
"https://duffy.xyz/static/favicon/manifest.b58fcfa7628c.json"
],
"stylesheet": [
"https://duffy.xyz/static/css/normalize.112272e51c80.css",
"https://duffy.xyz/static/css/styles.769722ed3bb9.css"
],
"webmention": [
"https://webmention.io/duffy.xyz/webmention"
],
"pingback": [
"https://webmention.io/duffy.xyz/xmlrpc"
],
"alternate": [
"https://duffy.xyz/feed/"
],
"me": [
"https://duffy.xyz/",
"https://twitter.com/duffy0",
"https://www.flickr.com/people/dffy/",
"https://www.instagram.com/duffy0/",
"https://github.com/jamesduffy/",
"https://keybase.io/dffy"
],
"author": [
"https://duffy.xyz"
]
},
"rel-urls": {
"https://duffy.xyz/static/favicon/apple-icon-57x57.73835a1afe73.png": {
"rels": [
"apple-touch-icon"
]
},
"https://duffy.xyz/static/favicon/apple-icon-60x60.52df9f4136fe.png": {
"rels": [
"apple-touch-icon"
]
},
"https://duffy.xyz/static/favicon/apple-icon-72x72.c136ac617310.png": {
"rels": [
"apple-touch-icon"
]
},
"https://duffy.xyz/static/favicon/apple-icon-76x76.3cd04844a681.png": {
"rels": [
"apple-touch-icon"
]
},
"https://duffy.xyz/static/favicon/apple-icon-114x114.6a2dfc72e0c4.png": {
"rels": [
"apple-touch-icon"
]
},
"https://duffy.xyz/static/favicon/apple-icon-120x120.9834fcbc9e04.png": {
"rels": [
"apple-touch-icon"
]
},
"https://duffy.xyz/static/favicon/apple-icon-144x144.8b467c2f6c6f.png": {
"rels": [
"apple-touch-icon"
]
},
"https://duffy.xyz/static/favicon/apple-icon-152x152.f599295b7be4.png": {
"rels": [
"apple-touch-icon"
]
},
"https://duffy.xyz/static/favicon/apple-icon-180x180.6e6fbb39cb9d.png": {
"rels": [
"apple-touch-icon"
]
},
"https://duffy.xyz/static/favicon/android-icon-192x192.61e4f6f4f5fe.png": {
"type": "image/png",
"rels": [
"icon"
]
},
"https://duffy.xyz/static/favicon/favicon-32x32.22a54e62bcf5.png": {
"type": "image/png",
"rels": [
"icon"
]
},
"https://duffy.xyz/static/favicon/favicon-96x96.fb26fea19263.png": {
"type": "image/png",
"rels": [
"icon"
]
},
"https://duffy.xyz/static/favicon/favicon-16x16.816fb43c9fae.png": {
"type": "image/png",
"rels": [
"icon"
]
},
"https://duffy.xyz/static/favicon/manifest.b58fcfa7628c.json": {
"rels": [
"manifest"
]
},
"https://duffy.xyz/static/css/normalize.112272e51c80.css": {
"rels": [
"stylesheet"
]
},
"https://duffy.xyz/static/css/styles.769722ed3bb9.css": {
"type": "text/css",
"rels": [
"stylesheet"
]
},
"https://webmention.io/duffy.xyz/webmention": {
"rels": [
"webmention"
]
},
"https://webmention.io/duffy.xyz/xmlrpc": {
"rels": [
"pingback"
]
},
"https://duffy.xyz/feed/": {
"title": "Latest Posts",
"type": "application/rss+xml",
"rels": [
"alternate"
]
},
"https://duffy.xyz/": {
"text": "James Duffy",
"rels": [
"me"
]
},
"https://twitter.com/duffy0": {
"text": "\n \n ",
"rels": [
"me"
]
},
"https://www.flickr.com/people/dffy/": {
"text": "\n \n ",
"rels": [
"me"
]
},
"https://www.instagram.com/duffy0/": {
"text": "\n \n ",
"rels": [
"me"
]
},
"https://github.com/jamesduffy/": {
"text": "\n \n ",
"rels": [
"me"
]
},
"https://keybase.io/dffy": {
"text": "\n \n ",
"rels": [
"me"
]
},
"https://duffy.xyz": {
"text": "James Duffy",
"rels": [
"author"
]
}
},
"debug": {
"package": "https://packagist.org/packages/mf2/mf2",
"source": "https://github.com/indieweb/php-mf2",
"version": "0.4.6",
"note": [
"This output was generated from the php-mf2 library available at https://github.com/indieweb/php-mf2",
"Please file any issues with the parser at https://github.com/indieweb/php-mf2/issues",
"Using the Masterminds HTML5 parser"
]
}
}
@jamesduffy your website links to http://tantek.com...
but the webmention was sent to https://tantek.com...
. If you send a target of http
, or change your link on your website to https
then it will work.
@aaronpk thanks for the clarification.
@jamietanna This is correct behavior since your target URL in the POST request is the full URL, and the full URL does not in fact appear on the page. The first thing the processor does is check for the exact target URL in the source document, before even handing it off to the Microformats parser.