Linklog Syndication Problems

Is it possible for an XML document to be completely valid and proper, but still unusable? Yes, I think so. In particular, I think that the correct use of the <link> element in RSS and Atom feeds can make syndicated linklogs more difficult to use. "Broken" feeds contain links to the permalinked entry on the poster's website. In most newsreaders, this means that clicking on the headline (or however you open an entry in your browser) will open a page with the same short description and link as in your newsreader. Yes, you can then proceed to click on the link, but that duplication of effort can get very frustrating when it happens several times in a row with the same 3-4 feeds.

When does this approach make sense? Perhaps if the links in a linklog are open for comment, but even then one could simply use the <comments> element, at least in RSS. (Why is there no similar element in the Atom documentation, I wonder?) Or if you want to track how many people are visiting links posted to a linklog. But then you should have a server-side link tracker, and you could merely use the links that generates.

Linklogs in MovableType

Here's how I propose a linklog should work, using MovableType. The Title should be set to the title of the linked website. The Entry Body should be whatever descriptive text you usually put for your link (including the link itself). And the Extended Entry should simply be the URL for the link. Let's try this with an example link:

Title: The AIGA Design Archives

Entry Body: The <a href="http://designarchives.aiga.org/">AIGA design archives</a> are an incredibly inspiring design collection encompassing many design fields. [via <a href="http://www.airbagindustries.com/">airbag</a>]

Extended Entry: http://designarchives.aiga.org/

Now on to making those RSS and Atom templates:

A Good RSS Template for Linklogs

For brevity, I'm only including the portion inside the <item> element. You can figure out the rest.

<title><$MTEntryTitle encode_xml="1"$></title>
<description><$MTEntryBody encode_xml="1"$></description>
<link><$MTEntryMore encode_xml="1"$></link>
<MTEntryCategories>
<category><$MTCategoryLabel encode_xml="1"$></category>
</MTEntryCategories>
<pubDate><$MTEntryDate format="%a, %d %b %Y %H:%M:%S EST"$></pubDate>

Or you can download the entire RSS 2.0 linklog template.

And an Atom template, Too

Again, I'm only including the portion inside the <entry> element. And again, you can figure out the rest on your own.

<title><$MTEntryTitle remove_html="1" encode_xml="1"$></title>
<link rel="alternate" type="text/html" href="<$MTEntryMore encode_xml="1"$>" />
<modified><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></modified>
<issued><$MTEntryDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></issued>
<id>tag:<$MTBlogHost encode_xml="1"$>,
    <$MTEntryDate format="%Y">:<$MTBlogID$>.<$MTEntryID$></id>
<created><$MTEntryDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></created>
<summary type="text/plain">
  <$MTEntryExcerpt remove_html="1" encode_xml="1"$>
</summary>
<author>
  <name><$MTEntryAuthor encode_xml="1"$></name>
  <url><$MTEntryAuthorURL encode_xml="1"$></url>
  <email><$MTEntryAuthorEmail encode_xml="1"$></email>
</author>
<dc:subject><$MTEntryCategory encode_xml="1"$></dc:subject>
<content type="text/html" mode="escaped" xml:lang="en"
    xml:base="<$MTBlogURL encode_xml="1"$>">
  <$MTEntryBody encode_xml="1"$>
</content>

Or you can download the entire Atom 0.3 linklog template.

Note, most importantly, that in both templates, the <link> element isn't set to the <MTEntryPermalink> that it normally would be, but instead to <MTEntryMore>. With this set, your syndicated readers can now safely follow the link from your feed to the site you want them to see.

Comments

There are no comments yet.

Further comments are not allowed for this entry.

About this Entry

This entry was posted on Sunday, February 13, 2005 at 10:07 AM under the categories:
Movable Type.