More thoughts on RSS
25th June 2003
I helped my girlfriend set up an RSS feed for her (home brewed) weblog last night. Explaining what RSS was was easy. Explaining what she needed to put in her feed took a little bit longer. All she needed to do was provide a feed of entries, each with a title, the full body of the entry, the date it was posted and a permalink to the archived entry. In working out how to do this, we identified the following steps:
- Pick an RSS version, out of RSS 0.9x, RSS 1.0 or RSS 2.0. The 0.9x series was out because there was no way of presenting the date of an entry, so it was between 1.0 and 2.0. 1.0 had all that unnecessary RDF stuff in (is there really a good reason for the
<rdf:Seq>
element?) so she went with RSS 2.0. - Pick a date format, out of
>dc:date<
and<pubDate>
(see Mark Pilgrim’s recent entry for information on the difference).<pubDate>
won on the strength of being part of the core RSS 2.0 spec. - Pick a way of serving the actual entries, from the following alternatives:
- Entity encoded HTML in the
<description>
element. - Entity encoded HTML in a
<content:encoded>
element. - Unencoded XHTML in a
<body>
element with a namespace.
- Entity encoded HTML in the
- Pick a way of providing the permalinks. Up until RSS 2.0 this would have been done with the nice and simple
<link>
element, but 2.0 introduced the more confusing<guid>
element as well. The<link>
element was chosen as the move obvious of the two.
It took less time to write the PHP than it did to decide on the elements to use in the feed in the first place. I’ve been following RSS for a while so I was in a position to guide her through the quagmire, but I can’t imagine it would have been much fun working it out without a guide.
I support the Road map for a new format. Another format may seem like the last thing we need but the current situation is pretty much untenable and forward motion has got to be a good thing. The few concerns I had have been answered by Tim Bray in his latest essay on the subject.
More recent articles
- Qwen2.5-Coder-32B is an LLM that can code well that runs on my Mac - 12th November 2024
- Visualizing local election results with Datasette, Observable and MapLibre GL - 9th November 2024
- Project: VERDAD - tracking misinformation in radio broadcasts using Gemini 1.5 - 7th November 2024