I refactorised a lot of stuff in the core, resulting in a big fat commit in the CVS.
Theme now have more responsabilities in the rendering process and modules have now more power on the rendering too.
Here is the new flow of invocations :
1.nukes request receives an HTTP request
2.it decodes the imput getting the target module as well as the target operation name
3.it creates a page object
4.it invokes process() on the target module
5.the module receive the call and decides to render the theme and proceed to the module invocation or not (this is used by the HTML module that enables the download of file that will not be painted)
6.it calls process() on the page object
7.the page object call the theme render method
8.the theme print the head tags and its stuff and calls the blocks and the module render method
it allows more flexibility, because for instance the HTML module can proceed to file download through a index.html URL
I have more to commit soon, stay tuned on that topic
I have refactored the HTML, something I wanted to do for a log time. Check it out, I hope you will find it more usable now.