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.
--
Gabriel Wicke