Apply MPXDOC-77 with new expand/collapse icons.

git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@114649 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
dion committed 2004-02-02 04:40:25 +00:00
1 parent e2a3894d2a
commit 9766750d43
18 files changed
+491 -409

No files matched your search

+57 -6
View File
@@ -155,7 +155,7 @@
prettyPrint="${prettyPrint}"/>
</define:tag>
<define:tag name="itemLink">
<!--
@link
@relativePath
@@ -163,14 +163,11 @@
@img
@state - expanded / collapsed / none
-->
<define:tag name="itemLink">
<a href="${pathTool.calculateLink(link,relativePath)}">
<j:if test="${empty(state)}">
<j:set var="state" value="none"/>
</j:if>
<img class="handle" src="${relativePath}/images/${state}.png" alt=""/>
<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>
<img class="handle" src="${relativePath}/images/none.png" alt=""/>
</a>
</define:tag>
@@ -332,6 +329,54 @@
</j:forEach>
</define:tag>
<define:tag name="jslToSite">
<!--
| transforms files in the given dir using the site stylesheet and navigation and place them
| in maven.docs.dest (typically target/docs)
| @srcdir source directory
-->
<maven:param-check value="${srcdir}" fail="true" message="'srcdir' must be specified"/>
<maven:pluginVar var="maven.xdoc.jsl"
plugin='maven-xdoc-plugin' property='maven.xdoc.jsl' />
<maven:pluginVar var="plugin.resources"
plugin='maven-xdoc-plugin' property='plugin.resources' />
<maven:pluginVar var="includeProjectDocumentation"
plugin='maven-xdoc-plugin' property='maven.xdoc.includeProjectDocumentation' />
<maven:pluginVar var="maven.xdoc.poweredby.image"
plugin='maven-xdoc-plugin' property='maven.xdoc.poweredby.image' />
<maven:pluginVar var="maven.xdoc.poweredby.title"
plugin='maven-xdoc-plugin' property='maven.xdoc.poweredby.title' />
<maven:pluginVar var="maven.xdoc.poweredby.url"
plugin='maven-xdoc-plugin' property='maven.xdoc.poweredby.url' />
<maven:pluginVar var="maven.xdoc.crumb.separator"
plugin='maven-xdoc-plugin' property='maven.xdoc.crumb.separator' />
<j:set var="outputDirectory" value="${maven.gen.docs}" />
<j:set var="stylesheet" value="file:/${plugin.resources}/site.jsl" />
<j:set var="outputencoding" value="${maven.docs.outputencoding}" />
<doc:performJSL srcdir="${srcdir}" destdir="${maven.docs.dest}" />
</define:tag>
<!--
| escapes a string for generating a valid name token (need for "name" attribute in html anchors)
| @value given token
-->
<!-- fixme: is there any better way to replace multiple chars using jelly (and maybe with a working trim)? -->
<define:tag name="escapeNameToken"><util:replace var="escapedToken" oldChar=" " newChar="_" value="${value}"/><util:replace var="escapedToken" oldChar="." newChar="_" value="${escapedToken}"/><util:replace var="escapedToken" oldChar="," newChar="_" value="${escapedToken}"/><util:replace var="escapedToken" oldChar="!" newChar="_" value="${escapedToken}"/><util:replace var="escapedToken" oldChar="?" newChar="_" value="${escapedToken}"/><util:replace var="escapedToken" oldChar="/" newChar="_" value="${escapedToken}"/><util:replace var="escapedToken" oldChar="(" newChar="_" value="${escapedToken}"/><util:replace var="escapedToken" oldChar=")" newChar="_" value="${escapedToken}"/>${escapedToken}</define:tag>
</define:taglib>
<!-- ================================================================== -->
@@ -494,6 +539,12 @@
<exclude name="**/CVS/*"/>
<exclude name="stylesheets/*"/>
</fileset>
<!-- copy file in generated docs folder: this allows for reporting plugins to add images -->
<fileset dir="${maven.gen.docs}">
<exclude name="**/*.xml"/>
<exclude name="**/CVS/*"/>
<exclude name="stylesheets/*"/>
</fileset>
</copy>
<util:available file="${maven.docs.src}/stylesheets">
+114 -62
View File
@@ -1,88 +1,140 @@
body {
margin: 0px;
padding-top: 0px;
padding: 0px 0px 10px 0px;
}
#banner {
margin-top: 0px;
padding-top: 0px;
img {
border:none;
}
table {
padding:0px;
width: 100%;
margin-left: -2px;
margin-right: -2px;
}
acronym {
cursor: help;
border-bottom: 1px dotted #feb;
}
table.bodyTable th, table.bodyTable td {
padding: 2px 4px 2px 4px;
vertical-align: top;
}
div.clear{
clear:both;
visibility: hidden;
}
div.clear hr{
display: none;
}
#projectLogo {
font-size: xx-large;
font-size: xx-large;
font-weight: bold;
}
#organizationLogo img, #projectLogo img, #projectLogo span{
margin: 8px;
}
#projectLogo span{
border: 1px solid;
padding: 4px 10px 4px 10px;
background-color: #eee;
cursor: pointer;
}
.xleft, #organizationLogo img{
float:left;
}
.xright, #projectLogo img, #projectLogo span{
float:right;
text-shadow: #7CFC00;
}
#banner {
border-bottom: 1px solid #fff;
}
#banner img {
border: none;
}
#footer, #breadcrumbs {
padding: 3px 10px 3px 10px;
}
#leftColumn {
width: 18%;
float:left;
}
#bodyColumn {
margin-left: 20%;
}
#navcolumn {
padding: 8px 4px 0 8px;
}
#navcolumn h5, #navcolumn ul {
margin: 0;
padding: 0;
}
#navcolumn li {
list-style-type: none;
background-image: none;
background-repeat: no-repeat;
background-position: 0.4em;
padding-left: 16px;
list-style-position: ouside;
line-height: 1.2em;
font-size: smaller;
}
#navcolumn li.expanded {
background-image: url(../images/expanded.gif);
}
#navcolumn li.collapsed {
background-image: url(../images/collapsed.gif);
}
#poweredBy {
text-align: center;
}
#navcolumn img {
margin-top: 10px;
margin-bottom: 3px;
}
#poweredBy img {
display:block;
margin: 20px 0 20px 17px;
border: 1px solid black;
width: 90px;
height: 30px;
}
#search img {
margin: 0px;
}
#search #q, #search #btnG {
border: 1px solid #999;
margin-bottom:10px;
}
#search form {
float:left;
}
#lastPublished {
font-size: small;
font-size: x-small;
}
.navSection {
margin-bottom: 2px;
padding: 8px;
}
.navSectionHead {
font-weight: bold;
font-size: x-small;
}
.navLink {
padding-top: 2px;
padding-bottom: 2px;
font-size: small;
}
.section {
padding: 4px;
}
.sectionTitle {
padding: 4px;
}
.subsection {
}
.subsectionTitle {
padding: 4px;
}
#leftColumn {
width: 15%;
}
#navBox {
}
#rightColun {
}
#contentBox {
}
#footer {
font-size: small;
font-size: x-small;
}
#breadcrumbs {
font-size: small;
margin: 0pt;
font-size: x-small;
margin: 0pt;
}
#source {
margin-right: 7px;
margin-left: 7px;
margin-top: 1em;
}
img.handle {
border: 0;
padding-right: 2px;
.source {
padding: 12px;
margin: 1em 7px 1em 7px;
}
#poweredBy {
border: 1px solid black;
.source pre {
margin: 0px;
padding: 0px;
}
+42 -99
View File
@@ -1,136 +1,79 @@
body {
body, td, select, input, li{
font-family: Verdana, Helvetica, Arial, sans-serif;
margin: 0;
font-size: 13px;
}
a {
text-decoration: none;
}
a:link.selfref, a:visited.selfref {
color: blue; !important;
a:link {
color:#36a;
}
a:link, a:visited {
color: blue;
a:visited {
color:#47a;
}
a:active, a:hover {
color: #990000;
color:#69c;
}
#breadcrumbs {
border-top: 1px solid #aaaaaa;
border-bottom: 1px solid #aaaaaa;
background-color: #cccccc;
h2 {
padding: 4px 4px 4px 6px;
border: 1px solid #999;
color: #900;
background-color: #ddd;
font-weight:900;
font-size: x-large;
}
.navSection {
background-color: #eeeeee;
h3 {
padding: 4px 4px 4px 6px;
border: 1px solid #aaa;
color: #900;
background-color: #eee;
font-weight: normal;
font-size: large;
}
.navSectionHead {
border-bottom: 1px solid #aaaaaa;
padding-bottom: 2px;
}
.navLink {
padding-top: 2px;
padding-bottom: 2px;
font-size: small;
padding-left: 2px;
}
.section {
}
.sectionTitle {
padding: 10px;
border: 1px solid #999999;
color: #990000;
background-color: #dddddd;
}
.subsection {
padding-left: 20px;
}
.subsectionTitle {
padding: 6px;
border: 1px solid #999999;
color: #990000;
background-color: #eeeeee;
}
p {
font-size: small;
line-height: 1.3em;
font-size: small;
}
ul, ol {
margin-left: 20px;
font-size: smaller;
#breadcrumbs {
border-top: 1px solid #aaa;
border-bottom: 1px solid #aaa;
background-color: #ccc;
}
li {
padding-top: 2px;
padding-bottom: 2px;
}
#leftColumn {
border-right: 1px solid #999999;
border-bottom: 1px solid #999999;
background-color: #eeeeee;
margin: 10px 0 0 5px;
border: 1px solid #999;
background-color: #eee;
}
#navBox {
}
#rightColun {
}
#contentBox {
}
table.bodyTable {
width: 100%;
}
table.bodyTable th, table.bodyTable td {
font-size: smaller;
padding-left: 4px;
padding-right: 4px;
padding-top: 2px;
padding-bottom: 2px;
#navcolumn h5 {
font-size: smaller;
color: #777;
}
table.bodyTable th {
color: white;
background-color: #bbb;
text-align: left;
font-weight: bold;
}
table.bodyTable td {
table.bodyTable th, table.bodyTable td {
font-size: 1em;
}
table.bodyTable tr.a {
background-color: #dddddd;
background-color: #ddd;
}
table.bodyTable tr.b {
background-color: #eeeeee;
background-color: #eee;
}
.source {
padding: 12px;
margin: 12px;
border: 1px solid #999999;
border: 1px solid #999;
}
.source pre {
margin: 0px;
padding: 0px;
}
+3 -12
View File
@@ -1,16 +1,7 @@
#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks {
display: none;
}
#leftColumn {
width: 0pt;
}
#leftColumn * {
#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn {
display: none;
}
body.docs div.docs {
#bodyColumn, body.docs div.docs {
margin: 0 !important;
border: none !important
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 53 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 B

+4 -1
View File
@@ -49,7 +49,10 @@
<item name="Development Process" href="/development-process.html"/>
</j:if>
<j:if test="${!devProcess}">
<item name="Development Process" href="${maven.xdoc.developmentProcessUrl}"/>
<j:set var="devProcessUrl" value="${maven.xdoc.developmentProcessUrl}"/>
<j:if test="${!empty(devProcessUrl)}">
<item name="Development Process" href="${devProcessUrl}"/>
</j:if>
</j:if>
</menu>
</j:if>
+221 -225
View File
@@ -10,8 +10,8 @@
xmlns:doc="doc"
xmlns:maven="jelly:maven"
xmlns="dummy"
trim="false">
<jsl:template match="document" trim="false">
trim="true">
<jsl:template match="document" trim="true">
<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}"/>
@@ -22,8 +22,6 @@
<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>
<script type="text/javascript" src="${relativePath}/style/xc.js"></script>
<j:set var="docTitle"><x:expr select="./properties/title"/></j:set>
<x:if select="$nav/title">
<title><x:expr select="$nav/title"/> - ${docTitle}</title>
@@ -32,30 +30,23 @@
<title>${pom.name} - ${docTitle}</title>
</x:if>
<style type="text/css"><![CDATA[
@import url("${relativePath}/style/maven-base.css");
]]></style>
<j:set var="themeUrl" value="${maven.xdoc.theme.url}x"/>
<j:if test="${themeUrl != 'x'}">
<style type="text/css"><![CDATA[
@import url("${maven.xdoc.theme.url}");
]]></style>
</j:if>
<j:if test="${themeUrl == 'x'}">
<style type="text/css"><![CDATA[
@import url("${relativePath}/style/maven-theme.css");
]]></style>
</j:if>
<j:set var="themeUrl" value="${maven.xdoc.theme.url}"/>
<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>
<style type="text/css" media="all"><![CDATA[
@import url("${relativePath}/style/maven-base.css");
]]>
<j:if test="${!empty(themeUrl)}"><![CDATA[
@import url("${maven.xdoc.theme.url}");
]]></j:if>
<j:if test="${empty(themeUrl)}"><![CDATA[
@import url("${relativePath}/style/maven-theme.css");
]]></j:if>
<j:if test="${projectCssFile.exists()}"><![CDATA[
@import url("${relativePath}/style/project.css");
]]></j:if>
</style>
<link rel="stylesheet" type="text/css" href="${relativePath}/style/print.css" media="print"/>
<meta http-equiv="Content-Type" content="text/html; charset=${outputencoding}"/>
@@ -76,10 +67,7 @@
</j:whitespace>
<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 -->
@@ -95,15 +83,12 @@
<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" id="orgLogo"/>
<a href="${home}" id="organizationLogo">
<img src="${image}" alt="${pom.organization.name}" />
</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 -->
@@ -112,32 +97,27 @@
<j:set var="image" value="${relativePath}${image}"/>
</j:if>
<a href="${pom.url}">
<img src="${image}" align="right" alt="${pom.name}" border="0" id="projectLogo"/>
<a href="${pom.url}" id="projectLogo">
<img src="${image}" alt="${pom.name}"/>
</a>
</j:if>
<j:if test="${logo == null or logo == ''}">
<a href="${pom.url}">
<div id="projectLogo">${pom.name}</div>
</a>
<a href="${pom.url}" id="projectLogo">
<span>${pom.name}</span>
</a>
</j:if>
</div>
</td>
</tr>
</table>
<div class="clear"><hr /></div>
</div>
<div id="breadcrumbs">
<table border="0" cellspacing="0" cellpadding="4" width="100%">
<tr>
<j:if test="${date == 'left'}">
<maven:property var="version" name="maven.xdoc.version" defaultValue="${pom.currentVersion}"/>
<td>Last published: ${build.date}
<div class="xleft">
Last published: ${build.date}
<j:if test="${!empty(version)}">| Doc for ${version}</j:if>
</td>
</div>
</j:if>
<td>
<div align="right">
<div class="xright">
<j:if test="${date == 'right'}">
Last published: ${build.date}
<x:if select="$nav/body/links">|</x:if>
@@ -146,175 +126,172 @@
<x:if select="$nav/body/links">
<jsl:applyTemplates select="$nav/body/links"/>
</x:if>
<x:if select="not($nav/body/links)">
<!-- FIXME &nbsp; -->
</x:if>
</div>
</td>
</tr>
</table>
<div class="clear"><hr /></div>
</div>
<!-- Body of the page -->
<table border="0" cellspacing="0" cellpadding="8" width="100%" id="layout">
<tr valign="top">
<td id="leftColumn">
<div id="navBox">
<j:if test="${date == 'navigation-top'}">
<div id="lastPublished">
Last published: ${build.date}
</div>
</j:if>
<x:if select="$nav">
<jsl:applyTemplates select="$nav/body/menu[not(@type) | @type='header'] | $nav/body/search"/>
</x:if>
<jsl:applyTemplates select="$projectNav/body/menu"/>
<!-- 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 id="poweredBy" alt="${maven.xdoc.poweredby.title}" src="${relativePath}/images/logos/${poweredbyimage}"/></a>
</div>
</j:if>
<!-- left column start -->
<div id="leftColumn">
<div id="navcolumn">
<j:if test="${date == 'navigation-top'}">
<div id="lastPublished">Last published: ${build.date}</div>
</j:if>
<x:if select="$nav">
<jsl:applyTemplates select="$nav/body/menu[not(@type) | @type='header'] | $nav/body/search"/>
</x:if>
<jsl:applyTemplates select="$projectNav/body/menu"/>
<!-- allows user to put menu items after standard reports -->
<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)}">
<a id="poweredBy" href="${poweredbyurl}" title="${poweredbytitle}">
<img alt="${maven.xdoc.poweredby.title}" src="${relativePath}/images/logos/${poweredbyimage}" />
</a>
</j:if>
<j:if test="${date == 'navigation-bottom'}">
<div id="lastPublished">Last published: ${build.date}</div>
</j:if>
</div>
</div>
<!-- left column end -->
<j:if test="${date == 'navigation-bottom'}">
<div id="lastPublished">
Last published: ${build.date}
</div>
<!-- body start -->
<div id="bodyColumn">
<div class="contentBox">
<!-- 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/release" />
<jsl:applyTemplates select="$doc/document/body/goals" />
</div>
</div>
<div class="clear"><hr /></div>
<!-- body end -->
<!-- footer start -->
<div id="footer">
<jsl:applyTemplates select="$nav/body/footer"/>
<div class="xright">
<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>
</div>
</td>
<td rowspan="2">
<div id="bodyColumn">
<!-- Insert MAIN body here -->
<div class="contentBox">
<!-- 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/release" />
<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 test="${pom.inceptionYear != mavenCurrentYear}">
&#169; ${pom.inceptionYear}-${mavenCurrentYear}, ${pom.organization.name}
</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>
</tr>
</table>
<j:if test="${empty(pom.inceptionYear)}">
&#169; ${mavenCurrentYear}, ${pom.organization.name}
</j:if>
</j:if>
<j:if test="${date == 'bottom'}">
- Last published: ${build.date}
</j:if>
</div>
<div class="clear"><hr /></div>
</div>
<!-- footer end -->
</x:element>
</html>
</jsl:template>
<!-- process the properties of the doc -->
<jsl:template match="properties" trim="false">
<jsl:template match="properties" trim="true">
<!-- stick head block here later -->
</jsl:template>
<!-- Process a menu for the navigation bar -->
<jsl:template match="menu" trim="false">
<div class="navSection">
<div class="navSectionHead"><x:expr select="@name"/></div>
<jsl:applyTemplates select="item"/>
</div>
<jsl:template match="menu" trim="true">
<j:set var="_menuName"><x:expr select="@name"/></j:set>
<j:set var="_menuName"><doc:escapeNameToken value="${_menuName}"/></j:set>
<j:choose>
<j:when test="${!empty(_menuName)}">
<div id="menu${_menuName}">
<h5><x:expr select="@name"/></h5>
<ul><jsl:applyTemplates select="item"/></ul>
</div>
</j:when>
<j:otherwise>
<div>
<h5><x:expr select="@name"/></h5>
<ul><jsl:applyTemplates select="item"/></ul>
</div>
</j:otherwise>
</j:choose>
</jsl:template>
<jsl:template match="item" trim="false">
<jsl:template match="item" trim="true">
<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 class="navLink">
<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"/>
<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>
<li class="${_state}">
<j:if test="${navbean.isSelected(item.get(0))}">
<strong><doc:itemLink name="${_name}" link="${_link}" img="${_img}" state="${_state}"/></strong>
</j:if>
</div>
<j:if test="${!navbean.isSelected(item.get(0))}">
<doc:itemLink name="${_name}" link="${_link}" img="${_img}" state="${_state}"/>
</j:if>
</li>
<j:if test="${!navbean.isCollapsed(item.get(0))}">
<jsl:applyTemplates select="item"/>
</j:if>
</jsl:template>
<!-- Process the breadcrumb navbar -->
<jsl:template match="links" trim="false">
<jsl:template match="links" trim="true">
<j:set var="linkCount" value="1"/>
<x:forEach var="link" select="item">
<j:if test="${linkCount != 1}">${maven.xdoc.crumb.separator}</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:whitespace trim="false">
<j:if test="${linkCount != 1}">
<j:if test="${!(maven.xdoc.crumb.separator == '')}">
<span class="separator">${maven.xdoc.crumb.separator}</span>
</j:if>
</j:if>
<doc:itemLink name="${_name}" link="${_link}"/>
</j:whitespace>
<j:set var="linkCount" value="${1+linkCount}"/>
</x:forEach>
</jsl:template>
<!-- Google site search -->
<jsl:template match="search" trim="false">
<jsl:template match="search" trim="true">
<!-- 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>
<div id="search">
<h5>Search ${pom.name}</h5>
<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/>
<img src="http://www.google.com/logos/Logo_25wht.gif" width="75" height="32" alt="Google" />
</a>
<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="text" id="q" size="15" name="q" maxlength="255" value=""/>
<input type="submit" id="btnG" value="Go" name="btnG"/>
<input type="hidden" name="domains" value="${siteURL}"/>
<input type="hidden" id="search" name="sitesearch" value="${siteURL}"/>
</form>
@@ -322,61 +299,72 @@
</jsl:template>
<!-- process a documentation section -->
<jsl:template match="section" trim="false">
<jsl:template match="section" trim="true">
<div class="section">
<j:set var="_sectionName"><x:expr select="@name"/></j:set>
<!-- named anchors can't contain whitespaces -->
<j:set var="_anchorName"><doc:escapeNameToken value="${_sectionName}"/></j:set>
<j:if test="${!empty(_sectionName)}">
<div class="sectionTitle"><a name="${_sectionName}">${_sectionName}</a></div>
<h2><a name="${_anchorName}">${_sectionName}</a></h2>
</j:if>
<jsl:applyTemplates select="*"/>
</div>
</jsl:template>
<jsl:template match="subsection" trim="false">
<jsl:template match="subsection" trim="true">
<div class="subsection">
<j:set var="_sectionName"><x:expr select="@name"/></j:set>
<!-- named anchors can't contain whitespaces -->
<j:set var="_anchorName"><doc:escapeNameToken value="${_sectionName}"/></j:set>
<j:if test="${!empty(_sectionName)}">
<div class="subsectionTitle"><a name="${_sectionName}">${_sectionName}</a></div>
</j:if>
<jsl:applyTemplates select="*"/>
</div>
</jsl:template>
<jsl:template match="subsubsection" trim="false">
<div class="subsubsection">
<j:set var="_sectionName"><x:expr select="@name"/></j:set>
<j:if test="${!empty(_sectionName)}">
<div class="subsubsectionTitle"><a name="${_sectionName}">${_sectionName}</a></div>
<h3><a name="${_anchorName}">${_sectionName}</a></h3>
</j:if>
<jsl:applyTemplates select="*"/>
</div>
</jsl:template>
<jsl:template match="source" trim="false">
<div class="source">
<pre><x:expr select="."/></pre>
<div class="source"><pre><x:expr select="."/></pre></div>
</jsl:template>
<!-- preserve whitespace in the following elements -->
<jsl:template match="pre | script | style" trim="true">
<x:set var="nodename" select="name()"/>
<x:element name="${nodename}">
<x:forEach var="attr" select="@*">
<x:attribute name="${attr.name}">${attr.value}</x:attribute>
</x:forEach>
<j:whitespace trim="false"><x:expr select="."/></j:whitespace>
</x:element>
</jsl:template>
<!-- xhtml fixup: add missing alt attribute for images -->
<jsl:template match="img" trim="true">
<x:element name="img">
<x:forEach var="attr" select="@*">
<x:attribute name="${attr.name}">${attr.value}</x:attribute>
</x:forEach>
<x:set var="noalt" select="count(./@alt) = 0" />
<j:if test="${noalt}" >
<x:attribute name="alt"></x:attribute>
</j:if>
</x:element>
</jsl:template>
<jsl:template match="footer" trim="true">
<div class="xleft">
<jsl:applyTemplates select="*"/>
</div>
</jsl:template>
<jsl:template match="footer" trim="false">
<tr>
<td>
<jsl:applyTemplates select="*"/>
</td>
</tr>
</jsl:template>
<jsl:template match="table" trim="false">
<jsl:template match="table" trim="true">
<j:set var="rowcount" value="0"/>
<!--
<table cellpadding="3" cellspacing="2" border="1" width="100%">
-->
<table class="bodyTable">
<jsl:applyTemplates select="*"/>
</table>
</jsl:template>
<jsl:template match="tr" trim="false">
<jsl:template match="tr" trim="true">
<j:choose>
<j:when test="${rowMode == 'a'}">
<j:set var="rowMode" value="b"/>
@@ -385,8 +373,6 @@
<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="@*">
@@ -399,22 +385,24 @@
<!--************************-->
<!-- goals documentation -->
<!--************************-->
<jsl:template match="goals" trim="false">
<jsl:template match="goals" trim="true">
<!-- 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 class="bodyTable">
<thead>
<tr><th>Goal</th><th>Description</th></tr>
</thead>
<tbody>
<jsl:applyTemplates select="goal"/>
</tbody>
</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">
<jsl:template match="goal" trim="true">
<j:choose>
<j:when test="${rowMode == 'a'}">
<j:set var="rowMode" value="b"/>
@@ -427,27 +415,35 @@
<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>
<td style="width:20%"><a name="${_goalName}">${_goalName}</a></td>
<td ><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:applyTemplates trim="false"/>
</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>
<!-- remove the space at the end of parsed "a" anchors and fix local hrefs -->
<jsl:template match="a" trim="true"><x:element name="a">
<x:forEach var="attr" select="@*">
<j:choose>
<j:when test="${attr.name == 'href' and attr.value.startsWith('#')}">
<x:attribute name="href"><doc:escapeNameToken value="${attr.value}"/></x:attribute>
</j:when>
<j:otherwise><x:attribute name="${attr.name}">${attr.value}</x:attribute></j:otherwise>
</j:choose>
</x:forEach>
<jsl:applyTemplates/>
</x:element></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="@*"/>
<!-- 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>
<!-- CDATA and text nodes pass-thru -->
<jsl:template match="text()"><x:expr select="."/></jsl:template>
</jsl:stylesheet>
@@ -18,12 +18,15 @@
dependencies are required to compile and run the application:
</p>
<table>
<thead>
<tr>
<th>Artifact ID</th>
<th>Type</th>
<th>Version</th>
<th>URL</th>
</tr>
</thead>
<tbody>
#foreach ($dep in $dependencyDescriber.Dependencies)
<tr>
<td>${dep.ArtifactId}</td>
@@ -36,6 +39,7 @@
</td>
</tr>
#end
</tbody>
</table>
#end
</section>
@@ -34,12 +34,15 @@
archive link.
</p>
<table>
<thead>
<tr>
<th>List Name</th>
<th>Subscribe</th>
<th>Unsubscribe</th>
<th>Archive</th>
</tr>
</thead>
<tbody>
#foreach ($list in $project.mailingLists)
<tr>
<td>$list.name</td>
@@ -48,6 +51,7 @@
#displayLink("Archive" $list.archive)
</tr>
#end
</tbody>
</table>
#end
</section>
@@ -6,7 +6,7 @@
</properties>
<head>
<script language="javascript">
<script type="text/javascript">
function offsetDate(id, offset) {
var now = new Date() ;
@@ -30,7 +30,7 @@
</script>
</head>
<body OnLoad="init();">
<body onload="init();">
<section name="The Team">
<p>
@@ -62,6 +62,7 @@
directly contributed to the project in one way or another.
</p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Id</th>
@@ -71,6 +72,8 @@
<th>TZ Offset</th>
<th>Time</th>
</tr>
</thead>
<tbody>
#foreach ($developer in $project.developers)
<tr>
#if ($developer.url.length() != 0)
@@ -90,6 +93,7 @@
<td><span id="developer-$developer.id">Unknown</span></td>
</tr>
#end
</tbody>
</table>
#end
</subsection>
@@ -105,12 +109,15 @@
through the way of suggestions, patches or documentation.
</p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>Organization</th>
<th>Roles</th>
</tr>
</thead>
<tbody>
#foreach ($contributor in $project.contributors)
<tr>
<td>$!contributor.name</td>
@@ -123,6 +130,7 @@
</td>
</tr>
#end
</tbody>
</table>
#end
</subsection>
+14 -2
View File
@@ -1,7 +1,8 @@
<project xmlns:util="jelly:util"
xmlns:j="jelly:core">
xmlns:j="jelly:core"
xmlns:doc="doc">
<goal name="testPlugin" prereqs="clean,test-xdoc">
<goal name="testPlugin" prereqs="clean,test-xdoc,test-jsltosite">
<!-- bad xdoc leaves files open <attainGoal name="clean"/> -->
</goal>
@@ -16,4 +17,15 @@
<fail>${expectedFile} not generated</fail>
</j:if>
</goal>
<goal name="test-jsltosite">
<doc:jslToSite srcdir="${basedir}/testdocs" />
<j:set var="expectedFile" value="${maven.docs.dest}/testjsltosite.html"/>
<util:file var="file" name="${expectedFile}" />
<j:if test="${!(file.exists())}">
<fail>${expectedFile} not generated</fail>
</j:if>
</goal>
</project>
@@ -0,0 +1,17 @@
<?xml version="1.0"?>
<document>
<properties>
<title>Xdoc test Document</title>
</properties>
<body>
<section name="test jslToSite tag">
<p>empty document</p>
<p>
This document is generated separately from other xdoc documents
but should retain the site stylesheet and navigation.
</p>
</section>
</body>
</document>
@@ -9,6 +9,7 @@
</links>
<menu name="Overview">
<item name="Test" href="/test.html"/>
<item name="Test 2" href="/testjsltosite.html"/>
</menu>
</body>
</project>