forrest-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From EMMEL Thomas <thomas.em...@3ds.com>
Subject Need help on patching forrest
Date Thu, 08 Nov 2007 08:49:54 GMT
Hi rangers...

I wonder whether someone can give me some help on applying a patch to 
forrest (html-to-document.xsl) to allow for something like

<ul class='myul'>
...
</ul>

or

<ul id='myul'>
...
</ul>

together with some css applied to that element.

The CSS is no problem, I am now much more familiar with that (after 
reading Andy Budd's) very good book about CSS-mastery...

My problem is XSL, since I have not yet the time to dive into XSL.

I changed the file html-to-document.xsl for the ul-element to allow for 
the class (see below), the id is not tested but maybe of interest in the 
future.

My questions are:
1. How can I avoid to make changes always in the installation of forrest?
Can I use a project-specific local html-to-document.xsl-file instead?

2. Is the way I have done it the preferable way?
Normally if writing code (python for me) I would prefere to write a 
function since the core choose-function is repeated twice here.

3. In addition, since this problem will reappear for a lot of elements 
again and again a more general solution could be better! Any hints?

4. As I have several of these changes and some improvements done here it 
would be nice if I could provide these to the main trunk.
How should I proceed?


Actually we are using forrest 0.8 but I can easily add 0.9dev to my path.

Here is the change:
Adding an extra 'choose' let me allow for the class in ul...
---------------------
<xsl:template match="ul">
     <xsl:choose>
       <xsl:when test="name(..)='p'">
<xsl:text disable-output-escaping="yes"><![CDATA[</p>]]></xsl:text>
       <xsl:choose>
         <xsl:when test="@class">
           <ul>
             <xsl:attribute name="class"><xsl:value-of 
select="@class"/></xsl:attribute>
             <xsl:apply-templates/>
           </ul>
         </xsl:when>
         <xsl:otherwise>
           <ul>
             <xsl:apply-templates/>
           </ul>
         </xsl:otherwise>
     </xsl:choose>
<xsl:text disable-output-escaping="yes"><![CDATA[<p>]]></xsl:text>
       </xsl:when>
       <xsl:otherwise>
       <xsl:choose>
         <xsl:when test="@class">
           <ul>
             <xsl:attribute name="class"><xsl:value-of 
select="@class"/></xsl:attribute>
             <xsl:apply-templates/>
           </ul>
         </xsl:when>
         <xsl:otherwise>
           <ul>
             <xsl:apply-templates/>
           </ul>
         </xsl:otherwise>
     </xsl:choose>
       </xsl:otherwise>
     </xsl:choose>
   </xsl:template>


Many Thanks

Thomas

Mime
View raw message