On Fri, 2004-09-03 at 11:16 +0200, Magnus Manske wrote:
Here's a thought:
- Have the article as XML (parse tree)
- Have the skin layout as another XML (say,
<topthingy><categories/></topthingy>)
- Have the skin style as CSS
- Profit! :-) (I mean, throw them together by parsing the skim XML tree,
then "collapse" it by replacing <articlebody/> with the XHTML article)
Skin XML could contain things like <sysop> with optional parts for sysops (delete page etc.) which will be left out for non-sysops. Also, for specific things like background images, there could be <skin>backimage</skin>, where the "backimage" function of the skin class is called.
That's what esi usually does (see http://www.esi.org). Of course, the fewer parts a page is composed of the better the performance. 8 includes yield a performance of about 100 requests/ second on my laptop, about 1/6 of the plain page performance. The big advantage with this is the fact that the assembly happens on the squid, so potentially in France or wherever the closest squids are. Some ideas of how a page could be split up in esi includes are in html comments in early versions of xhtml_slim.pt, the may versions for example. This kind of caching doesn't require too much purge logic, while the next step- incorporating esi tags in the content and implementing parameter-less template includes this way- is more complex.
I'm willing to help implementing the first step if there's interest, not sure about the overall opinion on this.