one more, I think, that Tobago has an elegant approach for that as well.
-M On Nov 22, 2007 1:53 PM, Matthias Wessendorf <[EMAIL PROTECTED]> wrote: > Hi Simon, > > usually you use <tr:document> (or <trh:html>, <trh:head>, <trh:body>). > The TrDocument uses the HeadRender to render something like this: > > <link rel="stylesheet" charset="UTF-8" type="text/css" > href="/trinidad/adf/styles/cache/minimal-desktop-ne8suk-en-gecko-cmp.css"> > > the truth is here, that HeadREnderer uses the StyleSheetRenderer > (accessable via <trh:styleSheet> as well) to render the lines above. > > The StyleSheetRenderer get's the URL (like here to the cache-folder) > via a StyleProvider implementation. > > HTH, > Matthias > > > On Nov 22, 2007 1:38 PM, Simon Kitching <[EMAIL PROTECTED]> wrote: > > Hi All, > > > > Tomahawk's ExtensionsFilter allows components to cause data to be inserted > > into the HEAD section of a generated HTML page, even when they occur in the > > body. In particular, this allows components to output references to > > javascript and css that they need. This is extremely useful, but the > > implementation is rather ugly. > > > > I know almost nothing about Trinidad, but it presumably has something > > similar, in order to provide default skins for its components. Would > > someone be kind enough to give a very brief summary of how Trinidad > > achieves this? I'm hoping that there is something there I can steal to > > improve Tomahawk's approach. > > > > Currently, tomahawk ExtensionFilter's standard approach is to buffer the > > entire output. As each component renders itself, it can register resources > > it needs in a request-scoped variable. After rendering is complete, the > > ExtensionFilter scans the buffered output for the closing </head> tag and > > similar bits, and inserts and registered resources into the buffer. This is > > inefficient due to the buffering, and the code is complex (a simple HTML > > parser is needed!). > > > > Thanks, > > > > Simon > > > > > > -- > Matthias Wessendorf > > further stuff: > blog: http://matthiaswessendorf.wordpress.com/ > sessions: http://www.slideshare.net/mwessendorf > mail: matzew-at-apache-dot-org > -- Matthias Wessendorf further stuff: blog: http://matthiaswessendorf.wordpress.com/ sessions: http://www.slideshare.net/mwessendorf mail: matzew-at-apache-dot-org
