It was great to read Ken MacLeod’s note on “Is a feed the right place for your data?” as it confirmed some things I’ve been experimenting with at work.
Rather than using an html:link reference from a feed to a content piece, I use xinclude, so you get, in Atom:
<entry xmlns="...">
...
<content type="text/xhtml">
<include
xmlns="http://www.w3.org/2001/XInclude"
href="http://example.com/path/to/content.html">
<fallback>Can't load content.html.</fallback>
</include>
</content>
</entry>
XInclude lets me do a form of ‘late binding’ before transforming the feed. In this case, a feed is a collection of related articles in a tutorial. I can edit the feed independent of the articles (which, in this case, live in a WebDAV folder.)
The articles themselves are simple XHTML, which means you can hand off the editing task to Contribute, Midas,, FrontPage (the horror!) emacs, or whatever else is handy for your writers and editors, as long at you get XHTML out of the editing process.
When I’m ready to render the batch of articles, I resolve the XInclude elements (which is straightforward using LIBXML2/LIBXSLT,) cache the resulting document, and run an XSLT transform to get the rendered form of each article. The structure of the feed gets me the raw materials to generate a table of contents.
