Thorsten Scherler wrote:
> EMMEL Thomas wrote:
> >
> > since forrest uses the html-to-document.xsl file to filter native html
> > and I like to test several changes in this document it would be nice
> > to use a local copy of this file.
If your changes are of general use, then please consider
providing a patch.
> > However, forrest takes allways the file from the installation not
> > from my project. I put it to resources/stylesheets as there is the
> > hello2document.xsl-file.
>
> That is not the correct place. I assume you are using 0.8:
Both Thorsten's and Ross's answers are fantastic and should be documented.
I will attempt to explain it in words ...
> !-- All core other transforms -->
> <match pattern="transform.*.*">
In this case the internal Cocoon engine is looking for html-to-document.xsl
so that match splits it into parameters 1=html and 2=document
i.e. transform input html into the internal xml document format.
The locationmap tries various locations until it finds it.
> <select>
> <location
> src="{properties:skins-dir}{forrest:forrest.skin}/xslt/html/{1}-to-{2}.xsl" />
It will first look in your project directory. The "skins-dir" location is
pre-defined in your forrest.properties file. The next is the skin
name that you have configured in forrest.properties, e.g. "pelt".
So in the default setup, Cocoon will look for
PROJECT_HOME/src/documentation/skins/pelt/xslt/html/html-to-document.xsl
You need to create that directory and place your xsl file there.
It will be automatically found here rather than forrest core.
> <location
> src="{forrest:forrest.context}/skins/{forrest:forrest.skin}/xslt/html/{1}-to-{2}.xsl"/>
If not found it will look in the forrest core
at a skin-specific location.
> <location
> src="{forrest:forrest.context}/skins/common/xslt/html/{1}-to-{2}.xsl"/>
Then in the forrest core at a location common to all skins.
> <location src="{forrest:forrest.stylesheets}/{1}-to-{2}.xsl"/>
Then in the forrest core where general stylesheets are kept.
> </select>
> </match>
>
> So you place html-to-document.xsl in
> {properties:skins-dir}{forrest:forrest.skin}/xslt/html/ and it will
> automatically picked up.
As described above.
> ...or you implement
> <match pattern="transform.html.document">
> <location src="YourPath/html-to-document.xsl"/>
> </match>
>
> in your locationmap.
i.e. you could over-ride everything by placing that match
in your project locationmap as described at
http://forrest.apache.org/docs/locationmap.html -David