[development] Core feed publishing

beerfan beerfan at gmail.com
Tue Jul 3 03:02:14 UTC 2007


Feed publishing, and the RSS format in particular, is currently
tightly coupled with the node module. Because of this supporting Atom
or extending feed functionality with custom modules isn't as clean as
it should be. For example, adding a name-space to a node feed requires
replacing default feeds with custom feeds instead of simply "theming"
the output of feeds as you would do with every other form of content
display. Publishing only Atom feeds (and disabling RSS) is impossible.
I would like to see feed publishing become more generic and more
extensible in the core and I believe there has been discussion around
this in the past.

Ideally, feed publishing would be a generic module or api which would
support the following needs.

1. Multiple arbitrary feed formats (RSS, Atom) with a default
2. Custom name-spaces and elements (possibly via themes or hooks)
3. Publish comment feeds or any other arbitrary content (watchdog
events, users, etc.)
4. The ability to provide a feed of any arbitrary set of content
(e.g., view, node-queue)
5. Optimize publishing for very high traffic feeds (e.g., caching or
saving as static xml file)
6. The ability to disable feeds

It is currently possibly to cobble together most of the above
functionality with views.module, commentrss.module, and atom.module
but the solution is sub-optimal for many reasons.

I recently started creating a feed.module against HEAD with the hope
that it could turn into a core module which would make feed publishing
more flexible and collect all feed formatting and publishing code and
eliminate the RSS publishing functionality in node.module. However,
since 6.x was just frozen there's probably no hope of introducing this
now but I'd still like to re-float the idea and get some feedback. In
particular, I'm curious if anyone else is already working on such a
project, if there are any side-effects of separating feed publishing
from node.module that I haven't considered, or if this problem might
be better approached using views as the complete solution (not really
viable since views is not a core module). Please ignore the fact that
this can't be implemented for 6.x.

As an example of an issue I have faced, feedburner.com adds a "number
of comments for this entry" if the feed includes the "wfw:commentsRss"
element pointing to the comment feed for the entry. I have modified
the commentrss.module to add the element to the node feed but there is
no way to add the "wfw" name-space to the node feed without replacing
it with a custom feed so I had to add the name-space to each instance
of the "commentRss" element.

Cheers,
Chris Cook


More information about the development mailing list