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