Mailing List Archive

svn commit: r1751442 [6/6] - in /forrest/trunk/main/webapp/skins: ./ fleece-dev/ fleece-dev/css/ fleece-dev/fonts/ fleece-dev/images/ fleece-dev/scripts/ fleece-dev/xslt/ fleece-dev/xslt/fo/ fleece-dev/xslt/html/
Added: forrest/trunk/main/webapp/skins/fleece-dev/xslt/html/site-to-xhtml.xsl
URL: http://svn.apache.org/viewvc/forrest/trunk/main/webapp/skins/fleece-dev/xslt/html/site-to-xhtml.xsl?rev=1751442&view=auto
==============================================================================
--- forrest/trunk/main/webapp/skins/fleece-dev/xslt/html/site-to-xhtml.xsl (added)
+++ forrest/trunk/main/webapp/skins/fleece-dev/xslt/html/site-to-xhtml.xsl Tue Jul 5 11:11:48 2016
@@ -0,0 +1,796 @@
+<?xml version="1.0"?>
+<!--
+site-to-xhtml.xsl is the final stage in HTML page production. It merges HTML from
+document-to-html.xsl, tab-to-menu.xsl and book-to-menu.xsl, and adds the site header,
+footer, searchbar, css etc. As input, it takes XML of the form:
+
+<site>
+ <div class="menu">
+ ...
+ </div>
+ <div class="tab">
+ ...
+ </div>
+ <div class="content">
+ ...
+ </div>
+</site>
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:i18n="http://apache.org/cocoon/i18n/2.1" exclude-result-prefixes="i18n">
+ <xsl:import href="lm://transform.skin.common.html.site-to-xhtml"/>
+
+ <!-- Overall site template -->
+ <xsl:template match="site">
+ <xsl:comment>html lang="en" xml:lang="en"</xsl:comment>
+ <html>
+ <xsl:comment>HTML-head</xsl:comment>
+ <head>
+ <xsl:comment>Bootstrap-specific meta tags:</xsl:comment>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
+ <xsl:comment>generator meta</xsl:comment>
+ <xsl:comment>Add some Forrest-specific metadata</xsl:comment>
+ <xsl:call-template name="html-meta"/>
+ <xsl:comment>Add any metadata from the documents</xsl:comment>
+ <xsl:call-template name="meta-data"/>
+ <meta charset="utf-8"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
+ <xsl:comment>title</xsl:comment>
+ <title>
+ <xsl:value-of select="div[@id='content']/h1"/>
+ <xsl:if test="count($config/motd/motd-option) &gt; 0">
+ <xsl:for-each select="$config/motd/motd-option">
+ <xsl:choose>
+ <xsl:when test="@starts-with='true'">
+ <xsl:if test="starts-with($path, @pattern)">
+ <xsl:if test="normalize-space(motd-title) != ''">
+ <xsl:text> (</xsl:text>
+ <xsl:value-of select="motd-title"/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="contains($path, @pattern)">
+ <xsl:if test="normalize-space(motd-title) != ''">
+ <xsl:text> (</xsl:text>
+ <xsl:value-of select="motd-title"/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:if>
+ </title>
+ <xsl:comment>stylesheets</xsl:comment>
+ <link rel="stylesheet" href="{$root}skin/basic.css" type="text/css"/>
+ <link rel="stylesheet" href="{$root}skin/screen.css" type="text/css" media="screen" />
+ <link rel="stylesheet" href="{$root}skin/print.css" type="text/css" media="print" />
+ <link rel="stylesheet" href="{$root}skin/profile.css" type="text/css" />
+ <link rel="stylesheet" href="{$root}skin/bootstrap.min.css"/>
+ <xsl:comment>Javascripts</xsl:comment>
+ <script type="text/javascript" language="javascript" src="{$root}skin/getBlank.js"></script>
+ <script type="text/javascript" language="javascript" src="{$root}skin/getMenu.js"></script>
+ <script type="text/javascript" language="javascript" src="{$root}skin/fontsize.js"></script>
+ <xsl:comment>favicon</xsl:comment>
+ <xsl:if test="//skinconfig/favicon-url">
+ <link rel="shortcut icon">
+ <xsl:attribute name="href">
+ <xsl:value-of select="concat($root,//skinconfig/favicon-url)"/>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ </head>
+ <xsl:comment>HTML-body</xsl:comment>
+ <body class="container-fluid">
+ <xsl:call-template name="carry-body-attribs"/>
+ <script type="text/javascript">ndeSetTextSize();</script>
+ <xsl:comment> +Site structure
++++++++++++++++++++++++++++
++=========================+
+| topstrip |
++=========================+
+| |
+| centerstrip |
+| |
+| |
++=========================+
+| bottomstrip |
++=========================+
++++++++++++++++++++++++++++
+ </xsl:comment>
+ <xsl:comment>topstrip with logos and search box</xsl:comment>
+ <div id="top">
+ <xsl:comment>breadcrumbs org location</xsl:comment>
+ <!--<xsl:if test="not ($config/trail/@location)">
+ <xsl:comment>breadtrail</xsl:comment>
+ <div class="breadtrail">
+ <xsl:call-template name="breadcrumbs"/>
+ </div>
+ </xsl:if>-->
+ <xsl:comment>header</xsl:comment>
+ <div class="header col-sm-12">
+ <xsl:comment>start Tabs</xsl:comment>
+ <nav class="navbar navbar-default" id="topmenu">
+ <div class="container-fluid">
+ <div class="navbar-header">
+ <xsl:comment>start Project Logo</xsl:comment>
+ <xsl:variable name="xtest">
+ <xsl:choose>
+ <xsl:when test="$config/group-url and $config/search and not($config/search/@box-location = 'alt')">
+ <xsl:text>true</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>false</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$xtest='false'" >
+ <xsl:attribute name="class">
+ <xsl:text>projectlogoA1</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="renderlogo">
+ <xsl:with-param name="name" select="$config/project-name"/>
+ <xsl:with-param name="url" select="$config/project-url"/>
+ <xsl:with-param name="logo" select="$config/project-logo"/>
+ <xsl:with-param name="root" select="$root"/>
+ <xsl:with-param name="description" select="$config/project-description"/>
+ <xsl:with-param name="height" select="30"/>
+ <xsl:with-param name="aclass" select="'navbar-brand'"/>
+ </xsl:call-template>
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
+ <span class="icon-bar"/>
+ <span class="icon-bar"/>
+ <span class="icon-bar"/>
+ </button>
+ </div>
+ <xsl:comment>end Project Logo</xsl:comment>
+ <div id="myNavbar" class="collapse navbar-collapse">
+ <xsl:apply-templates select="div[@id='tabs']/ul"/>
+ </div>
+ </div>
+ </nav>
+ <xsl:comment>end Tabs</xsl:comment>
+
+ <xsl:if test="div[@id='level2tabs']/ul/*">
+ <xsl:comment>start Subtabs</xsl:comment>
+ <div id="level2tabs">
+ <nav class="navbar navbar-default" role="navigation" id="submenu">
+ <xsl:apply-templates select="div[@id='level2tabs']/node()"/>
+ </nav>
+ </div>
+ <xsl:comment>end Subtabs</xsl:comment>
+ </xsl:if>
+
+ <xsl:if test="$config/search and not($config/search/@box-location = 'alt')">
+ <xsl:comment>start Search</xsl:comment>
+ <div class="searchbox">
+ <xsl:variable name="search-prompt">Search the site with <xsl:value-of select="$config/search/@provider"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$config/search/@provider = 'lucene'">
+ <xsl:comment>Lucene search</xsl:comment>
+ <form method="get" action="{$root}{$lucene-search}">
+ <input type="text" id="query" name="queryString" size="25" i18n:attr="value placeholder">
+ <xsl:attribute name="placeholder">
+ <xsl:value-of select="$search-prompt"/>
+ </xsl:attribute>
+ </input>&#160;
+ <input type="submit" value="Search" name="Search" i18n:attr="value"/>
+ </form>
+ </xsl:when>
+ <xsl:otherwise>
+ <form class="roundtopsmall" method="get" action="http://www.google.com/search">
+ <input type="hidden" name="sitesearch" value="{$config/search/@domain}"/>
+ <input type="text" id="query" name="q" size="25" i18n:attr="value placeholder">
+ <xsl:attribute name="placeholder">
+ <xsl:value-of select="$search-prompt"/>
+ </xsl:attribute>
+ </input>&#160;
+ <input type="submit" value="Search" name="Search" i18n:attr="value"/>
+ </form>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+ <xsl:comment>end search</xsl:comment>
+ </xsl:if>
+ </div>
+ </div>
+ <xsl:comment>centerstrip with menu and mainarea</xsl:comment>
+ <div id="main" class="container-fluid">
+<!-- <div id="publishedStrip">
+ <xsl:call-template name="last-published"/>
+ </div>-->
+ <xsl:comment>breadtrail</xsl:comment>
+ <!--<div class="breadtrail">
+ <xsl:choose>
+ <xsl:when test="$config/trail/@location='alt'">
+ <xsl:call-template name="breadcrumbs"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:comment>*NO* breadtrail</xsl:comment>
+ &#160;
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>-->
+ <xsl:comment>start Menu, mainarea</xsl:comment>
+ <xsl:if test="div[@id='menu']/ul/li">
+ <xsl:call-template name="menu"/>
+ </xsl:if>
+ <xsl:comment>start content</xsl:comment>
+ <div id="article" class="col-sm-9">
+ <xsl:apply-templates select="div[@id='content']"/>
+ </div>
+ <xsl:comment>end content</xsl:comment>
+ <div class="clearboth">&#160;</div>
+ </div>
+ <xsl:comment>bottomstrip with footer</xsl:comment>
+ <div class="row container-fluid">
+ <div id="footer" class="col-sm-12">
+ <xsl:comment>start bottomstrip</xsl:comment>
+ <div class="lastmodified">
+ <xsl:call-template name="last-published"/>
+ </div>
+ <xsl:if test="$filename = 'index.html'">
+ <div id="logos" >
+ <xsl:if test="$config/disable-compliance-links/@align">
+ <xsl:attribute name="style">text-align: <xsl:value-of select="$config/disable-compliance-links/@align"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:comment>W3C logos style="text-align: center;"</xsl:comment>
+ <xsl:call-template name="compliancy-logos"/>
+ <xsl:if test="$filename = 'index.html' and $config/credits">
+ <xsl:for-each select="$config/credits/credit[not(@role='pdf')]">
+ <xsl:if test="not(@box-location = 'alt') and not(@box-location = 'alt2')">
+ <xsl:variable name="name" select="name"/>
+ <xsl:variable name="url" select="url"/>
+ <xsl:variable name="image" select="image"/>
+ <xsl:variable name="width" select="width"/>
+ <xsl:variable name="height" select="height"/><a href="{$url}">
+ <img alt="{$name} - logo" title="{$name}" border="0">
+ <xsl:attribute name="src">
+ <xsl:if test="not(starts-with($image, 'http://'))">
+ <xsl:value-of select="$root"/>
+ </xsl:if>
+ <xsl:value-of select="$image"/>
+ </xsl:attribute>
+ <xsl:attribute name="style">
+ <xsl:if test="$width">width:
+ <xsl:value-of select="$width"/>px;
+ </xsl:if>
+ <xsl:if test="$height">height:
+ <xsl:value-of select="$height"/>px;
+ </xsl:if>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:if>
+ </div>
+ </xsl:if>
+ <xsl:comment>end bottomstrip</xsl:comment>
+ </div>
+ </div>
+ <script src="{$root}skin/jquery.min.js"/>
+ <script src="{$root}skin/bootstrap.min.js"/>
+ </body>
+ </html>
+ </xsl:template>
+
+ <xsl:template name="last-published">
+ <script type="text/javascript"><![CDATA[<!-- document.write("]]><i18n:text >Last Published:</i18n:text><![CDATA[ " + document.lastModified);
+ // -->]]></script>
+ </xsl:template>
+
+ <!-- headings -->
+ <xsl:template match="div[@class = 'skinconf-heading-1']">
+ <xsl:choose>
+ <xsl:when test="//skinconfig/headings/@type='underlined'">
+ <h2 class="underlined_10">
+ <xsl:apply-templates select="(h1/title/*|h1/title/text())"/>
+ </h2>
+ </xsl:when>
+ <xsl:when test="//skinconfig/headings/@type='boxed'">
+ <h2 class="boxed">
+ <xsl:apply-templates select="(h1/title/*|h1/title/text())"/>
+ </h2>
+ </xsl:when>
+ <xsl:otherwise>
+ <h2 class="h3">
+ <xsl:apply-templates select="(h1/title/*|h1/title/text())"/>
+ </h2>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="div[@class = 'skinconf-heading-2']">
+ <xsl:choose>
+ <xsl:when test="//skinconfig/headings/@type='underlined'">
+ <h3 class="underlined_5">
+ <xsl:apply-templates select="(h2/title/*|h2/title/text())"/>
+ </h3>
+ </xsl:when>
+ <xsl:when test="//skinconfig/headings/@type='boxed'">
+ <h3 class="boxed">
+ <xsl:apply-templates select="(h2/title/*|h2/title/text())"/>
+ </h3>
+ </xsl:when>
+ <xsl:otherwise>
+ <h3 class="h4">
+ <xsl:apply-templates select="(h2/title/*|h2/title/text())"/>
+ </h3>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Add links to any standards-compliance logos -->
+ <xsl:template name="compliancy-logos">
+ <xsl:if test="$filename = 'index.html' and $config/disable-compliance-links = 'false'">
+ <a href="http://validator.w3.org/check/referer">
+ <img class="logoImage" src="{$skin-img-dir}/valid-html401.png" alt="Valid HTML 4.01!" title="Valid HTML 4.01!" style="height: 31px; width: 88px;" />
+ </a>
+ <a href="http://jigsaw.w3.org/css-validator/check/referer">
+ <img class="logoImage" src="{$skin-img-dir}/vcss.png" alt="Valid CSS!" title="Valid CSS!" style="height: 31px; width: 88px;"/>
+ </a>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="menu">
+ <xsl:comment>start Menu</xsl:comment>
+ <div id="menu" class="col-sm-3">
+ <ul class="nav nav-sidebar">
+ <xsl:comment>menu - inner</xsl:comment>
+ <xsl:for-each select = "div[@id='menu']/ul/li">
+ <xsl:call-template name = "innermenuli" >
+ <xsl:with-param name="id" select="concat('1_', position())"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </ul>
+ <xsl:comment>Search box: alternative location</xsl:comment>
+ <xsl:if test="$config/search and $config/search/@box-location='alt'">
+ <xsl:comment>start Search</xsl:comment>
+ <div class="searchbox">
+ <hr />
+ <xsl:variable name="search-prompt">Search the site with <xsl:value-of select="$config/search/@provider"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$config/search/@provider = 'lucene'">
+ <xsl:comment>Lucene search</xsl:comment>
+ <form method="get" action="{$root}{$lucene-search}">
+ <input type="text" id="query" name="queryString" size="18" onFocus="getBlank (this, '{$search-prompt}');">
+ <xsl:attribute name="value">
+ <xsl:value-of select="$search-prompt"/>
+ </xsl:attribute>
+ </input>&#160;
+ <input type="submit" value="Search" name="Search" i18n:attr="value"/>
+ </form>
+ </xsl:when>
+ <xsl:otherwise>
+ <form method="get" action="http://www.google.com/search">
+ <input type="hidden" name="sitesearch" value="{$config/search/@domain}"/>
+ <input type="text" id="query" name="q" size="18" onFocus="getBlank (this, '{$search-prompt}');" i18n:attr="value">
+ <xsl:attribute name="value">
+ <xsl:value-of select="$search-prompt"/>
+ </xsl:attribute>
+ </input>&#160;
+ <input type="submit" value="Search" name="Search" i18n:attr="value"/>
+ </form>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+ <xsl:comment>end search</xsl:comment>
+ </xsl:if>
+ <xsl:comment>start group logo</xsl:comment>
+ <xsl:if test="$config/group-url">
+ <hr/>
+ <div class="group-logo">
+ <xsl:call-template name="renderlogo">
+ <xsl:with-param name="name" select="$config/group-name"/>
+ <xsl:with-param name="url" select="$config/group-url"/>
+ <xsl:with-param name="logo" select="$config/group-logo"/>
+ <xsl:with-param name="root" select="$root"/>
+ <xsl:with-param name="description" select="$config/group-description"/>
+ <xsl:with-param name="height" select="150"/>
+ </xsl:call-template>
+ </div>
+ </xsl:if>
+ <xsl:if test="$config/host-url">
+ <div class="host-logo">
+ <xsl:call-template name="renderlogo">
+ <xsl:with-param name="name" select="$config/host-name"/>
+ <xsl:with-param name="url" select="$config/host-url"/>
+ <xsl:with-param name="logo" select="$config/host-logo"/>
+ <xsl:with-param name="root" select="$root"/>
+
+ <xsl:with-param name="description" select="$config/group-description"/>
+ <xsl:with-param name="height" select="50"/>
+ </xsl:call-template>
+ </div>
+ </xsl:if>
+ <xsl:if test="not($config/disable-copyright-footer = 'true')">
+ <div class="copyright">
+ Copyright &#169;
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$config/year"/>
+ <xsl:call-template name="current-year">
+ <xsl:with-param name="copyrightyear" select="$config/year"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:choose>
+ <xsl:when test="$config/copyright-link">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:value-of select="$config/copyright-link"/>
+ </xsl:attribute>
+ <xsl:value-of select="$config/vendor"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$config/vendor"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="$config/trademark-statement">
+ <br />
+ <xsl:value-of select="$config/trademark-statement"/>
+ </xsl:if>
+ </div>
+ <div class="feedback">
+ <xsl:if test="$config/feedback">
+ <xsl:call-template name="feedback"/>
+ </xsl:if>
+ </div>
+ </xsl:if>
+ <xsl:comment>end group logo</xsl:comment>
+ <xsl:comment>credits in alternative location</xsl:comment>
+ <div id="credit">
+ <xsl:if test="$filename = 'index.html' and $config/credits and ($config/credits/credit/@box-location = 'alt')">
+ <hr />
+ <xsl:for-each select="$config/credits/credit[not(@role='pdf')]">
+ <xsl:if test="@box-location = 'alt'">
+ <xsl:variable name="name" select="name"/>
+ <xsl:variable name="url" select="url"/>
+ <xsl:variable name="image" select="image"/>
+ <xsl:variable name="width" select="width"/>
+ <xsl:variable name="height" select="height"/>
+ <a href="{$url}">
+ <img alt="{$name} - logo" title="{$name}" border="0">
+ <xsl:attribute name="src">
+ <xsl:if test="not(starts-with($image, 'http://'))">
+ <xsl:value-of select="$root"/>
+ </xsl:if>
+ <xsl:value-of select="$image"/>
+ </xsl:attribute>
+ <xsl:attribute name="style">
+ <xsl:if test="$width">width: <xsl:value-of select="$width"/>px;</xsl:if>
+ <xsl:if test="$height">height: <xsl:value-of select="$height"/>px;</xsl:if>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:comment>Message of the day</xsl:comment>
+ <xsl:if test="count($config/motd/motd-option) &gt; 0">
+ <xsl:for-each select="$config/motd/motd-option">
+ <xsl:choose>
+ <xsl:when test="@starts-with='true'">
+ <xsl:if test="starts-with($path, @pattern)">
+ <xsl:if test="motd-page/@location='alt' or motd-page/@location='both'">
+ <hr />
+ <xsl:value-of select="motd-page"/>
+ <xsl:if test="motd-page-url">
+ <xsl:text> (</xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:value-of select="motd-page-url"/>
+ </xsl:attribute>
+ <xsl:text>More</xsl:text>
+ </a>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="contains($path, @pattern)">
+ <xsl:if test="motd-page/@location='alt' or motd-page/@location='both'">
+ <hr />
+ <xsl:value-of select="motd-page"/>
+ <xsl:if test="motd-page-url">
+ <xsl:text> (</xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:value-of select="motd-page-url"/>
+ </xsl:attribute>
+ <xsl:text>More</xsl:text>
+ </a>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:if>
+ </div>
+ <div id="roundbottom">
+ </div>
+ <xsl:comment>credits in alternative location #2</xsl:comment>
+ <xsl:comment>alternative credits</xsl:comment>
+ <div id="credit2">
+ <xsl:if test="$config/credits and ($config/credits/credit/@box-location = 'alt2')">
+ <xsl:for-each select="$config/credits/credit[not(@role='pdf')]">
+ <xsl:if test="@box-location = 'alt2'">
+ <xsl:variable name="name" select="name"/>
+ <xsl:variable name="url" select="url"/>
+ <xsl:variable name="image" select="image"/>
+ <xsl:variable name="width" select="width"/>
+ <xsl:variable name="height" select="height"/>
+ <a href="{$url}">
+ <img alt="{$name} - logo" title="{$name}" border="0">
+ <xsl:attribute name="src">
+ <xsl:if test="not(starts-with($image, 'http://'))">
+ <xsl:value-of select="$root"/>
+ </xsl:if>
+ <xsl:value-of select="$image"/>
+ </xsl:attribute>
+ <xsl:attribute name="style">
+ <xsl:if test="$width">width: <xsl:value-of select="$width"/>px;</xsl:if>
+ <xsl:if test="$height">height: <xsl:value-of select="$height"/>px;</xsl:if>
+ </xsl:attribute>
+ </img>
+ </a>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:if>
+ </div>
+ </div>
+ <xsl:comment>end Menu</xsl:comment>
+ </xsl:template>
+
+ <xsl:template name="innermenuli">
+ <xsl:param name="id"/>
+ <xsl:variable name="tagid">
+ <xsl:choose>
+ <xsl:when test="descendant-or-self::node()/li/div/@class='current'">
+ <xsl:value-of select="concat('menu_selected_',$id)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('menu_',concat(font,$id))"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="whichGroup">
+ <xsl:choose>
+ <xsl:when test="descendant-or-self::node()/li/div/@class='current'">selectedmenuitemgroup</xsl:when>
+ <xsl:otherwise>menuitemgroup</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <div class="accordion-group" id="{$tagid}Title">
+ <div class="accordion accordion-default">
+ <div class="accordion-heading">
+ <h4 class="accordion-title">
+ <a data-toggle="collapse" data-parent="#{$tagid}Title" href="#{$tagid}">
+ <xsl:value-of select="h1"/>
+ </a>
+ </h4>
+ </div>
+ </div>
+ </div>
+ <ul> <!--class="{$whichGroup}" id="{$tagid}">-->
+ <div class="" id="{$tagid}">
+ <xsl:choose>
+ <xsl:when test="contains($tagid, '_selected_')" >
+ <xsl:attribute name="class">
+ <xsl:text>accordion-collapse collapse in</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="class">
+ <xsl:text>accordion-collapse collapse</xsl:text>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <div class="accordion-body">
+ <xsl:for-each select= "ul/li">
+ <xsl:choose>
+ <xsl:when test="a">
+ <li class="menuitem"><a>
+ <xsl:attribute name="href">
+ <xsl:value-of select="a/@href"/>
+ </xsl:attribute>
+ <xsl:if test="a/@title!=''">
+ <xsl:attribute name="title">
+ <xsl:value-of select="a/@title"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:value-of select="a"/></a>
+ </li>
+ </xsl:when>
+ <xsl:when test="div/@class='current'">
+ <li class="menupage">
+ <div class="menupagetitle">
+ <xsl:value-of select="div" />
+ </div>
+ <xsl:if test="$config/toc/@max-depth > 0 and contains($minitoc-location,'menu') and count(//tocitems/tocitem) >= $config/toc/@min-sections">
+ <div class="menupageitemgroup">
+ <xsl:for-each select = "//tocitems/tocitem">
+ <div class="menupageitem">
+ <xsl:choose>
+ <xsl:when test="string-length(@title)>15"><a href="{@href}" title="{@title}">
+ <xsl:value-of select="substring(@title,0,20)" />...</a>
+ </xsl:when>
+ <xsl:otherwise><a href="{@href}">
+ <xsl:value-of select="@title" /></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+ </xsl:for-each>
+ </div>
+ </xsl:if>
+ </li>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name = "innermenuli">
+ <xsl:with-param name="id" select="concat($id, '_', position())"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </div>
+ </div>
+ </ul>
+ </xsl:template>
+
+ <!-- Generates the PDF link -->
+ <xsl:template match="div[@id='skinconf-pdflink']">
+ <xsl:if test="not($config/disable-pdf-link) or $disable-pdf-link = 'false'">
+ <div class="pdflink" title="Portable Document Format">
+ <a href="{$filename-noext}.pdf" class="dida">
+ <img class="skin" src="{$skin-img-dir}/pdfdoc.gif" alt="PDF -icon" />
+ <br/>
+ PDF
+ </a>
+ </div>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="div[@id='skinconf-xmllink']">
+ <xsl:if test="not($config/disable-xml-link) or $disable-xml-link = 'false'">
+ <div class="xmllink" title="raw XML">
+ <a href="{$filename-noext}.xml" class="dida">
+ <img class="skin" src="{$skin-img-dir}/xmldoc.gif" alt="XML - icon" />
+ <br/>
+ XML
+ </a>
+ </div>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="div[@id='skinconf-txtlink']">
+ <xsl:if test="not($config/disable-txt-link) or $disable-txt-link = 'false'">
+ <div class="podlink" title="Plain Text Documentation">
+ <a href="{$filename-noext}.txt" class="dida">
+ <img class="skin" src="{$skin-img-dir}/txtdoc.png" alt="TXT - icon" />
+ <br/>
+ TXT
+ </a>
+ </div>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="div[@id='skinconf-podlink']">
+ <xsl:if test="not($config/disable-pod-link) or $disable-pod-link = 'false'">
+ <div class="podlink" title="Plain Old Documentation">
+ <a href="{$filename-noext}.pod" class="dida">
+ <img class="skin" src="{$skin-img-dir}/poddoc.png" alt="POD - icon" />
+ <br/>
+ POD
+ </a>
+ </div>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="div[@id='skinconf-printlink']">
+ <xsl:if test="not($config/disable-print-link) or $disable-print-link = 'false'">
+ <script type="text/javascript" language="Javascript">
+ function printit() {
+ if (window.print) {
+ window.focus();
+ window.print();
+ }
+ }
+ </script>
+ <script type="text/javascript" language="Javascript">
+ var NS = (navigator.appName == "Netscape");
+ var VERSION = parseInt(navigator.appVersion);
+ if (VERSION > 3) {
+ document.write('<div class="printlink" title="Print this Page">');
+ document.write(' <a href="javascript:printit()" class="dida">');
+ document.write(' <img class="skin" src="{$skin-img-dir}/printer.gif" alt="print - icon" />');
+ document.write(' <br />');
+ document.write(' PRINT</a>');
+ document.write('</div>');
+ }
+ </script>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="div[@id='disable-font-script']">
+ <xsl:if test="$disable-font-script = 'false'">
+ <div class="trail">
+ <i18n:text >Font size:</i18n:text>&#160;
+ <input type="button" onclick="ndeSetTextSize('reset'); return false;" title="Reset text" class="resetfont" value="Reset" i18n:attr="value title"/>&#160;
+ <input type="button" onclick="ndeSetTextSize('decr'); return false;" title="Shrink text" class="smallerfont" value="-a" i18n:attr="value title"/>&#160;
+ <input type="button" onclick="ndeSetTextSize('incr'); return false;" title="Enlarge text" class="biggerfont" value="+a" i18n:attr="value title"/>
+ </div>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- Message of the day -->
+ <xsl:template match="div[@id='motd-page']">
+ <xsl:if test="$config/motd">
+ <xsl:for-each select="$config/motd/motd-option">
+ <xsl:choose>
+ <xsl:when test="@starts-with='true'">
+ <xsl:if test="starts-with($path, @pattern)">
+ <xsl:if test="motd-page/@location='page' or motd-page/@location='both'">
+ <div id="motd-area">
+ <xsl:value-of select="motd-page"/>
+ <xsl:if test="motd-page-url">
+ <xsl:text> (</xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:value-of select="motd-page-url"/>
+ </xsl:attribute>
+ <xsl:text>More</xsl:text>
+ </a>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ </div>
+ </xsl:if>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="contains($path, @pattern)">
+ <xsl:if test="motd-page/@location='page' or motd-page/@location='both'">
+ <div id="motd-area">
+ <xsl:value-of select="motd-page"/>
+ <xsl:if test="motd-page-url">
+ <xsl:text> (</xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:value-of select="motd-page-url"/>
+ </xsl:attribute>
+ <xsl:text>More</xsl:text>
+ </a>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ </div>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="div[@id='skinconf-toc-page']">
+ <xsl:comment>Table of Contents ToC</xsl:comment>
+ <xsl:if test="$config/toc">
+ <xsl:if test="contains($minitoc-location,'page')">
+ <xsl:if test="(count(//tocitems/tocitem) >= $config/toc/@min-sections) or (//tocitems/@force = 'true')">
+ <div id="minitoc-area">
+ <xsl:call-template name="minitoc">
+ <xsl:with-param name="tocroot" select="//tocitems"/>
+ </xsl:call-template>
+ </div>
+ </xsl:if>
+ </xsl:if>
+ </xsl:if>
+ </xsl:template>
+</xsl:stylesheet>

Added: forrest/trunk/main/webapp/skins/fleece-dev/xslt/html/tab-to-menu.xsl
URL: http://svn.apache.org/viewvc/forrest/trunk/main/webapp/skins/fleece-dev/xslt/html/tab-to-menu.xsl?rev=1751442&view=auto
==============================================================================
--- forrest/trunk/main/webapp/skins/fleece-dev/xslt/html/tab-to-menu.xsl (added)
+++ forrest/trunk/main/webapp/skins/fleece-dev/xslt/html/tab-to-menu.xsl Tue Jul 5 11:11:48 2016
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!--
+This stylesheet generates 'tabs' at the top left of the screen. Tabs are
+visual indicators that a certain subsection of the URI space is being browsed.
+For example, if we had tabs with paths:
+
+Tab1: ''
+Tab2: 'community'
+Tab3: 'community/howto'
+Tab4: 'community/howto/form/index.html'
+
+Then if the current path was 'community/howto/foo', Tab3 would be highlighted.
+The rule is: the tab with the longest path that forms a prefix of the current
+path is enabled.
+
+The output of this stylesheet is HTML of the form:
+ <div class="tab">
+ ...
+ </div>
+
+which is then merged by site-to-xhtml.xsl
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:import href="lm://transform.skin.common.html.tab-to-menu"/>
+ <xsl:template match="tabs">
+ <div id="tabs">
+ <ul class="nav navbar-nav">
+ <xsl:call-template name="base-tabs"/>
+ </ul>
+ </div>
+ <div id="level2tabs">
+ <ul class="nav navbar-nav">
+ <xsl:call-template name="level2tabs"/>
+ </ul>
+ </div>
+ </xsl:template>
+ <xsl:template name="pre-separator"></xsl:template>
+ <xsl:template name="post-separator"></xsl:template>
+ <xsl:template name="separator"></xsl:template>
+ <xsl:template name="level2-separator"></xsl:template>
+ <xsl:template name="selected">
+ <li class="active dropdown"><xsl:call-template name="base-selected"/></li>
+ </xsl:template>
+ <xsl:template name="not-selected">
+ <li class="dropdown"><xsl:call-template name="base-not-selected"/></li>
+ </xsl:template>
+ <xsl:template name="level2-not-selected">
+ <li><xsl:call-template name="base-not-selected"/></li>
+ </xsl:template>
+ <xsl:template name="level2-selected">
+ <li class="active"><xsl:call-template name="base-selected"/></li>
+ </xsl:template>
+</xsl:stylesheet>

Modified: forrest/trunk/main/webapp/skins/new-skin-names.txt
URL: http://svn.apache.org/viewvc/forrest/trunk/main/webapp/skins/new-skin-names.txt?rev=1751442&r1=1751441&r2=1751442&view=diff
==============================================================================
--- forrest/trunk/main/webapp/skins/new-skin-names.txt (original)
+++ forrest/trunk/main/webapp/skins/new-skin-names.txt Tue Jul 5 11:11:48 2016
@@ -8,7 +8,7 @@ Just pick one of these, it's easy.
If you still cannot decide, toss a dice 3 times, sum up the numbers,
and get the name that comes out.

-1 fleece
+1 fleece -> taken
2 rind
3 fur
4 hide