From: Wari W. <wa...@ho...> - 2003-02-12 15:29:14
|
will wrote: >I'm still a bit rough about some of the changes I want to make. I think >all the plugins are going to need to be recoded to work with the new >architecture, but I still don't know about how the caching mechanism will >work. > >I think I'm going to write the tools functions which I can check in and we >can all make sure that works. Then we can go from there and kind of take >it a step at a time. > > Hi guys, before you begin doing any coding of some sort, let me speak my mind a bit here. In a previous mail or two, I was talking about my plans and I've mentioned the need for renderers, and asked for your comments about renderers. After a few days of course no one still come back to me to say if it's a good or bad idea or whether I'm screwed. Anyway, if there was a misunderstanding in anyway, I think I need to re-mention this, again. What are renderers: A unit in itself concerned only in page display. You can say, stop using the blosxom templates, and use Cheetah instead (if we get that done). Here's my big picture plan. I have a directory, libs/renderers/ with a base.py file which provides the interfaces for renderers. Then I'll have blosxom.py which for now, will contain getFlavours, processEntry and the last part of startup() after plugin and entryList retrieval, as these are relevant to a blosxom type of page rendering. Once most of the data you need is processed, calling a renderer would look like: page = tools.importName('libs.renderers', py.get('pageRenderer', 'blosxom')) page.Renderer(py).display(content) content would either be an entryList, or a dict containing just {'title' : 'Something went wrong', 'body' : 'Your query got screwed'} as an example, or a callback function. This means plugins or what nots can send content to a renderer and the renderer deals with the rest. There are methods to set headers and what nots but I'm still thinking of a full spec. I believe this is the cleanest way to do things, we process URLs first, but we let renderers do what it does best with page display. So my question now is, is anyone listening? Sorry if I sounded rather demoralized and demotivated, (or god forbid, angry). |