forrest-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Donald <>
Subject Newbie Feedback
Date Sun, 03 Nov 2002 22:55:28 GMT

I have been slowly adapting forrest with a different skin and using my own 
DTDs and I figured I would give you feedback because I am still pretty much a 
newbie ;)

Error Reporting:

First off the error reporting sucks badly. If I forget to close a tag in an 
xsl sheet then the error is not reported and I just end up with a broken 
index.html (presumably the initial crawl point?). I ended up having to resort 
to commenting out parts to locate the error... Painful in the extreme.

I would so much prefer that there was an error pointed out if a problem 
occured in a particular pipeline stage. Then at least I would know where to 
look and how to go about fixing the problem.


The directions for creating a skin at

don't seem to work. Or at least I don't seem to be able to make them work. 
They don't get copied to correct place and thus it fails (though it took me a 
while to figure this out - see above). I had to resort to placing the skin in 
xml-forrest and rebuilding forrest every time I changed the skin.

XSLT Sheets:

The XSLT sheets don't separate out concerns and are not exactly easy to reuse 
parts of. I wanted to create my own skin but I found myself pretty much 
rewriting large chunks of the xslt to work with what I wanted to do.

What I would like to see is that visual style and visual structure are 
separated out. Visual style could be placed in css sheets and visual 
structure would be generated in xslt sheets. Essentially the XSLT would 
create a document with lots of <span/>s and <div/>s that each had their style

and id marked out. Then all the styling would occur via css.

The advantage of that? Well then I could reuse large parts of forrest skins 
xslt in the tigris skin. For example consider something where we have a 
simple menu. We could have xslt generate something like

<div id="mainMenu" class="menuBar">
  <div id="menu1" class="menu">
    <div class="menuLabel">MyMenuGroup</div>
    <div class="menuItem"><a href="..">MyMenuItem</a></div>

See the above only gives the structure. With CSS you could color, position, 
indent, add icons and generally make pretty. And by just changing the css I 
could use the same xslt in either the tigris or forrest skins. Yea!

No XSLT comments:

The XSLT also lack all comments in generated form and can be difficult to 
figure out. I would highly suggest that you add things like the following all 
the way through your xslt sheets

<xsl:comment>===== start BreadCrumb =====</xsl:comment>
<xsl:comment>===== end BreadCrumb =====</xsl:comment>

If there is a concern over size of generated file then you should add an extra 
transformer in production docs such that the comments are stripped, uneeded 
whitespace is removed and normalization occurs.

Thats another thing that I found irritiating - some of the xslt sheets don't 
use whitespace to make them easier to understand. Some of the lines were 
pushing 400 characters!!!! It would be soo much easier if they broke them 
down into smaller more easily understood by people like me ;)

Call XSLT Templates:

Large chunks of the stylesheets could be turned into parametrized templates 
that are called from another section. Several places through the forrest skin 
I saw the same bit of code repeated - sometimes with slight modifications. 
For example, the render an image or text if image not present (ie rendering 
group logo, project logo, credits logos, host logo) is one such example. Only 
some of them printed out the text when the image was not present, some of 
them would not print logo if defined as empty string, some required image 
while others didn't. So I made a parameterized template that took 
displayString, logo, url and treated all of them identically. It seemed to 
work well. I would love it if the rest of xslt sheets worked that way.

XSLT library:

It would be great if chunks of common xslt behaviour were placed in a library 
area where they could be reused without fuss. I vaguely recall some sort of 
cascading ability for xslt sheets (import at lower priority or something?). 
So using that you could just overide the behaviour you needed to change. 
Combine this with css/xslt separation and skins become soooo much easier to 


It is sooooo much easier than raw Cocoon and bugs seem to get fixed faster 
than I can report them (several I had to report had already been fixed). So 
this is definetly encouraging ;)

Anyways this is the initial thoughts from an XSLT weenie/hater who is 
incredibly lazy ;) Maybe useful. If any of these things were "fixed" then I 
would be very happy. 


Peter Donald
My opinions may have changed, 
but not the fact that I am right

View raw message