commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mdigg...@apache.org
Subject cvs commit: jakarta-commons/commons-build commons-site-experimental.jsl
Date Fri, 19 Mar 2004 18:27:13 GMT
mdiggory    2004/03/19 10:27:13

  Added:       commons-build commons-site-experimental.jsl
  Log:
  Experimental Version of commons-site.jsl that produces horizonal layout.
  
  Revision  Changes    Path
  1.1                  jakarta-commons/commons-build/commons-site-experimental.jsl
  
  Index: commons-site-experimental.jsl
  ===================================================================
  <?xml version="1.0"?>
  <!-- stylesheet to be used -->
  <jsl:stylesheet select="$doc"
    xmlns:define="jelly:define"
    xmlns:j="jelly:core"
    xmlns:jsl="jelly:jsl"
    xmlns:log="jelly:log"
    xmlns:util="jelly:util"
    xmlns:x="jelly:xml"
    xmlns:doc="doc"
    xmlns="dummy" trim="false">
    <jsl:template match="document" trim="false">
      <j:useBean var="navbean" class="org.apache.maven.NavBean"/>
  	<j:set var="location" value="${outFile.substring(destdir.length())}"/>
  	<util:replace var="location" oldChar="\" newChar="/" value="${location}"/>
  
      <!-- Stores location for publish date / version -->
      <j:set var="date">${maven.xdoc.date}</j:set>
        
  	<j:setProperties 
  		object="${navbean}"
    		document="${doc}"
    		location="${location}"/>
  	
  	<x:doctype name="html"
        publicId="-//W3C//DTD XHTML 1.0 Transitional//EN"
        systemId="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
  
      <html>
        <head>
          <j:set var="docTitle">
            <x:expr select="./properties/title"/>
          </j:set>
          <x:if select="$nav/title">
            <title>
              <x:expr select="$nav/title"/> - ${docTitle}
            </title>
          </x:if>
          <x:if select="not($nav/title)">
            <title>${pom.name} - ${docTitle}</title>
          </x:if>
          
          <style type="text/css"><![CDATA[
            @import url("http://jakarta.apache.org/commons/style/tigris.css");
            @import url("http://jakarta.apache.org/commons/style/maven.css");
            @import url("http://jakarta.apache.org/commons/style/project.css");
            @import url("http://jakarta.apache.org/commons/style/tabs.css");
          ]]></style>
          
            
          <!--
          <util:file var="projectCssFile" name="${maven.docs.src}/style/project.css"/>
          <j:if test="${projectCssFile.exists()}">
            <style type="text/css"><![CDATA[
              @import url("${relativePath}/style/project.css");
            ]]></style>
          </j:if>
          -->
          
          <!-- FIXME: once someone works out how to stop this breaking
          <x:element name="script"><x:attribute name="type">text/javascript</x:attribute>
            if (document.layers) {
                  document.writeln(''+
                  '<link rel="stylesheet" type="text/css" href="${relativePath}/style/ns4_only.css"
media="screen" /><link rel="stylesheet" type="text/css" href="${relativePath}/style/maven_ns4_only.css"
media="screen"/>');
                }
              </x:element>
          -->
          <link rel="stylesheet" type="text/css" href="http://jakarta.apache.org/commons/style/print.css"
media="print"/>
          <meta http-equiv="Content-Type" content="text/html; charset=${outputencoding}"></meta>
          <x:forEach var="author" select="./properties/author">
            <meta name="author" content="${author.text}"/>
            <meta name="email" content="${author.attribute('email').value}"/>
          </x:forEach>
          
          <jsl:applyTemplates select="$doc/document/head/*"/>
          
        </head>
  
        <x:element name="body"><j:whitespace trim="true">
          <x:attribute name="class">composite</x:attribute>
          <x:forEach var="attr" select="$doc/document/body/@*">
            <x:attribute name="${attr.name}">${attr.value}</x:attribute>
          </x:forEach>
          </j:whitespace>
  
  		<x:if select="$nav/body/links">
  		<div id="breadcrumbs" align="right">
              <!-- render links -->
              <jsl:applyTemplates select="$nav/body/links"/>
          </div>
          </x:if>
          <div id="banner">
            <table border="0" cellspacing="0" cellpadding="8" width="100%">
              <tr>
                <!-- organization logo -->
                <td>
                  <j:set var="logo" value="${pom.organization.logo}"/>
                  <j:if test="${!empty(logo)}">
                    <!-- set url to org or project url -->
                    <j:set var="url" value="${pom.organization.url}"/>
                    <j:if test="${!empty(url)}">
                      <j:set var="home" value="${pom.organization.url}"/>
                    </j:if>
                    <j:if test="${empty(url)}">
                      <j:set var="home" value="${pom.url}"/>
                    </j:if>
                    <!-- set image to relative or complete -->
                    <j:set var="image" value="${pom.organization.logo}"/>
                    <j:if test="${!image.startsWith('http://')}">
                      <j:set var="image" value="${relativePath}${image}"/>
                    </j:if>
                    <a href="${home}">
                      <img src="${image}" align="left" alt="${pom.organization.name}" border="0"/>
                    </a>
                  </j:if>
                </td>
  
                <!-- project logo and link -->
                <td>
                  <div align="right" id="login">
                    <j:set var="logo" value="${pom.logo}"/>
                    <j:if test="${logo != null and logo != ''}">
                      <!-- set image to relative or complete -->
                      <j:set var="image" value="${pom.logo}"/>
                      <j:if test="${!image.startsWith('http://')}">
                        <j:set var="image" value="${relativePath}${image}"/>
                      </j:if>
  
                      <a href="${pom.url}">
                        <img src="${image}" align="right" alt="${pom.name}" border="0"/>
                      </a>
                    </j:if>
                  </div>
                </td>
              </tr>
            </table>
          </div>
         
          <!-- Body of the page -->
          <table border="0" cellspacing="0" cellpadding="0" width="100%"> <!--id="main"
-->
            <tr valign="top">
              <td id="leftcol" width="20%" >
                <div id="navcolumn" style="margin: 8px;">
                  <j:if test="${date == 'navigation-top'}">
                    <div>
                      <small>Last published: ${build.date}</small>
                    </div>
                  </j:if>
  
                  <x:if select="$nav">
                    <jsl:applyTemplates select="$nav/body/menu[@type='footer']"/>
                  </x:if>
                  
                  <!-- Standard Maven Navigation -->
                  <j:set var="fileName">${file}</j:set>
  
                  <j:set var="poweredbyimage">${maven.xdoc.poweredby.image}</j:set>
                  <j:set var="poweredbytitle">${maven.xdoc.poweredby.title}</j:set>
                  <j:set var="poweredbyurl">${maven.xdoc.poweredby.url}</j:set>
                  <j:if test="${!empty(poweredbyimage)}">
                  	<div style="margin-top: 20px; width: 100%; text-align: center;">
                  		<a href="${poweredbyurl}" title="${poweredbytitle}"><img alt="${maven.xdoc.poweredby.title}"
style="border: 1px solid black" src="${relativePath}/images/logos/${poweredbyimage}"/></a>
                  	</div>
                  </j:if>
                
                  <j:if test="${date == 'navigation-bottom'}">
                    <div>
                      <small>Last published: ${build.date}</small>
                    </div>
                  </j:if>
                </div>
              </td>
              <td rowspan="2" style="padding:0px;">
                <!-- Insert ALTERNATE navigation here -->
                	<div class="bar" style="margin:0px;">
              		<jsl:applyTemplates select="$projectNav/body/menu"/>
            		</div>
                	<div id="bodycol">
  
                  <!-- Insert MAIN body here -->
                  <div class="app">
                
                    <!-- FIXME really shouldn't use $doc, but jelly loses it's context
again -->
                    <jsl:applyTemplates select="$doc/document/body/section"/>
                    <jsl:applyTemplates select="$doc/document/body/glossary" />
                    <jsl:applyTemplates select="$doc/document/body/release" />
                    <jsl:applyTemplates select="$doc/document/body/changelog" />
                    <jsl:applyTemplates select="$doc/document/body/taskList" />
                    <jsl:applyTemplates select="$doc/document/body/goals" />
                  </div>
                </div>
              </td>
            </tr>
          </table>
          <div id="footer">
            <table style='width:100%' border="0" cellspacing="0" cellpadding="4">
              <jsl:applyTemplates select="$nav/body/footer"/>
              <tr>
                <td>
                  <j:if test="${!empty(pom.organization.name)}">
                    <j:if test="${!empty(pom.inceptionYear)}">
                      <j:if test="${pom.inceptionYear == mavenCurrentYear}">
                        &#169; ${mavenCurrentYear}, ${pom.organization.name}
                      </j:if>
                      <j:if test="${pom.inceptionYear != mavenCurrentYear}">
                        &#169; ${pom.inceptionYear}-${mavenCurrentYear}, ${pom.organization.name}
                      </j:if>
                    </j:if>
                    <j:if test="${empty(pom.inceptionYear)}">
                      &#169; ${mavenCurrentYear}, ${pom.organization.name}
                    </j:if>
                  </j:if>
  
  				<j:if test="${date == 'left'}">
                    - Last published: ${build.date}
                  </j:if>
                  <j:if test="${date == 'bottom'}">
                    - Last published: ${build.date}
                  </j:if>
                </td>
                <j:if test="${date == 'bottom-right'}">
                  <td style='width: auto; text-align:right'>Last published: ${build.date}</td>
                </j:if>
                <j:if test="${date == 'right'}">
                    <td style='width: auto; text-align:right'>Last published: ${build.date}</td>
                </j:if>
              </tr>
            </table>
          </div>
        </x:element>
      </html>
    </jsl:template>
  
    <!-- process the properties of the doc -->
    <jsl:template match="properties" trim="false">
      <!-- stick head block here later -->
    </jsl:template>
  
    <!-- process alternate navigation menu -->
    <jsl:template match="menu" trim="true">
   
   		<x:set var="menu" select="."/>
   		<x:set var="items1" select="$menu/item"/>
   		<x:set var="items2" select="$nav/body/menu[@type='tab']/item"/>
  	 	<ul class="topnav">
  	 		<x:forEach var="i" select="$items2">
  				<x:set var="_childCount" select="count($i/item)"/>
  				<j:set var="_isCollapsed" value="${navbean.isCollapsed(i)}"/>
  				<j:if test="${!_isCollapsed and _childCount.intValue() gt 0}">
         				<x:set var="selectedItem" select="$i"/>
        			</j:if>
        			<jsl:applyTemplates select="$i"/>
  	 		</x:forEach>
  	 		<x:forEach var="i" select="$items1[@href != '/index.html' AND @name != 'Development
Process']">
  				<x:set var="_childCount" select="count($i/item)"/>
  				<j:set var="_isCollapsed" value="${navbean.isCollapsed(i)}"/>
  				<j:if test="${!_isCollapsed and _childCount.intValue() gt 0}">
         				<x:set var="selectedItem" select="$i"/>
        			</j:if>
        			<jsl:applyTemplates select="$i"/>
  	 		</x:forEach>
  	 	</ul>
  	 	<div style="clear:both;hieght:0px;"/>
  	 	<ul class="subnav1">
  	 		
  	 		<x:if select="$selectedItem/item">
  			<x:forEach var="i" select="$selectedItem/item">
  				<x:set var="_childCount" select="count($i/item)"/>
  				<j:set var="_isCollapsed" value="${navbean.isCollapsed(i)}"/>
  				<j:if test="${!_isCollapsed and _childCount.intValue() gt 0}">
         				<x:set var="selectedItem2" select="$i"/>
        			</j:if>
        			<jsl:applyTemplates select="$i"/>
  	 		</x:forEach>
  	 		
  	 	</x:if>
  	 		<li></li>
  	 	</ul>
  	 	<j:remove var="selectedItem"/>
  	 	
  	 	<ul class="subnav2">
  	 		
  	 	<x:if select="$selectedItem2/item">
  			<x:forEach var="i" select="$selectedItem2/item">
  	 			<x:set var="_childCount" select="count($i/item)"/>
  				<j:set var="_isCollapsed" value="${navbean.isCollapsed(i)}"/>
  				<j:if test="${!_isCollapsed and _childCount.intValue() gt 0}">
         				<x:set var="selectedItem3" select="$i"/>
        			</j:if>
      			<jsl:applyTemplates select="$i"/>
  	 		</x:forEach>
  	 	</x:if>
  	 	<li></li>
  	 	</ul>
  	 	
  	 	<j:remove var="selectedItem2"/>
  	 	
  	 	<x:if select="$selectedItem3/item">
  			<ul>
  			<x:forEach var="i" select="$selectedItem3/item">
      			<jsl:applyTemplates select="$i"/>
  	 		</x:forEach>
  	 		</ul>
  	 	</x:if>
  		<j:remove var="selectedItem3"/>
  
    </jsl:template>
  	
     <!-- process alternate navigation menu items -->
     <jsl:template match="item" trim="true">
      <x:set var="current" select="."/>
      <x:set var="_name" select="string(@name)"/>
      <x:set var="_link" select="string(@href)"/>
      <x:set var="_img" select="string(@img)"/>
  	<x:set var="_childCount" select="count(./item)"/>
  	<j:set var="_isCollapsed" value="${navbean.isCollapsed(current.get(0))}"/>
  	<j:set var="_state" value="none"/>
  	
  	<j:if test="${_childCount.intValue() gt 0}">
  		<j:if test="${!_isCollapsed}">
            <j:set var="_state" value="expanded"/>
  		</j:if>
  		<j:if test="${_isCollapsed}">
            <j:set var="_state" value="collapsed"/>
  		</j:if>
  	</j:if>
  	
  	<li>
        	<j:choose><j:when test="${navbean.isSelected(current.get(0)) or _state eq
'expanded'}">
        		<a class="here" href="${pathTool.calculateLink(_link,relativePath)}">
          		<j:if test="${empty(_state)}"><j:set var="state" value="none"/></j:if>
          		<j:if test="${empty(_img)}">${_name}</j:if>
          		<j:if test="${!empty(_img)}"><img style="border: 1px" src="${_img}" title="${_name}"
alt="${_name}"/></j:if>
        		</a>
        	</j:when><j:otherwise>
        		<a href="${pathTool.calculateLink(_link,relativePath)}">
          		<j:if test="${empty(_state)}"><j:set var="state" value="none"/></j:if>
          		<j:if test="${empty(_img)}">${_name}</j:if>
          		<j:if test="${!empty(_img)}"><img style="border: 1px" src="${_img}" title="${_name}"
alt="${_name}"/></j:if>
        		</a>
        	</j:otherwise></j:choose>
       </li>
    </jsl:template>
    
    <!-- Process a menu for the navigation bar -->
    <jsl:template match="menu[@type='footer']" trim="false">
      <div>
        <strong><x:expr select="@name"/></strong>
        <jsl:applyTemplates select="item"/>
      </div>
      <hr/>
    </jsl:template>
  
    <jsl:template match="item[ancestor::*/@type='footer']" trim="false">
      <x:set var="item" select="."/>
      <x:set var="_name" select="string(@name)"/>
      <x:set var="_link" select="string(@href)"/>
      <x:set var="_img" select="string(@img)"/>
  	<x:set var="_childCount" select="count(./item)"/>
  	<j:set var="_isCollapsed" value="${navbean.isCollapsed(item.get(0))}"/>
  	<j:set var="_state" value="none"/>
  	
  	<j:if test="${_childCount.intValue() gt 0}">
  		<j:if test="${!_isCollapsed}">
            <j:set var="_state" value="expanded"/>
  		</j:if>
  		<j:if test="${_isCollapsed}">
            <j:set var="_state" value="collapsed"/>
  		</j:if>
  	</j:if>
  		   
  	
      <div>
        <small>
        	<j:if test="${navbean.isSelected(item.get(0))}">
        		<b><doc:itemLink name="${_name}" link="${_link}" img="${_img}" state="${_state}"/></b>
        	</j:if>
        	<j:if test="${!navbean.isSelected(item.get(0))}">
        		<doc:itemLink name="${_name}" link="${_link}" img="${_img}" state="${_state}"/>
        	</j:if>
        </small>
  	  <j:if test="${!navbean.isCollapsed(item.get(0))}">
          <jsl:applyTemplates select="item"/>
        </j:if>
      </div>
    </jsl:template>
  
    <!-- Process the breadcrumb navbar -->
    <jsl:template match="links" trim="false">
      <j:set var="linkCount" value="1"/>
      <x:forEach var="link" select="item">
        <j:if test="${linkCount != 1}">|</j:if>
        <j:set var="_name"><x:expr select="@name"/></j:set>
        <j:set var="_link"><x:expr select="@href"/></j:set>
        <doc:itemLink name="${_name}" link="${_link}"/>
        <j:set var="linkCount" value="${1+linkCount}"/>
      </x:forEach>
    </jsl:template>
  
    <!-- Google site search -->
    <jsl:template match="search" trim="false">
      <!-- Search code: http://www.google.com/searchcode.html -->
      <!-- Google logos: http://www.google.com/stickers.html -->
      <!-- Terms: http://www.google.com./services/terms_free.html -->
      <div>
        <strong>Search ${pom.name}</strong>
        <form method="get" action="http://www.google.com/search">
          <a class="navlink" href="http://www.google.com">
            <img src="http://www.google.com/logos/Logo_25wht.gif" 
                 alt="Google" border="0" />
          </a><p/>
          <j:set var="siteURL" value="${pom.url}"/>
          <!-- google fails on urls that end with / -->
          <j:if test="${siteURL.endsWith('/')}">
            <j:set var="URLLength" value="${siteURL.length() - 1}"/>
            <j:set var="siteURL" value="${siteURL.substring(0, URLLength.intValue())}"/>
          </j:if>
          <input type="text" size="15" name="q" maxlength="255" value=""/>
          <input type="submit" value="Go" name="btnG"/>
          <input type="hidden" name="domains" value="${siteURL}"/>
          <input type="hidden" id="search" name="sitesearch" value="${siteURL}"/>
        </form>
      </div>
    </jsl:template>
  
    <!-- process a documentation section -->
    <jsl:template match="section" trim="false">
      <div class="h3">
        <j:set var="_sectionName"><x:expr select="@name"/></j:set>
        <j:if test="${!empty(_sectionName)}">
          <h3>
            <a name="${_sectionName}">${_sectionName}</a>
          </h3>
        </j:if>
        <jsl:applyTemplates select="*"/>
      </div>
    </jsl:template>
  
    <jsl:template match="subsection" trim="false">
      <div class="h4">
        <j:set var="_sectionName"><x:expr select="@name"/></j:set>
        <j:if test="${!empty(_sectionName)}">
          <h4>
            <a name="${_sectionName}">${_sectionName}</a>
          </h4>
        </j:if>
        <jsl:applyTemplates select="*"/>
      </div>
    </jsl:template>
  
    <jsl:template match="source" trim="false">
      <div id="source">
        <pre><x:expr select="."/></pre>
      </div>
    </jsl:template>
  
    <jsl:template match="footer" trim="false">
      <tr>
        <td>
          <jsl:applyTemplates select="*"/>
        </td>
      </tr>
    </jsl:template>
  
    <jsl:template match="table" trim="false">
      <j:set var="rowcount" value="0"/>
      <table cellpadding="3" cellspacing="2" border="1" width="100%">
        <jsl:applyTemplates select="*"/>
      </table>
    </jsl:template>
  
    <jsl:template match="tr" trim="false">
      <j:choose>
        <j:when test="${rowMode == 'a'}">
          <j:set var="rowMode" value="b"/>
        </j:when>
        <j:otherwise>
          <j:set var="rowMode" value="a"/>
        </j:otherwise>
      </j:choose>
  
      <!-- copy attributes FIXME: Shouldn't this only be colspan|rowspan? -->
      <x:element name="tr"><j:whitespace trim="true">
        <x:attribute name="class">${rowMode}</x:attribute>
        <x:forEach var="attr" select="@*">
          <x:attribute name="${attr.name}">${attr.value}</x:attribute>
        </x:forEach>
        <jsl:applyTemplates select="*"/>
  </j:whitespace></x:element>
    </jsl:template>
  
    <!--************************-->
    <!-- glossary documentation -->
    <!--************************-->
    <jsl:template match="glossary" trim="false">
      <jsl:applyTemplates select="glossary-entries/glossary-entry" />
    </jsl:template>
        
    <jsl:template match="glossary-entry" trim="false">
      <strong><x:expr select="name" /></strong>
      <br/>
      <x:expr select="definition" />
      <p/>
    </jsl:template>
  
        <!--************************-->
        <!-- goals documentation    -->
        <!--************************-->
        <jsl:template match="goals" trim="false">
          <!-- reset row alternation -->
          <j:set var="rowMode" value="" />
          <div class="h3">
            <h3><a name="Goals">Goals</a></h3>
            <table>
              <tr width='100%'><th>Goal</th><th>Description</th></tr>
              <jsl:applyTemplates select="goal"/>
            </table>
          </div>
        </jsl:template>
        
        <!-- a goal -->
          <!-- FIXME: this is copied from tr - there must be a way of
               calling templates in jsl? -->
        <jsl:template match="goal" trim="false">
          <j:choose>
            <j:when test="${rowMode == 'a'}">
              <j:set var="rowMode" value="b"/>
            </j:when>
            <j:otherwise>
              <j:set var="rowMode" value="a"/>
            </j:otherwise>
          </j:choose>
          
          <x:element name="tr"><j:whitespace trim="true">
            <x:attribute name="class">${rowMode}</x:attribute>
            <j:set var="_goalName"><x:expr select="./name" /></j:set>
            <td width='20%'><a name="${_goalName}">${_goalName}</a></td>
            <td width='80%'><jsl:applyTemplates select="description" /></td>
  </j:whitespace></x:element>
        </jsl:template>   
        
        <jsl:template match="description">
          <jsl:copy trim="false">
            <jsl:applyTemplates trim="false"/>
          </jsl:copy>
        </jsl:template>
  
        <!--************************-->
        <!-- changelog documentation-->
        <!--************************-->
        <jsl:template match="changelog" trim="false">
          <j:set var="rowMode" value="" />
          <table width="100%">
            <tr>
              <th>Date</th><th>Author</th><th>Files/Message</th>
            </tr>
            <jsl:applyTemplates select="changelog-entry" />
          </table>
        </jsl:template>
  
        <!-- transform a changelog entry -->
        <!-- FIXME: tr code copied from above -->
        <jsl:template match="changelog-entry" trim="false">
          <j:choose>
            <j:when test="${rowMode == 'a'}">
              <j:set var="rowMode" value="b"/>
            </j:when>
            <j:otherwise>
              <j:set var="rowMode" value="a"/>
            </j:otherwise>
          </j:choose>
          
          <x:element name="tr"><j:whitespace trim="true">
            <x:attribute name="class">${rowMode}</x:attribute>
            
            <td><x:expr select="date" /> <x:expr select="time" /></td>
            <td><x:expr select="author"/></td>
            <td><jsl:applyTemplates select="*" />
              <pre><x:expr select="msg"/></pre>
            </td>
  </j:whitespace></x:element>
        </jsl:template>
  
        <jsl:template match="file">
          <j:set var="url">${pom.repository.url}<x:expr select="name"/></j:set>
          <j:set var="revUrl">${url}?<x:expr select="revision"/>&amp;content-type=text/vnd.viewcvs-markup</j:set>
          <a href="${url}"><x:expr select="name"/></a> - 
          <a href="${revUrl}">v<x:expr select="revision"/></a>
          <br/>
        </jsl:template>
  
    <!-- remove the space at the end of parsed "a" anchors -->
    <jsl:template match="a" trim="false">
      <jsl:copy trim="true">
        <jsl:applyTemplates trim="true"/>
      </jsl:copy>
    </jsl:template>
  
    <!-- copy any other elements through -->
    <jsl:template match="*" trim="false">
      <jsl:copy trim="false">
        <jsl:applyTemplates trim="false"/>
      </jsl:copy>
     </jsl:template>
  
     <!-- element values don't pass through as text -->
     <jsl:template match="@*"/>
  
     <!-- CDATA and text nodes pass-thru -->
     <jsl:template match="text()">
       <x:expr select="."/>
     </jsl:template>
  
  </jsl:stylesheet>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message