You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by le...@apache.org on 2002/04/06 16:36:31 UTC
cvs commit: jakarta-avalon/src/proposal/site/anakia/xdocs/stylesheets project.xml site.vsl
leosimons 02/04/06 06:36:31
Added: src/proposal/site avalon.gif common.css index.html
jakarta.gif
src/proposal/site/anakia README.txt
src/proposal/site/anakia/build build.xml velocity.log
src/proposal/site/anakia/docs avalon.gif common.css
index.html
src/proposal/site/anakia/docs/about index.html
src/proposal/site/anakia/docs/images avalon.gif
src/proposal/site/anakia/xdocs common.css index.xml
src/proposal/site/anakia/xdocs/about index.xml
src/proposal/site/anakia/xdocs/images avalon.gif
src/proposal/site/anakia/xdocs/stylesheets project.xml
site.vsl
Log:
A proposal for the redesign of the avalon website. It deals with formatting and visuals exclusively, not with structure.
Revision Changes Path
1.1 jakarta-avalon/src/proposal/site/avalon.gif
<<Binary file>>
1.1 jakarta-avalon/src/proposal/site/common.css
Index: common.css
===================================================================
body {
margin: 0px;
padding: 10px;
}
body, td {
background-color: white;
color: black;
font-family: Arial, Helvetica, sans-serif;
font-size: 11pt;
}
p {
text-align: justify;
}
div {
margin: 0px;
padding: 0px;
}
h1, h2, h3, h4, h5, h6 {
page-break-after: avoid;
color: black;
font-family: Verdana, Arial, sans-serif;
font-weight: bold;
padding: 0px;
margin: 0px;
}
h1 {
border: 1px solid #003366;
font-size: 18pt;
padding: 2px;
margin-bottom: 10px;
text-align: center;
background-color: #EEEEFF;
}
h2 {
font-size: 16pt;
margin-left: 40px;
}
h3 {
font-size: 14pt;
margin-left: 80px;
color: #000033;
}
h4 {
font-size: 12pt;
margin-left: 120px;
color: #000066;
}
h5 {
font-size: 11pt;
font-style: italic;
text-align: center;
color: #333399;
}
h6 {
font-size: 10pt;
text-align: center;
font-weight: normal;
color: #3333CC;
}
a, a:visited {
color: #336699;
}
a:hover, a:active {
color: #003366;;
}
#contents div { margin-left: 40px; }
#breadcrumbs {
border-top: 1px solid #003366;
border-bottom: 1px solid #003366;
margin-top: 10px;
margin-bottom: 20px;
padding-top: 0px;
padding-bottom: 2px;
padding-left: 10px;
font-size: 10pt;
font-weight: bold;
}
#menu {
border: 1px solid #003366;
width: 175px;
}
#menu h4 {
margin: 0px;
padding-left: 5px;
padding-top: 2px;
padding-bottom: 2px;
color: black;
text-align: left;
font-style: normal;
font-size: 10pt;
background-color: #EEEEFF;
}
#submenu h4 {
margin: 0px;
padding-left: 5px;
padding-top: 2px;
padding-bottom: 2px;
color: black;
text-align: left;
font-style: normal;
font-size: 10pt;
background-color: #EEEEFF;
}
#submenu ul {
margin-top: 5px;
margin-bottom: 5px;
margin-left: 25px;
}
#authors {
font-size: 10px;
text-align: right;
}
#footer {
border-top: 1px solid #003366;
margin-top: 20px;
padding: 3px;
text-align: center;
font-size: 9pt;
font-style: italic;
}
a.breadcrumbs, a.breadcrumbs:visited, a.menu, a.menu:visited {
font-size: 10pt;
font-weight: bold;
text-decoration: none;
}
a.breadcrumbs:hover, a.breadcrumbs:active, a.menu:hover, a.menu:active {
text-decoration: underline;
}
.code {
font-family: Courier, Courier New, monospace;
}
.section .code {
margin-left: -40px;
}
@media print {
body td {
font-family: Times New Roman, Zurich Bt, serif;
font-size: 10pt;
}
#menu h4 {
margin-left: 0px;
}
.code {
page-break-inside: avoid;
}
p ul {
page-break-inside: avoid;
}
.section .code {
margin-left: 0px;
}
#menu {
display: none;
width: 0px;
}
#contents div {
margin: 0px;
}
}
1.1 jakarta-avalon/src/proposal/site/index.html
Index: index.html
===================================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Jakarta Redesign Sample - some subproject page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="author" value="Leo Simons" />
<meta name="email" value="leosimons@apache.org" />
<link rel="stylesheet" type="text/css" href="./common.css" />
</head>
<body>
<!-- header -->
<div id="header"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="jakartaLogoTD" valign="middle" align="left"><a href="http://jakarta.apache.org"><img id="jakartaLogo" src="./jakarta.gif" border="0" alt="Jakarta (go to Jakarta Main)" /></a></td>
<td id="projectLogoTD" valign="middle" align="right"><a href="http://jakarta.apache.org/avalon"><img id="projectLogo" src="./avalon.gif" border="0" alt="Avalon (go to Avalon Main)" /></a></td>
</tr>
</table></div>
<!-- end header -->
<!-- breadcrumb trail (javascript-generated) -->
<div id="breadcrumbs">
<a href="http://www.apache.org" class="menu">Apache.org</a> >
<a href="http://jakarta.apache.org" class="menu">Jakarta</a> >
<a href="http://jakarta.apache.org/avalon" class="menu">Avalon</a> >
<script language="JavaScript" type="text/javascript">
<!--
function sentenceCase(str) {
var lower = str.toLowerCase();
return lower.substr(0,1).toUpperCase() + lower.substr(1);
}
function getDirsAsArray() {
var trail = document.location.pathname.split("\\");
var lastdir = (trail[trail.length-1].indexOf(".html") != -1)? trail.length-2 : trail.length-1;
var urlprefix = "/avalon/";
var postfix = " >";
for(var i = 1; i <= lastdir; i++) {
document.writeln('<a href=' + urlprefix + trail[i] + ' class="menu">' + sentenceCase(trail[i]) + '</a>'+postfix);
urlprefix += trail[i] + "/";
if(i == lastdir-1) postfix = ":";
}
}
getDirsAsArray();
// -->
</script>
</div>
<!-- end breadcrumb trail -->
<!-- main section of page -->
<div id="main"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top">
<!-- menu column -->
<div id="menu">
<div id="submenu">
<h4>Essentials</h4>
<ul>
<li><a href="" class="menu">Overview</a></li>
<li><a href="" class="menu">Features</a></li>
<li><a href="" class="menu">Getting Started</a></li>
<li><a href="" class="menu">Download</a></li>
<li><a href="" class="menu">Install</a></li>
</ul>
</div>
<div id="submenu">
<h4>Patterns and Design</h4>
<ul>
<li><a href="" class="menu">Patterns</a></li>
<li><a href="" class="menu">Reuse of Standards</a></li>
<li><a href="" class="menu">Inversion of Control</a></li>
<li><a href="" class="menu">Separation of Concerns</a></li>
<li><a href="" class="menu">Security</a></li>
</ul>
</div>
<div id="submenu">
<h4>Documentation</h4>
<ul>
<li><a href="" class="menu">Tutorial</a></li>
<li><a href="" class="menu">Reference</a></li>
<li><a href="" class="menu">JavaDocs</a></li>
<li><a href="" class="menu">Diagrams</a></li>
</ul>
</div>
<div id="submenu">
<h4>Development</h4>
<ul>
<li><a href="" class="menu">Changes</a></li>
<li><a href="" class="menu">Todo</a></li>
<li><a href="" class="menu">Proposals</a></li>
<li><a href="" class="menu">Resolutions</a></li>
<li><a href="" class="menu">Links</a></li>
</ul>
</div>
</div>
<!-- end menu column -->
</td>
<!-- spacer -->
<td width="10"> </td>
<td valign="top">
<!-- contents column -->
<div id="title"><h1>Title</h1></div>
<div id="contents">
<h2>Section 1</h2>
<div class="section">
<p>The Avalon framework consists of interfaces that define
relationships between commonly used application components,
best-of-practice pattern enforcements, and several lightweight
convenience implementations of the generic components.</p>
<p>What that means is that we define the central interface
Component. We also define the relationship (contract) a component
has with peers, ancestors and children. This documentation
introduces you to those patterns, interfaces and relationships.</p>
<h3>Target Audience</h3>
<div class="section">
<p>This documentation is aimed towards developers who are
interested in the design principles of Avalon, or wish to
develop code that will be incorporated into Avalon.</p>
</div>
<h3>Theoretical Aspects of Component Development</h3>
<div class="section">
<p>The following documents provide basic theoretical concepts
that are applied through-out Avalon's framework. It would be
good for a prospective developer to be at least passingly
familiar with the concepts outlined in this document. The
documentation also provides links to outside sources which
can be consulted for further information.</p>
<ol>
<li><a href="">Patterns</a></li>
<li><a href="">Reuse Of Standards</a></li>
<li><a href="">Inversion of Control</a></li>
<li><a href="">Separation of Concerns</a></li>
<li><a href="">Security</a></li>
</ol>
</div>
<h3>Some place with a code block</h3>
<div class="section">
<p>Here is the code I mentioned:</p>
<pre class="code">
package jsp;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class helloworld_1 extends org.apache.jasper.runtime.HttpJspBase {
static {
}
public helloworld_1( ) {
}
private static boolean _jspx_inited = false;
public final void _jspx_init() throws org.apache.jasper.JasperException {
}
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {
JspFactory _jspxFactory = null;
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
String _value = null;
try {
if (_jspx_inited == false) {
_jspx_init();
_jspx_inited = true;
}
_jspxFactory = JspFactory.getDefaultFactory();
response.setContentType("text/html;charset=8859_1");
pageContext = _jspxFactory.getPageContext(this, request, response,
"", true, 8192, true);
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
out.write("<html>\r\n<head><title>Hello</title></head>\r\n<body>\r\n<h2>\r\n");
if (request.getParameter("name") == null)
out.write("\r\n Hello World\r\n");
else
out.write("\r\n Hello, ");
request.getParameter("name");
out.write("\r\n</h2>\r\n</body></html>\r\n");
} catch (Exception ex) {
if (out != null && out.getBufferSize() != 0)
out.clearBuffer();
if (pageContext != null) pageContext.handlePageException(ex);
} finally {
if (out instanceof org.apache.jasper.runtime.JspWriterImpl) {
((org.apache.jasper.runtime.JspWriterImpl)out).flushBuffer();
}
if (_jspxFactory != null) _jspxFactory.releasePageContext(pageContext);
}
}
}
</pre>
</div>
</div>
<h2>Overview</h2>
<div class="section">
<p>The Avalon framework consists of interfaces that define
relationships between commonly used application components,
best-of-practice pattern enforcements, and several lightweight
convenience implementations of the generic components.</p>
<p>What that means is that we define the central interface
Component. We also define the relationship (contract) a component
has with peers, ancestors and children. This documentation
introduces you to those patterns, interfaces and relationships.</p>
<h3>Target Audience</h3>
<div class="section">
<p>This documentation is aimed towards developers who are
interested in the design principles of Avalon, or wish to
develop code that will be incorporated into Avalon.</p>
</div>
<h3>Theoretical Aspects of Component Development</h3>
<div class="section">
<p>The following documents provide basic theoretical concepts
that are applied through-out Avalon's framework. It would be
good for a prospective developer to be at least passingly
familiar with the concepts outlined in this document. The
documentation also provides links to outside sources which
can be consulted for further information.</p>
<ol>
<li><a href="">Patterns</a></li>
<li><a href="">Reuse Of Standards</a></li>
<li><a href="">Inversion of Control</a></li>
<li><a href="">Separation of Concerns</a></li>
<li><a href="">Security</a></li>
</ol>
</div>
<h3>Some place with a code block</h3>
<div class="section">
<p>Here is the code I mentioned:</p>
<pre class="code">
package jsp;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class helloworld_1 extends org.apache.jasper.runtime.HttpJspBase {
static {
}
public helloworld_1( ) {
}
private static boolean _jspx_inited = false;
public final void _jspx_init() throws org.apache.jasper.JasperException {
}
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {
JspFactory _jspxFactory = null;
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
String _value = null;
try {
if (_jspx_inited == false) {
_jspx_init();
_jspx_inited = true;
}
_jspxFactory = JspFactory.getDefaultFactory();
response.setContentType("text/html;charset=8859_1");
pageContext = _jspxFactory.getPageContext(this, request, response,
"", true, 8192, true);
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
out.write("<html>\r\n<head><title>Hello</title></head>\r\n<body>\r\n<h2>\r\n");
if (request.getParameter("name") == null)
out.write("\r\n Hello World\r\n");
else
out.write("\r\n Hello, ");
request.getParameter("name");
out.write("\r\n</h2>\r\n</body></html>\r\n");
} catch (Exception ex) {
if (out != null && out.getBufferSize() != 0)
out.clearBuffer();
if (pageContext != null) pageContext.handlePageException(ex);
} finally {
if (out instanceof org.apache.jasper.runtime.JspWriterImpl) {
((org.apache.jasper.runtime.JspWriterImpl)out).flushBuffer();
}
if (_jspxFactory != null) _jspxFactory.releasePageContext(pageContext);
}
}
}
</pre>
</div>
</div>
<h2>Overview</h2>
<div class="section">
<p>The Avalon framework consists of interfaces that define
relationships between commonly used application components,
best-of-practice pattern enforcements, and several lightweight
convenience implementations of the generic components.</p>
<p>What that means is that we define the central interface
Component. We also define the relationship (contract) a component
has with peers, ancestors and children. This documentation
introduces you to those patterns, interfaces and relationships.</p>
<h3>Target Audience</h3>
<div class="section">
<p>This documentation is aimed towards developers who are
interested in the design principles of Avalon, or wish to
develop code that will be incorporated into Avalon.</p>
</div>
<h3>Theoretical Aspects of Component Development</h3>
<div class="section">
<p>The following documents provide basic theoretical concepts
that are applied through-out Avalon's framework. It would be
good for a prospective developer to be at least passingly
familiar with the concepts outlined in this document. The
documentation also provides links to outside sources which
can be consulted for further information.</p>
<ol>
<li><a href="">Patterns</a></li>
<li><a href="">Reuse Of Standards</a></li>
<li><a href="">Inversion of Control</a></li>
<li><a href="">Separation of Concerns</a></li>
<li><a href="">Security</a></li>
</ol>
</div>
<h3>Some place with a code block</h3>
<div class="section">
<p>Here is the code I mentioned:</p>
<pre class="code">
package jsp;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class helloworld_1 extends org.apache.jasper.runtime.HttpJspBase {
static {
}
public helloworld_1( ) {
}
private static boolean _jspx_inited = false;
public final void _jspx_init() throws org.apache.jasper.JasperException {
}
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {
JspFactory _jspxFactory = null;
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
String _value = null;
try {
if (_jspx_inited == false) {
_jspx_init();
_jspx_inited = true;
}
_jspxFactory = JspFactory.getDefaultFactory();
response.setContentType("text/html;charset=8859_1");
pageContext = _jspxFactory.getPageContext(this, request, response,
"", true, 8192, true);
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
out.write("<html>\r\n<head><title>Hello</title></head>\r\n<body>\r\n<h2>\r\n");
if (request.getParameter("name") == null)
out.write("\r\n Hello World\r\n");
else
out.write("\r\n Hello, ");
request.getParameter("name");
out.write("\r\n</h2>\r\n</body></html>\r\n");
} catch (Exception ex) {
if (out != null && out.getBufferSize() != 0)
out.clearBuffer();
if (pageContext != null) pageContext.handlePageException(ex);
} finally {
if (out instanceof org.apache.jasper.runtime.JspWriterImpl) {
((org.apache.jasper.runtime.JspWriterImpl)out).flushBuffer();
}
if (_jspxFactory != null) _jspxFactory.releasePageContext(pageContext);
}
}
}
</pre>
</div>
</div>
<div id="authors">by <a href="mailto:leosimons@apache.org">Leo Simons</a>, <a href="mailto:jon">Jon Stevens</a>, <a href="mailto:paul">Paul Hammant</a></div>
</div>
<!-- end contents column -->
</td>
</tr>
</table></div>
<!-- end main section of page -->
<!-- footer -->
<div id="footer">
Copyright ©1999-2002 by the Apache Software Foundation. All Rights Reserved.
</div>
<!-- end footer -->
</body>
</html>
1.1 jakarta-avalon/src/proposal/site/jakarta.gif
<<Binary file>>
1.1 jakarta-avalon/src/proposal/site/anakia/README.txt
Index: README.txt
===================================================================
This is modified from the anakia example in the
velocity CVS.
You need to install Ant first.
<http://jakarta.apache.org/ant/>
Then, you need to get velocity from CVS.
Then, you need to build Velocity:
cd jakarta-velocity/build
ant
Then, you can run this Anakia example:
cd proposal/site/anakia/build
ant
thanks.
- Leo
1.1 jakarta-avalon/src/proposal/site/anakia/build/build.xml
Index: build.xml
===================================================================
<project name="build-site" default="docs" basedir=".">
<!-- Initialization properties -->
<property name="project.name" value="site"/>
<property name="docs.src" value="../xdocs"/>
<property name="docs.dest" value="../docs"/>
<property name="velocity-cvs.dir" value="/sources/cvs/jakarta/jakarta-velocity"/>
<!-- Build classpath -->
<path id="classpath">
<fileset dir="${velocity-cvs.dir}/build/lib">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${velocity-cvs.dir}/bin">
<include name="**/*.jar"/>
</fileset>
</path>
<target name="prepare">
<available classname="org.apache.velocity.anakia.AnakiaTask"
property="AnakiaTask.present">
<classpath refid = "classpath"/>
</available>
</target>
<target depends="prepare" name="prepare-error" unless="AnakiaTask.present">
<echo>
AnakiaTask is not present! Please check to make sure that
velocity.jar is in your classpath.
</echo>
</target>
<target name="docs" depends="prepare-error" if="AnakiaTask.present">
<taskdef name="anakia"
classname="org.apache.velocity.anakia.AnakiaTask">
<classpath refid = "classpath"/>
</taskdef>
<anakia basedir="${docs.src}" destdir="${docs.dest}/"
extension=".html" style="./site.vsl"
projectFile="./stylesheets/project.xml"
excludes="**/stylesheets/**"
includes="**/*.xml"
lastModifiedCheck="true"
templatePath="../xdocs/stylesheets"
>
</anakia>
<copy todir="${docs.dest}/images" filtering="no">
<fileset dir="${docs.src}/images">
<include name="**/*.gif"/>
<include name="**/*.jpeg"/>
<include name="**/*.jpg"/>
</fileset>
</copy>
<copy todir="${docs.dest}" filtering="no">
<fileset dir="${docs.src}">
<include name="**/*.css"/>
</fileset>
</copy>
</target>
</project>
1.1 jakarta-avalon/src/proposal/site/anakia/build/velocity.log
Index: velocity.log
===================================================================
Sat Apr 06 16:01:27 CEST 2002 [debug] AvalonLogSystem initialized using logfile 'velocity.log'
Sat Apr 06 16:01:27 CEST 2002 [info] **************************************************************
Sat Apr 06 16:01:27 CEST 2002 [info] Starting Jakarta Velocity v1.4-dev
Sat Apr 06 16:01:27 CEST 2002 [info] RuntimeInstance initializing.
Sat Apr 06 16:01:27 CEST 2002 [info] Default Properties File: org\apache\velocity\runtime\defaults\velocity.properties
Sat Apr 06 16:01:27 CEST 2002 [info] Trying to use logger class org.apache.velocity.runtime.log.AvalonLogSystem
Sat Apr 06 16:01:27 CEST 2002 [info] Using logger class org.apache.velocity.runtime.log.AvalonLogSystem
Sat Apr 06 16:01:27 CEST 2002 [info] Default ResourceManager initializing. (class org.apache.velocity.runtime.resource.ResourceManagerImpl)
Sat Apr 06 16:01:27 CEST 2002 [info] Resource Loader Instantiated: org.apache.velocity.runtime.resource.loader.FileResourceLoader
Sat Apr 06 16:01:27 CEST 2002 [info] FileResourceLoader : initialization starting.
Sat Apr 06 16:01:27 CEST 2002 [info] FileResourceLoader : adding path 'F:\Sources\cvs\jakarta\jakarta-avalon\src\proposal\site\anakia\xdocs\stylesheets'
Sat Apr 06 16:01:27 CEST 2002 [info] FileResourceLoader : initialization complete.
Sat Apr 06 16:01:27 CEST 2002 [info] ResourceCache : initialized. (class org.apache.velocity.runtime.resource.ResourceCacheImpl)
Sat Apr 06 16:01:27 CEST 2002 [info] Default ResourceManager initialization complete.
Sat Apr 06 16:01:27 CEST 2002 [info] Loaded System Directive: org.apache.velocity.runtime.directive.Literal
Sat Apr 06 16:01:27 CEST 2002 [info] Loaded System Directive: org.apache.velocity.runtime.directive.Macro
Sat Apr 06 16:01:27 CEST 2002 [info] Loaded System Directive: org.apache.velocity.runtime.directive.Parse
Sat Apr 06 16:01:27 CEST 2002 [info] Loaded System Directive: org.apache.velocity.runtime.directive.Include
Sat Apr 06 16:01:27 CEST 2002 [info] Loaded System Directive: org.apache.velocity.runtime.directive.Foreach
Sat Apr 06 16:01:28 CEST 2002 [info] Created: 20 parsers.
Sat Apr 06 16:01:28 CEST 2002 [info] Velocimacro : initialization starting.
Sat Apr 06 16:01:28 CEST 2002 [info] Velocimacro : adding VMs from VM library template : VM_global_library.vm
Sat Apr 06 16:01:28 CEST 2002 [error] ResourceManager : unable to find resource 'VM_global_library.vm' in any resource loader.
Sat Apr 06 16:01:28 CEST 2002 [info] Velocimacro : error using VM library template VM_global_library.vm : org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'VM_global_library.vm'
Sat Apr 06 16:01:28 CEST 2002 [info] Velocimacro : VM library template macro registration complete.
Sat Apr 06 16:01:28 CEST 2002 [info] Velocimacro : allowInline = true : VMs can be defined inline in templates
Sat Apr 06 16:01:28 CEST 2002 [info] Velocimacro : allowInlineToOverride = false : VMs defined inline may NOT replace previous VM definitions
Sat Apr 06 16:01:28 CEST 2002 [info] Velocimacro : allowInlineLocal = false : VMs defined inline will be global in scope if allowed.
Sat Apr 06 16:01:28 CEST 2002 [info] Velocimacro : messages on : VM system will output logging messages
Sat Apr 06 16:01:28 CEST 2002 [info] Velocimacro : autoload off : VM system will not automatically reload global library macros
Sat Apr 06 16:01:28 CEST 2002 [info] Velocimacro : initialization complete.
Sat Apr 06 16:01:28 CEST 2002 [info] Velocity successfully started.
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #table( table ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #tr( tr ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #td( value ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #th( value ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #image( value ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #source( value ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #subsection( subsection ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #section( section ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #projectAnchor( name value ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #metaAuthor( author email ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #printMeta( metaElement ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #getTitle( ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #getAuthors( ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #getMetas( ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #getStylesheet( ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #getHeader( ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #getBreadCrumbs( ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #getMain( ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #getMenu( ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #getContents( ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #getAuthorList( ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #getFooter( ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [info] Velocimacro : added new VM : #document( ) : source = ./site.vsl
Sat Apr 06 16:01:29 CEST 2002 [error] VM #tr: error : too few arguments to macro. Wanted 1 got 0
Sat Apr 06 16:01:29 CEST 2002 [error] VM #td: error : too few arguments to macro. Wanted 1 got 0
Sat Apr 06 16:01:29 CEST 2002 [error] VM #th: error : too few arguments to macro. Wanted 1 got 0
Sat Apr 06 16:01:30 CEST 2002 [info] ResourceManager : found ./site.vsl with loader org.apache.velocity.runtime.resource.loader.FileResourceLoader
1.1 jakarta-avalon/src/proposal/site/anakia/docs/avalon.gif
<<Binary file>>
1.1 jakarta-avalon/src/proposal/site/anakia/docs/common.css
Index: common.css
===================================================================
body {
margin: 0px;
padding: 10px;
}
body, td {
background-color: white;
color: black;
font-family: Arial, Helvetica, sans-serif;
font-size: 11pt;
}
p {
text-align: justify;
}
div {
margin: 0px;
padding: 0px;
}
h1, h2, h3, h4, h5, h6 {
page-break-after: avoid;
color: black;
font-family: Verdana, Arial, sans-serif;
font-weight: bold;
padding: 0px;
margin: 0px;
}
h1 {
border: 1px solid #003366;
font-size: 18pt;
padding: 2px;
margin-bottom: 10px;
text-align: center;
background-color: #EEEEFF;
}
h2 {
font-size: 16pt;
margin-left: 40px;
}
h3 {
font-size: 14pt;
margin-left: 80px;
color: #000033;
}
h4 {
font-size: 12pt;
margin-left: 120px;
color: #000066;
}
h5 {
font-size: 11pt;
font-style: italic;
text-align: center;
color: #333399;
}
h6 {
font-size: 10pt;
text-align: center;
font-weight: normal;
color: #3333CC;
}
a, a:visited {
color: #336699;
}
a:hover, a:active {
color: #003366;;
}
#contents div { margin-left: 40px; }
#breadcrumbs {
border-top: 1px solid #003366;
border-bottom: 1px solid #003366;
margin-top: 10px;
margin-bottom: 20px;
padding-top: 0px;
padding-bottom: 2px;
padding-left: 10px;
font-size: 10pt;
font-weight: bold;
}
#menu {
border: 1px solid #003366;
width: 175px;
}
#menu h4 {
margin: 0px;
padding-left: 5px;
padding-top: 2px;
padding-bottom: 2px;
color: black;
text-align: left;
font-style: normal;
font-size: 10pt;
background-color: #EEEEFF;
}
#submenu h4 {
margin: 0px;
padding-left: 5px;
padding-top: 2px;
padding-bottom: 2px;
color: black;
text-align: left;
font-style: normal;
font-size: 10pt;
background-color: #EEEEFF;
}
#submenu ul {
margin-top: 5px;
margin-bottom: 5px;
margin-left: 25px;
}
#authors {
font-size: 10px;
text-align: right;
}
#footer {
border-top: 1px solid #003366;
margin-top: 20px;
padding: 3px;
text-align: center;
font-size: 9pt;
font-style: italic;
}
a.breadcrumbs, a.breadcrumbs:visited, a.menu, a.menu:visited {
font-size: 10pt;
font-weight: bold;
text-decoration: none;
}
a.breadcrumbs:hover, a.breadcrumbs:active, a.menu:hover, a.menu:active {
text-decoration: underline;
}
.code {
font-family: Courier, Courier New, monospace;
}
.section .code {
margin-left: -40px;
}
@media print {
body td {
font-family: Times New Roman, Zurich Bt, serif;
font-size: 10pt;
}
#menu h4 {
margin-left: 0px;
}
.code {
page-break-inside: avoid;
}
p ul {
page-break-inside: avoid;
}
.section .code {
margin-left: 0px;
}
#menu {
display: none;
width: 0px;
}
#contents div {
margin: 0px;
}
}
1.1 jakarta-avalon/src/proposal/site/anakia/docs/index.html
Index: index.html
===================================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>Jakarta Site - The Jakarta Project</title>
<meta name="author" value="Jon S. Stevens" />
<meta name="email" value="jon@latchkey.com" />
<link rel="stylesheet" type="text/css" href="./common.css" />
</head>
<body>
<!-- header -->
<div id="header"><a href="http://jakarta.apache.org"><img id="jakartaLogo" src="http://jakarta.apache.org/images/jakarta-logo.gif" alt="Jakarta Project (go to homepage)" border="0" /></a></div>
<!-- end header -->
<!-- breadcrumb trail -->
<div id="breadcrumbs">
<a href="http://www.apache.org" class="breadcrumbs">Apache.org</a> >
<a href="/" class="breadcrumbs">Jakarta</a> >
<a href="/avalon" class="breadcrumbs">Avalon</a> >
<script language="JavaScript" type="text/javascript">
<!--
function sentenceCase(str) {
var lower = str.toLowerCase();
return lower.substr(0,1).toUpperCase() + lower.substr(1);
}
function getDirsAsArray() {
var trail = document.location.pathname.split("\\");
var lastdir = (trail[trail.length-1].indexOf(".html") != -1)? trail.length-2 : trail.length-1;
var urlprefix = "/avalon/";
var postfix = " >";
for(var i = 1; i <= lastdir; i++) {
document.writeln('<a href=' + urlprefix + trail[i] + ' class="menu">' + sentenceCase(trail[i]) + '</a>'+postfix);
urlprefix += trail[i] + "/";
if(i == lastdir-1) postfix = ":";
}
}
getDirsAsArray();
// -->
</script>
</div>
<!-- end breadcrumb trail -->
<!-- main section of page -->
<div id="main"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top">
<!-- menu column -->
<div id="submenu">
<h4>Home</h4>
<ul>
<li> <a href="./index.html" class="menu">Front Page</a>
</li>
</ul>
</div>
<div id="submenu">
<h4>About</h4>
<ul>
<li> <a href="./about/index.html" class="menu">About</a>
</li>
</ul>
</div>
<!-- end menu column -->
</td>
<!-- spacer -->
<td width="10"> </td>
<td valign="top">
<!-- contents column -->
<div id="contents">
<h1>The Jakarta Project</h1>
<a name="$subsection.getAttributeValue("name")"><h2>Section 1</h2></a>
<div class="section">
<p>
This is an example template that gets processed.
</p>
<img src="./images/avalon.gif" width="329" height="" align="" />
<table>
<tr>
<td colspan="" rowspan="" valign="top" align="left">
It even has a table in it!
</td>
</tr>
</table>
<h3>And an h3 tag</h3>
</div>
<a name="$subsection.getAttributeValue("name")"><h2>Section 2</h2></a>
<div class="section">
<p> here is another section </p>
</div>
<a name="$subsection.getAttributeValue("name")"><h2>section 3</h2></a>
<div class="section">
<p><a href="./about/index.html">A link to a sub page</a></p>
</div>
<div id="authors">by
<a href="Jon S. Stevens">jon@latchkey.com</a>
</div>
</div>
<!-- end contents column -->
</td>
</tr>
</table></div>
<!-- end main section of page -->
<!-- footer -->
<div id="footer">
Copyright ©1999-2002 by the Apache Software Foundation. All Rights Reserved.
</div>
<!-- end footer -->
</body>
</html>
1.1 jakarta-avalon/src/proposal/site/anakia/docs/about/index.html
Index: index.html
===================================================================
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>Jakarta Site - The About Section</title>
<meta name="author" value="Jon S. Stevens" />
<meta name="email" value="jon@latchkey.com" />
<link rel="stylesheet" type="text/css" href="./common.css" />
</head>
<body>
<!-- header -->
<div id="header"><a href="http://jakarta.apache.org"><img id="jakartaLogo" src="http://jakarta.apache.org/images/jakarta-logo.gif" alt="Jakarta Project (go to homepage)" border="0" /></a></div>
<!-- end header -->
<!-- breadcrumb trail -->
<div id="breadcrumbs">
<a href="http://www.apache.org" class="breadcrumbs">Apache.org</a> >
<a href="/" class="breadcrumbs">Jakarta</a> >
<a href="/avalon" class="breadcrumbs">Avalon</a> >
<script language="JavaScript" type="text/javascript">
<!--
function sentenceCase(str) {
var lower = str.toLowerCase();
return lower.substr(0,1).toUpperCase() + lower.substr(1);
}
function getDirsAsArray() {
var trail = document.location.pathname.split("\\");
var lastdir = (trail[trail.length-1].indexOf(".html") != -1)? trail.length-2 : trail.length-1;
var urlprefix = "/avalon/";
var postfix = " >";
for(var i = 1; i <= lastdir; i++) {
document.writeln('<a href=' + urlprefix + trail[i] + ' class="menu">' + sentenceCase(trail[i]) + '</a>'+postfix);
urlprefix += trail[i] + "/";
if(i == lastdir-1) postfix = ":";
}
}
getDirsAsArray();
// -->
</script>
</div>
<!-- end breadcrumb trail -->
<!-- main section of page -->
<div id="main"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top">
<!-- menu column -->
<div id="submenu">
<h4>Home</h4>
<ul>
<li> <a href="../index.html" class="menu">Front Page</a>
</li>
</ul>
</div>
<div id="submenu">
<h4>About</h4>
<ul>
<li> <a href="../about/index.html" class="menu">About</a>
</li>
</ul>
</div>
<!-- end menu column -->
</td>
<!-- spacer -->
<td width="10"> </td>
<td valign="top">
<!-- contents column -->
<div id="contents">
<h1>The About Section</h1>
<a name="$subsection.getAttributeValue("name")"><h2>Section 1</h2></a>
<div class="section">
<p>
This is the "about" section of your website
</p>
<img src="../images/velocity.gif" width="329" height="105" align="" />
<table>
<tr>
<td colspan="" rowspan="" valign="top" align="left">
It even has a table in it!
</td>
</tr>
</table>
<h3>And an h3 tag</h3>
</div>
<a name="$subsection.getAttributeValue("name")"><h2>Section 2</h2></a>
<div class="section">
<p> here is another section </p>
</div>
<a name="$subsection.getAttributeValue("name")"><h2>section 3</h2></a>
<div class="section">
<p><a href="../index.html">A link to the home page</a></p>
</div>
<div id="authors">by
<a href="Jon S. Stevens">jon@latchkey.com</a>
</div>
</div>
<!-- end contents column -->
</td>
</tr>
</table></div>
<!-- end main section of page -->
<!-- footer -->
<div id="footer">
Copyright ©1999-2002 by the Apache Software Foundation. All Rights Reserved.
</div>
<!-- end footer -->
</body>
</html>
1.1 jakarta-avalon/src/proposal/site/anakia/docs/images/avalon.gif
<<Binary file>>
1.1 jakarta-avalon/src/proposal/site/anakia/xdocs/common.css
Index: common.css
===================================================================
body {
margin: 0px;
padding: 10px;
}
body, td {
background-color: white;
color: black;
font-family: Arial, Helvetica, sans-serif;
font-size: 11pt;
}
p {
text-align: justify;
}
div {
margin: 0px;
padding: 0px;
}
h1, h2, h3, h4, h5, h6 {
page-break-after: avoid;
color: black;
font-family: Verdana, Arial, sans-serif;
font-weight: bold;
padding: 0px;
margin: 0px;
}
h1 {
border: 1px solid #003366;
font-size: 18pt;
padding: 2px;
margin-bottom: 10px;
text-align: center;
background-color: #EEEEFF;
}
h2 {
font-size: 16pt;
margin-left: 40px;
}
h3 {
font-size: 14pt;
margin-left: 80px;
color: #000033;
}
h4 {
font-size: 12pt;
margin-left: 120px;
color: #000066;
}
h5 {
font-size: 11pt;
font-style: italic;
text-align: center;
color: #333399;
}
h6 {
font-size: 10pt;
text-align: center;
font-weight: normal;
color: #3333CC;
}
a, a:visited {
color: #336699;
}
a:hover, a:active {
color: #003366;;
}
#contents div { margin-left: 40px; }
#breadcrumbs {
border-top: 1px solid #003366;
border-bottom: 1px solid #003366;
margin-top: 10px;
margin-bottom: 20px;
padding-top: 0px;
padding-bottom: 2px;
padding-left: 10px;
font-size: 10pt;
font-weight: bold;
}
#menu {
border: 1px solid #003366;
width: 175px;
}
#menu h4 {
margin: 0px;
padding-left: 5px;
padding-top: 2px;
padding-bottom: 2px;
color: black;
text-align: left;
font-style: normal;
font-size: 10pt;
background-color: #EEEEFF;
}
#submenu h4 {
margin: 0px;
padding-left: 5px;
padding-top: 2px;
padding-bottom: 2px;
color: black;
text-align: left;
font-style: normal;
font-size: 10pt;
background-color: #EEEEFF;
}
#submenu ul {
margin-top: 5px;
margin-bottom: 5px;
margin-left: 25px;
}
#authors {
font-size: 10px;
text-align: right;
}
#footer {
border-top: 1px solid #003366;
margin-top: 20px;
padding: 3px;
text-align: center;
font-size: 9pt;
font-style: italic;
}
a.breadcrumbs, a.breadcrumbs:visited, a.menu, a.menu:visited {
font-size: 10pt;
font-weight: bold;
text-decoration: none;
}
a.breadcrumbs:hover, a.breadcrumbs:active, a.menu:hover, a.menu:active {
text-decoration: underline;
}
.code {
font-family: Courier, Courier New, monospace;
}
.section .code {
margin-left: -40px;
}
@media print {
body td {
font-family: Times New Roman, Zurich Bt, serif;
font-size: 10pt;
}
#menu h4 {
margin-left: 0px;
}
.code {
page-break-inside: avoid;
}
p ul {
page-break-inside: avoid;
}
.section .code {
margin-left: 0px;
}
#menu {
display: none;
width: 0px;
}
#contents div {
margin: 0px;
}
}
1.1 jakarta-avalon/src/proposal/site/anakia/xdocs/index.xml
Index: index.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<author email="jon@latchkey.com">Jon S. Stevens</author>
<title>The Jakarta Project</title>
</properties>
<body>
<section name="Section 1">
<p>
This is an example template that gets processed.
</p>
<img src="/images/avalon.gif" width="329"/>
<table border="1">
<tr>
<td>
It even has a table in it!
</td>
</tr>
</table>
<h3>And an h3 tag</h3>
</section>
<section name="Section 2">
<p> here is another section </p>
</section>
<section name="section 3">
<p><a href="./about/index.html">A link to a sub page</a></p>
</section>
</body>
</document>
1.1 jakarta-avalon/src/proposal/site/anakia/xdocs/about/index.xml
Index: index.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<author email="jon@latchkey.com">Jon S. Stevens</author>
<title>The About Section</title>
</properties>
<body>
<section name="Section 1">
<p>
This is the "about" section of your website
</p>
<img src="/images/velocity.gif" width="329" height="105"/>
<table border="1">
<tr>
<td>
It even has a table in it!
</td>
</tr>
</table>
<h3>And an h3 tag</h3>
</section>
<section name="Section 2">
<p> here is another section </p>
</section>
<section name="section 3">
<p><a href="../index.html">A link to the home page</a></p>
</section>
</body>
</document>
1.1 jakarta-avalon/src/proposal/site/anakia/xdocs/images/avalon.gif
<<Binary file>>
1.1 jakarta-avalon/src/proposal/site/anakia/xdocs/stylesheets/project.xml
Index: project.xml
===================================================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="Jakarta Site"
href="http://jakarta.apache.org/">
<title>Jakarta Site</title>
<body>
<menu name="Home">
<item name="Front Page" href="/index.html"/>
</menu>
<menu name="About">
<item name="About" href="/about/index.html"/>
</menu>
</body>
</project>
1.1 jakarta-avalon/src/proposal/site/anakia/xdocs/stylesheets/site.vsl
Index: site.vsl
===================================================================
## start the processing
#document()
##
## Macros for generation of the pages main sections and section contents
##
#macro (table $table)
<table>
#foreach ($items in $table.getChildren())
#if ($items.getName().equals("tr"))
#tr ($items)
#end
#end
</table>
#end
#macro (tr $tr)
<tr>
#foreach ($items in $tr.getChildren())
#if ($items.getName().equals("td"))
#td ($items)
#elseif ($items.getName().equals("th"))
#th ($items)
#end
#end
</tr>
#end
#macro (td $value)
#if ($value.getAttributeValue("colspan"))
#set ($colspan = $value.getAttributeValue("colspan"))
#end
#if ($value.getAttributeValue("rowspan"))
#set ($rowspan = $value.getAttributeValue("rowspan"))
#end
<td colspan="$!colspan" rowspan="$!rowspan" valign="top" align="left">
#if ($value.getText().length() != 0 || $value.hasChildren())
$value.getContent()
#else
#end
</td>
#end
#macro (th $value)
#if ($value.getAttributeValue("colspan"))
#set ($colspan = $value.getAttributeValue("colspan"))
#end
#if ($value.getAttributeValue("rowspan"))
#set ($rowspan = $value.getAttributeValue("rowspan"))
#end
<td class="th" colspan="$!colspan" rowspan="$!rowspan" valign="top" align="left">
#if ($value.getText().length() != 0 || $value.hasChildren())
$value.getContent()
#else
#end
</td>
#end
#macro ( image $value )
#if ($value.getAttributeValue("width"))
#set ($width=$value.getAttributeValue("width"))
#end
#if ($value.getAttributeValue("height"))
#set ($height=$value.getAttributeValue("height"))
#end
#if ($value.getAttributeValue("align"))
#set ($align=$value.getAttributeValue("align"))
#end
<img src="$relativePath$value.getAttributeValue("src")" width="$!width" height="$!height" align="$!align" />
#end
#macro (source $value)
<pre class="code">$escape.getText($value.getText())</pre>
#end
#macro (subsection $subsection)
<a name="$subsection.getAttributeValue("name")"><h2>$subsection.getAttributeValue("name")</h2></a>
<div class="subsection">
#foreach ($items in $subsection.getChildren())
#if ($items.getName().equals("img"))
#image ($items)
#elseif ($items.getName().equals("source"))
#source ($items)
#elseif ($items.getName().equals("table"))
#table ($items)
#else
$items
#end
#end
</div>
#end
#macro (section $section)
<a name="$subsection.getAttributeValue("name")"><h2>$section.getAttributeValue("name")</h2></a>
<div class="section">
#foreach ($items in $section.getChildren())
#if ($items.getName().equals("img"))
#image ($items)
#elseif ($items.getName().equals("source"))
#source ($items)
#elseif ($items.getName().equals("table"))
#table ($items)
#elseif ($items.getName().equals("subsection"))
#subsection ($items)
#else
$items
#end
#end
</div>
#end
##
## 'Utility' macros
##
#macro (projectAnchor $name $value)
#if ($value.startsWith("http://"))
<a href="$value" class="menu">$name</a>
#elseif ($value.startsWith("/site"))
<a href="http://jakarta.apache.org$value" class="menu">$name</a>
#else
<a href="$relativePath$value" class="menu">$name</a>
#end
#end
#macro (metaAuthor $author $email)
<meta name="author" value="$author" />
<meta name="email" value="$email" />
#end
#macro (printMeta $metaElement)
<meta #set ($attribs = $metaElement.getAttributes())
#foreach ($a in $attribs) $a.getName()="$a.getValue()" #end />
#end
##
## Macros for generation of all the bells and whistles around the content
##
## print html <title/> info
#macro (getTitle)
<title>$project.getChild("title").getText() - $root.getChild("properties").getChild("title").getText()</title>
#end
## print html <meta author=""/> info
#macro (getAuthors)
#set ($authors = $root.getChild("properties").getChildren("author"))
#foreach ( $au in $authors )
#metaAuthor ( $au.getText() $au.getAttributeValue("email") )
#end
#end
## print html <meta/> info
#macro (getMetas)
#set ($metas = $root.getChildren("meta"))
#foreach ($meta in $metas) #printMeta($meta) #end
#end
## print html <style/> info
#macro (getStylesheet)
<link rel="stylesheet" type="text/css" href="./common.css" />
#end
## print html for the page header
#macro (getHeader)
#if ($project.getChild("logo"))
<div id="header"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="jakartaLogoTD" valign="middle" align="left"><a href="http://jakarta.apache.org"><img id="jakartaLogo" src="http://jakarta.apache.org/images/jakarta-logo.gif" alt="Jakarta Project (go to homepage)" border="0" /></a></td>
<td id="projectLogoTD" valign="middle" align="right">
#set ($logoString = $project.getChild("logo").getAttributeValue("href"))
#if ($logoString.startsWith("/"))
<a href="$project.getAttributeValue("href")"><img id="projectLogo" src="$relativePath$logoString" alt="$project.getChild("logo").getText()" border="0"/></a>
#else
<a href="$project.getAttributeValue("href")"><img id="projectLogo" src="$relativePath/$logoString" alt="$project.getChild("logo").getText()" border="0"/></a>
#end
</td>
</tr>
</table></div>
#else
<div id="header"><a href="http://jakarta.apache.org"><img id="jakartaLogo" src="http://jakarta.apache.org/images/jakarta-logo.gif" alt="Jakarta Project (go to homepage)" border="0" /></a></div>
#end
#end
## print html to call breadcrumb trail javascript
#macro (getBreadCrumbs)
<div id="breadcrumbs">
<a href="http://www.apache.org" class="breadcrumbs">Apache.org</a> >
<a href="/" class="breadcrumbs">Jakarta</a> >
<a href="/avalon" class="breadcrumbs">Avalon</a> >
## $relativePath contains the info I need. How to extract it?
## the only option I know is to a) change anakia
## b) use javascript
<script language="JavaScript" type="text/javascript">
<!--
function sentenceCase(str) {
var lower = str.toLowerCase();
return lower.substr(0,1).toUpperCase() + lower.substr(1);
}
function getDirsAsArray() {
var trail = document.location.pathname.split("\\");
var lastdir = (trail[trail.length-1].indexOf(".html") != -1)? trail.length-2 : trail.length-1;
var urlprefix = "/avalon/";
var postfix = " >";
for(var i = 1; i <= lastdir; i++) {
document.writeln('<a href=' + urlprefix + trail[i] + ' class="menu">' + sentenceCase(trail[i]) + '</a>'+postfix);
urlprefix += trail[i] + "/";
if(i == lastdir-1) postfix = ":";
}
}
getDirsAsArray();
// -->
</script>
</div>
#end
## create the bulk of the html page
#macro (getMain)
<div id="main"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top">
<!-- menu column -->
#getMenu()
<!-- end menu column -->
</td>
<!-- spacer -->
<td width="10"> </td>
<td valign="top">
<!-- contents column -->
#getContents()
<!-- end contents column -->
</td>
</tr>
</table></div>
#end
#macro (getMenu)
#set ($menus = $project.getChild("body").getChildren("menu"))
#foreach ( $menu in $menus )
<div id="submenu">
<h4>$menu.getAttributeValue("name")</h4>
<ul>
#foreach ( $item in $menu.getChildren() )
#set ($name = $item.getAttributeValue("name"))
<li>#projectAnchor($name $item.getAttributeValue("href"))</li>
#end
</ul>
</div>
#end
#end
#macro (getContents)
<div id="contents">
<h1>$root.getChild("properties").getChild("title").getText()</h1>
#set ($allSections = $root.getChild("body").getChildren("section"))
#foreach ( $section in $allSections )
#section ($section)
#end
#getAuthorList()
</div>
#end
#macro (getAuthorList)
<div id="authors">by
#set ($authors = $root.getChild("properties").getChildren("author"))
#foreach ( $au in $authors )
<a href="$au.getText()">$au.getAttributeValue("email")</a>
#end
</div>
#end
## print html for the page footer
#macro (getFooter)
<div id="footer">
Copyright ©1999-2002 by the Apache Software Foundation. All Rights Reserved.
</div>
#end
##
## create the html document, sort of 'root' function
##
#macro (document)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
#getTitle()
#getAuthors()
#getMetas()
#getStylesheet()
</head>
<body>
<!-- header -->
#getHeader()
<!-- end header -->
<!-- breadcrumb trail -->
#getBreadCrumbs()
<!-- end breadcrumb trail -->
<!-- main section of page -->
#getMain()
<!-- end main section of page -->
<!-- footer -->
#getFooter()
<!-- end footer -->
</body>
</html>
#end
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>