diff options
Diffstat (limited to 'sandbox/mallard/xslt/mal2html-table.xsl')
-rw-r--r-- | sandbox/mallard/xslt/mal2html-table.xsl | 407 |
1 files changed, 0 insertions, 407 deletions
diff --git a/sandbox/mallard/xslt/mal2html-table.xsl b/sandbox/mallard/xslt/mal2html-table.xsl deleted file mode 100644 index 3598f6e..0000000 --- a/sandbox/mallard/xslt/mal2html-table.xsl +++ /dev/null @@ -1,407 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?><!-- -*- indent-tabs-mode: nil -*- --> -<!-- -This program is free software; you can redistribute it and/or modify it under -the terms of the GNU Lesser General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your option) any -later version. - -This program is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -details. - -You should have received a copy of the GNU Lesser General Public License -along with this program; see the file COPYING.LGPL. If not, write to the -Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. ---> - -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:mal="http://www.gnome.org/~shaunm/mallard" - xmlns:str="http://exslt.org/strings" - xmlns="http://www.w3.org/1999/xhtml" - extension-element-prefixes="str" - version="1.0"> - -<!--!!========================================================================== -Mallard to HTML - Table Elements - -REMARK: Describe this module ---> - - -<!--**========================================================================== -mal2html.table.css -Outputs CSS that controls the appearance of tables - -REMARK: Describe this template ---> -<xsl:template name="mal2html.table.css"> -<xsl:text> -table.table { - border-collapse: collapse; - border-color: #555753; - border-width: 1px; -} -td { - padding: 0.5em; - border-color: #888a85; - border-width: 1px; -} -</xsl:text> -</xsl:template> - - -<!-- == Matched Templates == --> - -<!-- = table = --> -<xsl:template mode="mal2html.block.mode" match="mal:table"> - <xsl:variable name="cols" select="mal:col | mal:colgroup/mal:col"/> - <xsl:variable name="style"> - <xsl:if test="@frame and @frame != 'none'"> - <xsl:choose> - <xsl:when test="@frame = 'all'"> - <xsl:text>border-style: solid;</xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="str:split(@frame)"> - <xsl:choose> - <xsl:when test=". = 'top'"> - <xsl:text>border-top-style: solid;</xsl:text> - </xsl:when> - <xsl:when test=". = 'bottom'"> - <xsl:text>border-bottom-style: solid;</xsl:text> - </xsl:when> - <xsl:when test=". = 'left'"> - <xsl:text>border-left-style: solid;</xsl:text> - </xsl:when> - <xsl:when test=". = 'right'"> - <xsl:text>border-right-style: solid;</xsl:text> - </xsl:when> - </xsl:choose> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - </xsl:variable> - <xsl:variable name="rowrules"> - <xsl:choose> - <xsl:when test="not(@rules) or @rules = 'none'"> - <xsl:text>none</xsl:text> - </xsl:when> - <xsl:when test="@rules = 'all'"> - <xsl:text>all</xsl:text> - </xsl:when> - <xsl:when test="@rules = 'groups'"> - <xsl:text>groups</xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="str:split(@rules)"> - <xsl:choose> - <xsl:when test=". = 'rows'"> - <xsl:text>all</xsl:text> - </xsl:when> - <xsl:when test=". = 'rowgroups'"> - <xsl:text>groups</xsl:text> - </xsl:when> - </xsl:choose> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:variable name="colrules"> - <xsl:choose> - <xsl:when test="not(@rules) or @rules = 'none'"> - <xsl:text>none</xsl:text> - </xsl:when> - <xsl:when test="@rules = 'all'"> - <xsl:text>all</xsl:text> - </xsl:when> - <xsl:when test="@rules = 'groups'"> - <xsl:text>groups</xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="str:split(@rules)"> - <xsl:choose> - <xsl:when test=". = 'cols'"> - <xsl:text>all</xsl:text> - </xsl:when> - <xsl:when test=". = 'colgroups'"> - <xsl:text>groups</xsl:text> - </xsl:when> - </xsl:choose> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:variable name="rowshade"> - <xsl:choose> - <xsl:when test="not(@shade) or @shade = 'none'"> - <xsl:text>none</xsl:text> - </xsl:when> - <xsl:when test="@shade = 'all'"> - <xsl:text>all</xsl:text> - </xsl:when> - <xsl:when test="@shade = 'groups'"> - <xsl:text>groups</xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="str:split(@shade)"> - <xsl:choose> - <xsl:when test=". = 'rows'"> - <xsl:text>all</xsl:text> - </xsl:when> - <xsl:when test=". = 'rowgroups'"> - <xsl:text>groups</xsl:text> - </xsl:when> - </xsl:choose> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:variable name="colshade"> - <xsl:choose> - <xsl:when test="not(@shade) or @shade = 'none'"> - <xsl:text>none</xsl:text> - </xsl:when> - <xsl:when test="@shade = 'all'"> - <xsl:text>all</xsl:text> - </xsl:when> - <xsl:when test="@shade = 'groups'"> - <xsl:text>groups</xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:for-each select="str:split(@shade)"> - <xsl:choose> - <xsl:when test=". = 'cols'"> - <xsl:text>all</xsl:text> - </xsl:when> - <xsl:when test=". = 'colgroups'"> - <xsl:text>groups</xsl:text> - </xsl:when> - </xsl:choose> - </xsl:for-each> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <div class="table"> - <table class="table"> - <xsl:if test="$style != ''"> - <xsl:attribute name="style"> - <xsl:value-of select="$style"/> - </xsl:attribute> - </xsl:if> - <xsl:apply-templates select="mal:thead"> - <xsl:with-param name="cols" select="$cols"/> - <xsl:with-param name="rowrules" select="$rowrules"/> - <xsl:with-param name="colrules" select="$colrules"/> - <xsl:with-param name="rowshade" select="$rowshade"/> - <xsl:with-param name="colshade" select="$colshade"/> - </xsl:apply-templates> - <xsl:apply-templates select="mal:tfoot"> - <xsl:with-param name="cols" select="$cols"/> - <xsl:with-param name="rowrules" select="$rowrules"/> - <xsl:with-param name="colrules" select="$colrules"/> - <xsl:with-param name="rowshade" select="$rowshade"/> - <xsl:with-param name="colshade" select="$colshade"/> - </xsl:apply-templates> - <xsl:apply-templates select="mal:tr | mal:tbody"> - <xsl:with-param name="cols" select="$cols"/> - <xsl:with-param name="rowrules" select="$rowrules"/> - <xsl:with-param name="colrules" select="$colrules"/> - <xsl:with-param name="rowshade" select="$rowshade"/> - <xsl:with-param name="colshade" select="$colshade"/> - </xsl:apply-templates> - </table> - </div> -</xsl:template> - -<!-- = tbody = --> -<xsl:template match="mal:tbody"> - <xsl:param name="cols"/> - <xsl:param name="rowrules"/> - <xsl:param name="colrules"/> - <xsl:param name="rowshade"/> - <xsl:param name="colshade"/> - <tbody> - <xsl:apply-templates select="mal:tr"> - <xsl:with-param name="cols" select="$cols"/> - <xsl:with-param name="rowrules" select="$rowrules"/> - <xsl:with-param name="colrules" select="$colrules"/> - <xsl:with-param name="rowshade" select="$rowshade"/> - <xsl:with-param name="colshade" select="$colshade"/> - </xsl:apply-templates> - </tbody> -</xsl:template> - -<!-- = thead = --> -<xsl:template match="mal:thead"> - <xsl:param name="cols"/> - <xsl:param name="rowrules"/> - <xsl:param name="colrules"/> - <xsl:param name="rowshade"/> - <xsl:param name="colshade"/> - <thead> - <xsl:apply-templates select="mal:tr"> - <xsl:with-param name="cols" select="$cols"/> - <xsl:with-param name="rowrules" select="$rowrules"/> - <xsl:with-param name="colrules" select="$colrules"/> - <xsl:with-param name="rowshade" select="$rowshade"/> - <xsl:with-param name="colshade" select="$colshade"/> - </xsl:apply-templates> - </thead> -</xsl:template> - -<!-- = tfoot = --> -<xsl:template match="mal:tfoot"> - <xsl:param name="cols"/> - <xsl:param name="rowrules"/> - <xsl:param name="colrules"/> - <xsl:param name="rowshade"/> - <xsl:param name="colshade"/> - <tfoot> - <xsl:apply-templates select="mal:tr"> - <xsl:with-param name="cols" select="$cols"/> - <xsl:with-param name="rowrules" select="$rowrules"/> - <xsl:with-param name="colrules" select="$colrules"/> - <xsl:with-param name="rowshade" select="$rowshade"/> - <xsl:with-param name="colshade" select="$colshade"/> - </xsl:apply-templates> - </tfoot> -</xsl:template> - -<!-- = tr = --> -<xsl:template match="mal:tr"> - <xsl:param name="cols"/> - <xsl:param name="rowrules"/> - <xsl:param name="colrules"/> - <xsl:param name="rowshade"/> - <xsl:param name="colshade"/> - <tr> - <xsl:apply-templates select="mal:td"> - <xsl:with-param name="cols" select="$cols"/> - <xsl:with-param name="rowrules" select="$rowrules"/> - <xsl:with-param name="colrules" select="$colrules"/> - <xsl:with-param name="rowshade" select="$rowshade"/> - <xsl:with-param name="colshade" select="$colshade"/> - </xsl:apply-templates> - </tr> -</xsl:template> - -<!-- = td = --> -<xsl:template match="mal:td"> - <xsl:param name="cols"/> - <xsl:param name="rowrules"/> - <xsl:param name="colrules"/> - <xsl:param name="rowshade"/> - <xsl:param name="colshade"/> - <xsl:variable name="trpos" select="count(../preceding-sibling::mal:tr) + 1"/> - <xsl:variable name="tdpos" select="count(preceding-sibling::mal:td) + 1"/> - <!-- FIXME: this all breaks with rowspan/colspan --> - <xsl:variable name="shaderow"> - <xsl:choose> - <xsl:when test="$rowshade = 'all'"> - <xsl:choose> - <xsl:when test="../../self::mal:table"> - <xsl:value-of select="($trpos + 1) mod 2"/> - </xsl:when> - <xsl:otherwise> - <xsl:variable name="bodies" - select="../../preceding-sibling::mal:tbody | - ../../preceding-sibling::mal:thead "/> - <xsl:variable name="trcount" select="count($bodies/mal:tr) + $trpos"/> - <xsl:value-of select="($trcount + 1) mod 2"/> - </xsl:otherwise> - </xsl:choose> - </xsl:when> - <xsl:when test="$rowshade = 'groups'"> - <xsl:variable name="bodies" - select="../../preceding-sibling::mal:tbody | - ../../preceding-sibling::mal:thead "/> - <xsl:value-of select="count($bodies) mod 2"/> - </xsl:when> - </xsl:choose> - </xsl:variable> - <xsl:variable name="shadecol"> - <xsl:choose> - <xsl:when test="$colshade = 'all'"> - <xsl:value-of select="($tdpos + 1) mod 2"/> - </xsl:when> - <xsl:when test="$colshade = 'groups'"> - <xsl:if test="count($cols) >= $tdpos"> - <xsl:variable name="col" select="$cols[$tdpos]"/> - <xsl:if test="$col/../self::mal:colgroup"> - <xsl:value-of - select="count($col/../preceding-sibling::mal:colgroup) mod 2"/> - </xsl:if> - </xsl:if> - <!-- FIXME --> - </xsl:when> - </xsl:choose> - </xsl:variable> - <xsl:variable name="style"> - <xsl:choose> - <xsl:when test="$rowrules = 'all'"> - <xsl:choose> - <xsl:when test="../../self::mal:table"> - <xsl:if test="$trpos != 1"> - <xsl:text>border-top-style: solid;</xsl:text> - </xsl:if> - </xsl:when> - <xsl:when test="$trpos != 1 or - ../../preceding-sibling::mal:thead or - ../../preceding-sibling::mal:tbody "> - <xsl:text>border-top-style: solid;</xsl:text> - </xsl:when> - </xsl:choose> - </xsl:when> - <xsl:when test="$rowrules = 'groups'"> - <xsl:if test="$trpos = 1"> - <xsl:choose> - <xsl:when test="../../self::mal:tbody"> - <xsl:if test="../../../mal:thead | ../../preceding-sibling::mal:tbody"> - <xsl:text>border-top-style: solid;</xsl:text> - </xsl:if> - </xsl:when> - <xsl:when test="../../self::mal:tfoot"> - <xsl:text>border-top-style: solid;</xsl:text> - </xsl:when> - </xsl:choose> - </xsl:if> - </xsl:when> - </xsl:choose> - <xsl:choose> - <xsl:when test="$tdpos = 1"/> - <xsl:when test="$colrules = 'all'"> - <xsl:text>border-left-style: solid;</xsl:text> - </xsl:when> - <xsl:when test="$colrules = 'groups'"> - <xsl:if test="count($cols) >= $tdpos"> - <xsl:variable name="col" select="$cols[$tdpos]"/> - <xsl:if test="$col/../self::mal:colgroup and - not($col/preceding-sibling::mal:col)"> - <xsl:text>border-left-style: solid;</xsl:text> - </xsl:if> - </xsl:if> - </xsl:when> - </xsl:choose> - <xsl:choose> - <xsl:when test="$shaderow = 1 and $shadecol = 1"> - <xsl:text>background-color: #d3d7cf;</xsl:text> - </xsl:when> - <xsl:when test="$shaderow = 1 or $shadecol = 1"> - <xsl:text>background-color: #eeeeec;</xsl:text> - </xsl:when> - </xsl:choose> - </xsl:variable> - <td> - <xsl:if test="$style != ''"> - <xsl:attribute name="style"> - <xsl:value-of select="$style"/> - </xsl:attribute> - </xsl:if> - <xsl:apply-templates mode="mal2html.block.mode"/> - </td> -</xsl:template> - -</xsl:stylesheet> |