A Non-Funky MT RSS 2 Template
Here's my shot at a non-funky RSS 2 template for Movable Type.
<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<rss version="2.0">
<channel>
<title><$MTBlogName remove_html="1" encode_html="1"$></title>
<link><$MTBlogURL$></link>
<description><$MTBlogDescription remove_html="1" encode_html="1"$></description>
<language>en-us</language>
<copyright>Copyright <$MTDate format="%Y"$></copyright>
<lastBuildDate><MTEntries lastn="1"><$MTEntryDate language="en"
format="%a, %d %b %Y %H:%M:%S "$><$MTBlogTimezone
no_colon="1"$></MTEntries></lastBuildDate>
<pubDate><$MTDate language="en"
format="%a, %d %b %Y %H:%M:%S "$><$MTBlogTimezone
no_colon="1"$></pubDate>
<generator>http://www.movabletype.org/?v=<$MTVersion$></generator>
<ttl>60</ttl>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<MTEntries lastn="15">
<item>
<title><$MTEntryTitle remove_html="1" encode_html="1"$></title>
<description><$MTEntryExcerpt encode_html="1"$></description>
<guid><$MTEntryPermalink encode_html="1"$></guid>
<category><$MTEntryCategory remove_html="1" encode_html="1"$></category>
<pubDate><$MTEntryDate language="en"
format="%a, %d %b %Y %H:%M:%S "$><$MTBlogTimezone
no_colon="1"$></pubDate>
</item>
</MTEntries>
</channel>
</rss>
Updated based on suggestions by Rogers Cadenhead. Thanks, Rogers!
Updated to remove the link element. Thanks, Mark!
You'll need to use a later version of Movable Type for this -- 2.51 or so I think since it uses <$MTPublishCharset$>. It doesn't rely on any externally defined modules -- neither Dublin Core or UserLand's blogChannel module. If you want them, feel free to add that to this.
Please note: if your weblog is not English, you should change the <language> element to reflect your language. The value you put there should come from this list. However, do not modify the language="en" attribute for the MT date tags for the <pubDate> elements, since those need to be consistently English in format so that RSS aggregators can read them properly. Thank you.
This will produce a feed that uses excerpts -- if you want a "full" feed that provides the entire content of your post, change the <description> tag to this:
<description><$MTEntryBody encode_html="1"$>
<$MTEntryMore encode_html="1"$></description>
This is similar to the template I use for my RSS 2.0 feed. Of course, it is valid, both by Mark and Sam's validator and UserLand's.
But the real RSS 2.0 Validator -- namely Dave Winer -- will have to let me know if I've got it right.
Of course, we could just scrap it all and start over. Sam Ruby is leading the way for defining a new weblog format. There is merit to doing exactly that. If it means putting the past and grievances behind, shaking hands and reaching agreement, then let's do it.
As for a name, I think I like Pie best of all. It works on many levels:
- Since it is a word, you can consider it as just a name for the syndication format -- it wouldn't have to be an acronym.
- If you like acronyms, how about some already suggested: "Publishing Interface and Exchange" or "Public Information Exchange".
- As a TLA, it works well for a file extension.
- It describes something consumable, which fits well with syndicated content -- something people consume.
- Would make for a great visual icon. I can see the buttons already. (And they wouldn't even need to be orange.)
- The visual image of a piece of pie fits well with the concept of a slice of content -- such as headlines and excerpts from a resource.
- "Easy as pie" -- a well known phrase that hopefully speaks to the simple nature of the forthcoming format.
- Who doesn't like pie?
Looks like they've settled on Echo. Oh well. Guess that works too.
Looks like they've settled on Atom. Oh well. Guess that works too.
Re: "but the *real* RSS 2.0 validator -- Dave Winer -- will have to let me know if I've got it right."
Thank you Brad, you have just single-handedly proved why we need a new vendor-neutral format. Last fall, when the feeds.archive.org/validator/ RSS validator came out, Dave praised it (and us) to high heaven.
Now, suddenly, apparently out of nowhere, that validator has become the "Mark and Sam" validator, which is therefore obviously evil. And a single vendor's proprietary closed-source validator, which hasn't been updated since the days of RSS 0.91 and which is so lax that it accepts and "passes" non-well-formed XML in some cases, is getting a new wave of attention.
And then here you come, telling the world that, really, neither of these automatic validation tools is good enough in the real world, because to be sure, you need one single person (who doesn't even work for that vendor anymore) to manually check your feed to be absolutely sure you've done everything right.
Which, by the way, you haven't. Didn't you hear? Dave just announced this morning that
linkshould not be used for permalinks, despite the fact that it worked that way in 0.91, 0.92, 0.93, 0.94, and even 2.0 before today (or maybe it didn't and he just didn't tell anyone, I haven't quite figured that out yet).So thank you Brad. Thank you very much for proving exactly why we need a new vendor-neutral format. I couldn't have said it better myself.
Hey, I was first! :-) But since I kept the content:encoded element, I'm still not as unfunky as I could be.
Hey -- I never said I was first. Just that this was my take on a feed that passes the Dave Validation test.
Actually, the first person that Dave complimented on their RSS 2.0 was Mark. (It seems to have become funky only recently).
There is also a need for a validator for Dave's other formats (such as OPML) because the creative use of XML means that DTD or XML Schema-based won't work.
Great, thanks! Caveat non-US users: Change the language code to yours (ISO list), but don't change the language inside MTDate.
http://diveintomark.org/archives/2003/06/26/dont_use_userlands_validator.html
Actually the validator is not closed source. It's the same RSS parser that's in Radio, and full source is provided. I hope you'll correct the post and next time check first. Thanks.
Dave, "comes with source" != "open source". Your users can not take the validator source code that comes with Radio, modify it, and redistribute it on their own. You can argue about whether that is a benefit worth having, but you can't redefine the terms.