Mercurial > dive4elements > river
diff flys-artifacts/contrib/themes2html.xsl @ 3262:e01f74c3ec1e
Themes: Added XSL transformation to generate a better overview of the themes.
flys-artifacts/trunk@4901 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sun, 08 Jul 2012 14:55:03 +0000 |
parents | |
children | ee37ccea3b09 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/contrib/themes2html.xsl Sun Jul 08 14:55:03 2012 +0000 @@ -0,0 +1,148 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet + version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + + <xsl:output method="xml" encoding="UTF-8" + doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" + doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" indent="yes"/> + + + <xsl:template match="/themes/themegroup" mode="header"> + <li><a href="#tg-{@name}"><xsl:value-of select="@name"/></a> (<xsl:value-of select="count(theme)"/> themes)</li> + </xsl:template> + + <xsl:template match="field" mode="theme-inherits"> + <tr> + <td><i><xsl:value-of select="@name"/></i> (<a + href="#theme-{../../../@name}-{../../@name}"><xsl:value-of select="../../@name"/></a>)</td> + <td><xsl:value-of select="@display"/></td> + <td><xsl:value-of select="@type"/></td> + <td><xsl:value-of select="@default"/></td> + <td><xsl:value-of select="@hints"/></td> + </tr> + </xsl:template> + + <xsl:template match="field" mode="theme-fields"> + <tr> + <td><xsl:value-of select="@name"/></td> + <td><xsl:value-of select="@display"/></td> + <td><xsl:value-of select="@type"/></td> + <td><xsl:value-of select="@default"/></td> + <td><xsl:value-of select="@hints"/></td> + </tr> + </xsl:template> + + <xsl:template match="inherit" mode="theme-inherits"> + <xsl:variable name="target" select="@from"/> + <xsl:apply-templates + select="../../../theme[@name = $target]/inherits/inherit | /themes/themegroup/theme[@type='virtual' and @name=$target]/inherits/inherit" + mode="theme-inherits"/> + <xsl:apply-templates + select="../../../theme[@name = $target]/fields/field | /themes/themegroup/theme[@type='virtual' and @name=$target]/fields/field" + mode="theme-inherits"/> + </xsl:template> + + <xsl:template match="theme" mode="theme-groups"> + <div> + <h4>[<a href="#theme-groups">Groups</a>] [<a href="#tg-{../@name}"><xsl:value-of select="../@name"/></a>] <a + name="theme-{../@name}-{@name}">Theme '<xsl:value-of select="@name"/>'<xsl:if + test="@type = 'virtual'"> (virtual)</xsl:if></a></h4> + <table border="1" cellspacing="0" width="80%" summary="Definition of theme {@name}"> + <tr> + <th>Name</th> + <th>Display</th> + <th>Type</th> + <th>Default</th> + <th>Hints</th> + </tr> + <xsl:apply-templates mode="theme-inherits" select="inherits/inherit"/> + <xsl:apply-templates mode="theme-fields" select="fields/field"/> + </table> + </div> + <hr/> + </xsl:template> + + <xsl:template match="theme" mode="theme-list"> + <li><a href="#theme-{../@name}-{@name}"><xsl:value-of select="@name"/></a></li> + </xsl:template> + + <xsl:template match="/themes/themegroup" mode="theme-groups"> + <div> + <h2><a name="tg-{@name}">Theme group '<xsl:value-of select="@name"/>'</a></h2> + <div> + <h3>Theme List</h3> + <ul> + <xsl:apply-templates mode="theme-list" select="theme"/> + </ul> + </div> + <div> + <h3>Theme Definitions</h3> + <xsl:apply-templates mode="theme-groups" select="theme"/> + </div> + </div> + </xsl:template> + + <xsl:template match="mapping" mode="mappings"> + <xsl:variable name="target" select="@to"/> + <tr> + <td><xsl:value-of select="@from"/></td> + <td><a + href="#theme-{/themes/themegroup/theme[@name = $target][1]/../@name}-{$target}" + ><xsl:value-of select="@to"/></a></td> + <td><xsl:if test="@pattern"><pre><xsl:value-of select="@pattern"/></pre></xsl:if></td> + <td><xsl:if test="@masterAttr"><pre><xsl:value-of select="@masterAttr"/></pre></xsl:if></td> + </tr> + </xsl:template> + + <xsl:template match="mappings" mode="mappings"> + <div> + <h3><a name="mappings">Mappings</a></h3> + <table width="80%" border="1" cellspacing="0" summary="Mappings from facets to themes"> + <tr> + <th>From</th> + <th>To</th> + <th>Pattern</th> + <th>Condition</th> + </tr> + <xsl:apply-templates select="mapping" mode="mappings"/> + </table> + </div> + </xsl:template> + + <xsl:template match="/"> + <html> + <head> + <title>FLYS3 - Themes</title> + </head> + <body> + <h1>FLYS3 - Themes</h1> + <div> + <h2><a name="theme-groups">Theme groups</a> (<xsl:value-of select="count(/themes/themegroup)"/> groups)</h2> + <ul> + <xsl:apply-templates mode="header" select="/themes/themegroup[@name != 'virtual']"/> + <xsl:apply-templates mode="header" select="/themes/themegroup[@name = 'virtual']"/> + </ul> + </div> + <div> + <h2><a href="#mappings">Mappings</a> (<xsl:value-of select="count(/themes/mappings/mapping)"/> mappings)</h2> + </div> + <hr/> + <div> + <xsl:apply-templates mode="theme-groups" select="/themes/themegroup[@name != 'virtual']"/> + <xsl:apply-templates mode="theme-groups" select="/themes/themegroup[@name = 'virtual']"/> + </div> + <xsl:apply-templates mode="mappings" select="/themes/mappings"/> + </body> + </html> + </xsl:template> + + <xsl:template match="text()"/> + <xsl:template match="text()" mode="header"/> + <xsl:template match="text()" mode="theme-groups"/> + <xsl:template match="text()" mode="theme-list"/> + <xsl:template match="text()" mode="theme-fields"/> + <xsl:template match="text()" mode="theme-inherits"/> + <xsl:template match="text()" mode="mappings"/> + +</xsl:stylesheet>