summaryrefslogtreecommitdiff
path: root/doc/todo/pingback_support.mdwn
blob: b10366bda805d6fffb2ea00552cf336dcc91ca3d (plain)

A "pingback" is a system whereby URLs you might reference in a blog post are contacted by the blog publishing software at publishing time (i.e., once) so that they might update a list of "pingbacks" to the URL. The originating URL's blog software might then display a list of pingbacks, or an excerpt of the text from your blog, perhaps interleaved with comments, etc.

At a technical level, external URLs are extracted from your blog post by the blogging software, fetched, inspected for information to determine whether the remote server is configured to support pingbacks (look for link tags, or HTTP headers) and the relevant pingback URL sent an XML-RPC packet.

There are other technologies to achieve the same thing: trackbacks predate pingbacks but are more vulnerable to spam due to design problems.

The spec for pingbacks is at http://www.hixie.ch/specs/pingback/pingback.

I would like to somehow use pingbacks in conjunction with ikiwiki. I suppose this could be achieved using a commit hook and some external software in which case I will consider this done with an entry in [[tips]]; otherwise a [[plugins|plugin]] to implement pingbacks would be great.

-- [[Jon]] (Wed Jan 14 13:48:47 GMT 2009)

I think it's now possible to implement trackback and pingback receiving support in ikiwiki. One easy way to do it would be to hook it into the existing [[plugins/comments]] plugin -- each pingback/trackback that ikiwiki recieves would result in the creation if a new comment, which would be subject to the usual comment filtering (ie, blogspam) and moderation and would then show up amoung the other, regular comments on the page.

(One wrinkle: would need to guard against duplicate pings. Maybe by checking existing comments for any that have the same url?)

As for sending trackbacks and pingbacks, this could fairly easily be implemented using a editcontent hook. Since this hook is called whenever a page is posted or edited, and gets the changed content, it can simply scan it for urls (may have to htmlize first?), and send pings to all urls found. --[[Joey]]