blob: f31ec5ac44777c82ae63f35be797b281288ae7e2 [file] [log] [blame]
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
~ 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.
-->
<!-- Content Stylesheet for "jakarta-site2" Documentation -->
<!-- NOTE: Changes here should also be reflected in "site.vsl" and vice
versa, so either Anakia or XSLT can be used for document generation. -->
<!-- Outstanding Compatibility Issues (with Anakia-based stylesheets):
***** THIS STYLESHEET IS NOW VERY OUT OF DATE *****
* Calculation of the hyperlink for navigation menu items (site.xsl prefixes
with relative path unconditionally; needs conditional logic like the
"projectanchor" macro).
* Handling of the <image> element to insert relative path prefixes
* Special table formatting of the <table>, <tr>, and <td> tags. (I don't
really like this as an approach for styling things, but it's needed
for strict compatibility :-).
* Functional equivalent of "site_printable.vsl" not yet started.
-->
<!-- $Id$ -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<!-- Output method -->
<xsl:output method="html"
encoding="iso-8859-1"
indent="no"/>
<!-- Defined parameters (overrideable) -->
<xsl:param name="relative-path" select="'.'"/>
<!-- Defined variables (non-overrideable) -->
<xsl:variable name="body-bg" select="'#ffffff'"/>
<xsl:variable name="body-fg" select="'#000000'"/>
<xsl:variable name="body-link" select="'#525D76'"/>
<xsl:variable name="banner-bg" select="'#525D76'"/>
<xsl:variable name="banner-fg" select="'#ffffff'"/>
<xsl:variable name="sub-banner-bg" select="'#828DA6'"/>
<xsl:variable name="sub-banner-fg" select="'#ffffff'"/>
<xsl:variable name="table-th-bg" select="'#039acc'"/>
<xsl:variable name="table-td-bg" select="'#a0ddf0'"/>
<xsl:variable name="source-color" select="'#023264'"/>
<!-- Process an entire document into an HTML page -->
<xsl:template match="document">
<xsl:variable name="project"
select="document('project.xml')/project"/>
<html>
<head>
<title><xsl:value-of select="$project/title"/> - <xsl:value-of select="properties/title"/></title>
<xsl:for-each select="properties/author">
<xsl:variable name="name">
<xsl:value-of select="."/>
</xsl:variable>
<xsl:variable name="email">
<xsl:value-of select="@email"/>
</xsl:variable>
<meta name="author" value="{$name}"/>
<meta name="email" value="{$email}"/>
</xsl:for-each>
</head>
<body bgcolor="{$body-bg}" text="{$body-fg}" link="{$body-link}"
alink="{$body-link}" vlink="{$body-link}">
<table border="0" width="100%" cellspacing="4">
<xsl:comment>PAGE HEADER</xsl:comment>
<tr><td colspan="2">
<xsl:comment>JAKARTA LOGO</xsl:comment>
<a href="http://jakarta.apache.org/">
<img src="http://jakarta.apache.org/images/jakarta-logo.gif"
align="left" alt="The Jakarta Project" border="0"/>
</a>
<xsl:if test="$project/logo">
<xsl:variable name="alt">
<xsl:value-of select="$project/logo"/>
</xsl:variable>
<xsl:variable name="home">
<xsl:value-of select="$project/@href"/>
</xsl:variable>
<xsl:variable name="src">
<xsl:value-of select="$project/logo/@href"/>
</xsl:variable>
<xsl:comment>PROJECT LOGO</xsl:comment>
<a href="{$home}">
<img src="{$src}" align="right" alt="{$alt}" border="0"/>
</a>
</xsl:if>
</td></tr>
<xsl:comment>HEADER SEPARATOR</xsl:comment>
<tr>
<td colspan="2">
<hr noshade="" size="1"/>
</td>
</tr>
<tr>
<xsl:comment>LEFT SIDE NAVIGATION</xsl:comment>
<td width="20%" valign="top" nowrap="true">
<xsl:apply-templates select="$project/body/menu"/>
</td>
<xsl:comment>RIGHT SIDE MAIN BODY</xsl:comment>
<td width="80%" valign="top" align="left">
<xsl:apply-templates select="body/section"/>
</td>
</tr>
<xsl:comment>FOOTER SEPARATOR</xsl:comment>
<tr>
<td colspan="2">
<hr noshade="" size="1"/>
</td>
</tr>
<xsl:comment>PAGE FOOTER</xsl:comment>
<tr><td colspan="2">
<div align="center"><font color="{$body-link}" size="-1"><em>
Copyright &#169; 1999-2001, Apache Software Foundation
</em></font></div>
</td></tr>
</table>
</body>
</html>
</xsl:template>
<!-- Process a menu for the navigation bar -->
<xsl:template match="menu">
<p><strong><xsl:value-of select="@name"/></strong></p>
<ul>
<xsl:apply-templates select="item"/>
</ul>
</xsl:template>
<!-- Process a menu item for the navigation bar -->
<xsl:template match="item">
<xsl:variable name="href">
<xsl:value-of select="$relative-path"/><xsl:value-of select="@href"/>
</xsl:variable>
<li><a href="{$href}"><xsl:value-of select="@name"/></a></li>
</xsl:template>
<!-- Process a documentation section -->
<xsl:template match="section">
<xsl:variable name="name">
<xsl:value-of select="@anchor"/>
</xsl:variable>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<!-- Section heading -->
<tr><td bgcolor="{$banner-bg}">
<font color="{$banner-fg}" face="arial,helvetica.sanserif">
<a name="{$name}">
<strong><xsl:value-of select="@name"/></strong></a></font>
</td></tr>
<!-- Section body -->
<tr><td><blockquote>
<xsl:apply-templates/>
</blockquote></td></tr>
</table>
</xsl:template>
<!-- Process a documentation subsection -->
<xsl:template match="subsection">
<xsl:variable name="anchor">
<xsl:value-of select="@anchor"/>
</xsl:variable>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<!-- Subsection heading -->
<tr><td bgcolor="{$sub-banner-bg}">
<font color="{$sub-banner-fg}" face="arial,helvetica.sanserif">
<a name="{$anchor}">
<strong><xsl:value-of select="@name"/></strong></a></font>
</td></tr>
<!-- Subsection body -->
<tr><td><blockquote>
<xsl:apply-templates/>
</blockquote></td></tr>
</table>
</xsl:template>
<!-- Process a source code example -->
<xsl:template match="source">
<div align="left">
<table cellspacing="4" cellpadding="0" border="0">
<tr>
<td bgcolor="{$source-color}" width="1" height="1">
<img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
</td>
<td bgcolor="{$source-color}" height="1">
<img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
</td>
<td bgcolor="{$source-color}" width="1" height="1">
<img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
</td>
</tr>
<tr>
<td bgcolor="{$source-color}" width="1">
<img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
</td>
<td bgcolor="#ffffff" height="1"><pre>
<xsl:value-of select="."/>
</pre></td>
<td bgcolor="{$source-color}" width="1">
<img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
</td>
</tr>
<tr>
<td bgcolor="{$source-color}" width="1" height="1">
<img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
</td>
<td bgcolor="{$source-color}" height="1">
<img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
</td>
<td bgcolor="{$source-color}" width="1" height="1">
<img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
</td>
</tr>
</table>
</div>
</xsl:template>
<!-- Process everything else by just passing it through -->
<xsl:template match="*|@*">
<xsl:copy>
<xsl:apply-templates select="@*|*|text()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>