comments inline ...

Dave Johnson wrote:
First, some review: the current Roller newsfeed situation...

Currently, each Roller blog has an RSS 2.0 and an Atom 1.0 newsfeed. Each of these lists the most recent X number of entries (where X is set on the blog's Preferences->Settings page). Each newsfeed accepts two request: 'catname' so
you can get a category specific feed and 'excerpts' so you can request an
excerpt only feed. So we have:

  /roller/rss/<weblog-handle>?catname=<catname>&excerpts=[true|false]
  /roller/atom/<weblog-handle>?catname=<catname>&excerpts=[true|false]

At the site-wide level, there is an RSS 2.0 newsfeed and an Atom 1.0 newsfeed for the entire site. Both accept the same 'catname' and 'excerpts' parameters.

  /roller/rss?catname=<catname>&excerpts=[true|false]
  /roller/atom?catname=<catname>&excerpts=[true|false]

Plus, there's a Planet feed. Normally, the feed contains entries from all
of the weblogs on the Roller site plus all of the entries from subscriptions
in the 'external' group. But you can also specify request parameter 'group'
to get feed containing only entries from one subscription group.

  /roller/planetrss?group=<groupname>


So, what's the question?

With Atlas, I'd like to allow the frontpage blog to specify it's newsfeeds.
It's possible that a frontpage blogger might want his blog's feed to contain:

* Only entries from the front-page blog itself
* Entries from the entire site
* Entries from the entire site plus external blogs
* Entries from one specific planet group

How do we do this? I've come up with four options.

Option #1: There's nothing special about the frontpage blog

Treat site-wide feeds and blog-specific feeds as completely independent things. So, the frontpage blog's feeds are just like any other blog's feeds. And, the
site-wide feeds must be configured at the site level by a Global Admin at
runtime or via roller-custom.properties.

easiest, but crude and not very user friendly :(



Option #2: Pick feedscope=site or feedscope=weblog
Frontpage blogger must chose either a site-wide or a blog-only feed. Add a new field to the website table to allow a blogger to pick a 'feedscope' of either
'weblog' or 'site'.

this is reasonable, but still too limited if you ask me. it doesn't really account for the planet feed option, or possibly the option that the user wants to add an arbitrary new custom feed type.



Option #3: Pick almost anything via simple syntax

Frontpage blogger must create a simple feed-specification, a string that
specifies the feed to be produced by the frontpage blog. That 'feedspec' would
be stored as a new field in the website table. It must have one of the
following three formats.

A. site?cats=<cat1,cat2>&lang=<lang>&excerpts=[true|false]
A site-wide feed optionally restricted by catnames, lang and excerpts.
If excerpts not specified, then subscibers can choose either.

B. weblog?cats=<cat1,cat2>&lang=<lang>&excerpts=[true|false]
Weblog-only feed optionally restricted by catnames, lang and excerpts.
If excerpts not specified, then subscibers can choose either.

C. planet?groups=<group1,group2>&cats=<cat1,cat2>,lang=<lang>,excerpts=[true|false]
  Planet feed optionally restricted by groups, catnames, lang and excerpts
If excerpts not specified, then subscibers can choose either.

i can't say that i am really a fan of the feedspec idea for a couple reasons. 1) it's still limited to feedspec options that Roller is knowledgeable about, so it wouldn't support arbitrary feeds the user wants to define, and 2) i would like to see us make better use of our existing infrastructure via templates.



Option #4: Same as #3, but for all weblogs

Allow all weblogs to specify their feedspec and feedtypes, but only
the frontpage
blog can specify ones that start with 'site' and 'planet'.

i don't see how the feedspec would be useful to weblogs if you are only allowed to use 1 of the 3 options.



Personally, I like #4. Comments, suggestions, other options?

i am on board with the idea behind #4, which is that each weblog should have the ability to control what feeds it offers, but i don't particularly see how the feedspec thingy is useful.

i have a couple more fundamental questions about what direction we really want to take here, then a suggestion ...

1. Do we want to allow admins/users to have full control over what feeds are available for a weblog? or do we want to continue our current path where we basically handle feeds for them?

2. Is it important for all feeds to be under the new <weblog>/feed/<flavor> url? or is it okay if custom feeds exist as custom weblog pages under <weblog>/page/<myfeed>

3. Do we want the site wide feed to be the default? or should Roller admins have to enable it when they want it?

4. Should the rss/atom feed for the main blog only pertain to that weblog? or should it possibly pertain to a different set of data, like the site wide feed or planet feed? if it always pertains to the weblog then other feeds need their own url path <weblog>/feed/<something>

suggestions ...

technically, as far as our rendering is concerned, there is no difference between a weblog page and a weblog feed. both are just content to be rendered from a template. the only difference right now is that we don't let users manage their feed templates, instead we do that for them.

if we really want to give users truly flexible control over their feeds then i suggest we simply move the feeds to become weblog templates just like pages are now. to make this happen i think all we would really need to do is add 2 fields to the weblogpage table ...

 * content type - to allow users to specify if the feed is rss, atom, etc.
 * page type - to specify if the template represents a "feed" or a "page".

we then make use of the existing "link" attribute of a weblog template to complete the picture. this way when an incoming request for <weblog>/feed/foo comes in we simply lookup a template named "foo" with a page type of "feed" and render that template. these templates would be editable as part of normal template editing interface, and we could also lock down certain feeds that we prefer people not edit, like atom and rss.

then when someone wants to add a new feed, like the site wide feed or planet feed, they just define a new template of type "feed", give it a link value that they want and define the contents however they want it to be rendered.

one thing to consider though is if this is really a good idea? is this really something that is desired from an enterprise blogging solution? this would be quite a bit of change just to support a site wide feed. a lot of this sounds nice to me, but i'm not sure it's really needed.

-- Allen



And another thing. It's now considered a best practice now to offer only one format of newsfeed. Mutliple formats are confusing to users and to aggregators
trying to uniquely ID entries. So, if we go with #4, we should also
add a 'feedtype'
field to the website table so that the frontpage blogger can pick the
blog format to
be supported (must be a supported flavor from the classes/flavors directory).

- Dave

Reply via email to