Feeding New RSS to Movable Type

Last week's discussion of Movable Type's RSS 2.0 template on Workbench prompted e-mail from Anil Dash of the Six Apart Dashes. He wanted feedback on the possibility of adopting Brad Choate's "non-funky" RSS 2.0 template in the upcoming release of Movable Type 3.0.

I supported this idea because it's close to what I had in mind. Choate's template differs from my proposal only in two significant ways: the item-level link element is dropped in favor of guid and weblog entry descriptions are provided as excerpts rather than full text.

I think it's better to duplicate link and guid even when both contain the same permalink, but some fellow RSS 2.0 geeks think this is unnecessary.

Excerpted entries appears to be the preference of Movable Type users, if the comments here are any indication.

If you're looking for an RSS 2.0 template for Movable Type, I've dummied up what I think Six Apart will be adopting. As a longtime Radio user, I'm enjoying the chance to cheat on my weblogging software. There are some great features in Movable Type that I'm going to ape in Workbench.root, such as a power-editing mode that makes it possible to edit 20 or more weblog entries on a single Web form.


Having just moved to MT, I used Brad Choate's RSS 2.0 template for my RSS feed (I wanted to use yours, but at the time I was organising it your page brought up an error for me - but as you point out your and Brad's files are very similar anyway). But the one change I did make to Brad's file was to change from Excerpts to Full Entry.

I use a menu to open the last 5 posts. I suppose I could make it cleverer, and tile the windows or something.

local (day, month, year, hour, minute, second);
date.get (clock.now (), @day, @month, @year, @hour, @minute, @second);
«bundle //obsolete code
«local (adrFirstPost)
«local (firstOfDay = date.set (day, month, year, 0, 0, 0))
«radio.weblog.getNextPostAfterDate (adrdata, firstOfDay, @adrFirstPost)
«end = indexOf (adrFirstPost^) //reverse chronological order
local (adrLastPost);
local (lastOfDay = date.set (day, month, year, 23, 59, 59));
local (adrBlog = @weblogData);
radio.weblog.getLastPostBeforeDate (adrBlog, lastOfDay, @adrLastPost, "");
local (lastPostNo = number (nameOf (adrLastPost^)));
local (firstPostNo = lastPostNo - 5);
on getPost (n) {
try {
return (@adrBlog^.posts.[string.padWithZeros (n, 8)])}};
loop {
n = firstPostNo++;
adrLastPost = getPost (n);
try {
local (s = string.replaceAll (string (adrLastPost^.text), "r", "r"));
op.newOutlineObject (s, @adrLastPost^.text);
edit (@adrLastPost^.text)};
if n == lastPostNo {

Add a Comment

All comments are moderated before publication. These HTML tags are permitted: <p>, <b>, <i>, <a>, and <blockquote>. This site is protected by reCAPTCHA (for which the Google Privacy Policy and Terms of Service apply).