| #* |
| * DVSL Stylesheet to format the Ant Task documentation. |
| *# |
| |
| #set( $relative-path = "../../" ) |
| #if (false) |
| #set( $body-bg = '#ffffff' ) |
| #set( $body-fg = '#000000' ) |
| #set( $body-link = '#525D76' ) |
| ##set( $banner-bg = '#EEEEEE') |
| #set( $banner-fg = '#000000') |
| #set( $sub-banner-bg = '#828DA6') |
| #set( $sub-banner-fg = '#ffffff') |
| ##set( $table-th-bg = '#FFEEEE') |
| ##set( $table-td-bg = '#FFEEEE') |
| ##set( $source-color = '#CCFFFF') |
| |
| #set( $table-th-bg = '#EEEEEE') |
| #set( $table-td-bg = '#EEEEEE') |
| #set( $banner-bg = '#a0ddf0') |
| ##set( $banner-bg = '#525D76') |
| ##set( $table-th-bg = '#039acc') |
| ##set( $table-td-bg = '#a0ddf0') |
| #set( $source-color = '#023264') |
| #end |
| |
| #set( $body-bg = '#ffffff' ) |
| #set( $body-fg = '#000000' ) |
| #set( $body-link = '#525D76' ) |
| #set( $banner-bg = '#525D76') |
| #set( $banner-fg = '#ffffff') |
| #set( $sub-banner-bg = '#828DA6') |
| #set( $sub-banner-fg = '#ffffff') |
| #set( $table-th-bg = '#cccccc') |
| #set( $table-td-bg = '#eeeeee') |
| #set( $source-color = '#023264') |
| #set( $source-font-size = '+0') |
| |
| ## Double quote for convenience |
| #set ($qq = '"') |
| |
| ## Macro to output argument if test evaluates to true |
| #macro(ifset $test $output) |
| #if ( $test )$output#end |
| #end |
| |
| ## Macro to capitalize a word making the first letter upper case |
| #macro(capitalize $word) |
| $word.substring(0,1).toUpperCase()$word.substring(1) |
| #end |
| |
| |
| #match( "task" ) |
| #set( $project = $node.selectSingleNode("document('xdocs/stylesheets/project.xml')/project" ) ) |
| #if ($node.name().equals("task")) |
| #set( $title = "#capitalize($attrib.name) Task" ) |
| #set( $summary = $node.short-description ) |
| #end |
| |
| <html> |
| <head> |
| <meta http-equiv="Content-Language" content="en-us"> |
| <title>$title</title> |
| </head> |
| |
| <body bgcolor="$body-bg" text="$body-fg" link="$body-link" |
| alink="$body-link" vlink="$body-link"> |
| |
| <table border="0" width="100%" cellspacing="4"> |
| |
| <!-- PAGE HEADER --> |
| <tr> |
| <td> |
| <table border="0" width="100%"><tr> |
| <td valign="bottom"> |
| <font size="+3" face="arial,helvetica,sanserif"><strong>$title</strong></font> |
| #* *##if( $summary ) |
| <br><font face="arial,helvetica,sanserif">$summary</font> |
| #* *##end |
| </td> |
| <td> |
| #* *##if( $project.logo ) |
| #set( $alt = $project.logo ) |
| #set( $home = $project.attribute("href") ) |
| #set( $src = $project.logo.attribute( "href" ) ) |
| <!-- PROJECT LOGO --> |
| <a href="$home"> |
| <img src="${relative-path}$src" align="right" alt="$alt" border="0"/> |
| </a> |
| #* *##end |
| </td> |
| </tr></table> |
| </td> |
| </tr> |
| |
| <!-- START RIGHT SIDE MAIN BODY --> |
| <tr> |
| <td valign="top" align="left"> |
| #* *##if ($node.name().equals("task")) |
| #* Use description from merged XML if available, else javadoc comment *# |
| #* *##if ($node.external.description) |
| <!-- Applying task/description --> |
| #* *#$context.applyTemplates("external/description") |
| #* *##else |
| <!-- Applying task/long-description --> |
| #* *#$context.applyTemplates("long-description") |
| #* *##end |
| #* *#$context.applyTemplates("short-description") |
| #* *#$context.applyTemplates("attribute/description") |
| #* *#$context.applyTemplates("element/description") |
| #* *#$context.applyTemplates("structure/attribute-groups") |
| #* *#$context.applyTemplates("structure/elements") |
| #* *#$context.applyTemplates("external/section") |
| #* *##end |
| </td> |
| </tr> |
| <!-- END RIGHT SIDE MAIN BODY --> |
| |
| <!-- FOOTER SEPARATOR --> |
| <tr> |
| <td> |
| <hr noshade="" size="1"/> |
| </td> |
| </tr> |
| |
| <!-- PAGE FOOTER --> |
| <tr> |
| <td> |
| <div align="center"><font color="$body-link" size="-1"><em> |
| Copyright © 2000-2005, Apache Software Foundation |
| </em></font></div> |
| </td> |
| </tr> |
| |
| </table> |
| |
| </body> |
| </html> |
| #end |
| |
| #* |
| Macro to format a table heading cell |
| *# |
| #macro( th $text ) |
| <td bgcolor="$table-th-bg" valign="top" align="left"> |
| <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>$text</b></font> |
| </td> |
| #end |
| |
| #* |
| Macro to format a table body cell |
| *# |
| #macro( td $text ) |
| <td bgcolor="$table-td-bg" valign="top" align="left"> |
| <font color="#000000" size="-1" face="arial,helvetica,sanserif">$text</font> |
| </td> |
| #end |
| |
| #* |
| Macro to format a table body cell that spans multiple rows |
| *# |
| #macro( tdmr $text $rows ) |
| <td bgcolor="$table-td-bg" valign="top" align="left" rowspan="$rows"> |
| <font color="#000000" size="-1" face="arial,helvetica,sanserif">$text</font> |
| </td> |
| #end |
| |
| |
| #* |
| Macro to format a section banner |
| *# |
| #macro( section $anchor $name ) |
| <tr><td bgcolor="$banner-bg"> |
| <font color="$banner-fg" face="arial,helvetica.sanserif"> |
| <a name="$anchor"> |
| <strong>$name</strong></a></font> |
| </td></tr> |
| #end |
| |
| #* |
| Macro to format a subsection banner |
| *# |
| #macro( subsection $anchor $name ) |
| <tr><td bgcolor="$sub-banner-bg"> |
| <font color="$sub-banner-fg" face="arial,helvetica.sanserif"> |
| <a name="$anchor"> |
| <strong>$name</strong></a></font> |
| </td></tr> |
| #end |
| |
| |
| #* |
| Process javadoc long description section |
| *# |
| #match( "long-description" ) |
| <!-- Start Description --> |
| <table border="0" cellspacing="0" cellpadding="2" width="100%"> |
| <tr><td> </td></tr> |
| |
| #* *##section("description" "Description") |
| |
| <tr><td><blockquote> |
| $node.value().trim() |
| </blockquote></td></tr> |
| |
| </table> |
| <!-- End Description --> |
| #end |
| |
| #* |
| Process javadoc short description section |
| *# |
| #match( "short-description" ) |
| <!-- Ignore --> |
| #end |
| |
| #* |
| Process javadoc attribute/description section |
| *# |
| #match( "attribute/description" ) |
| <!-- Ignore --> |
| #end |
| |
| #* |
| Process javadoc element/description section |
| *# |
| #match( "element/description" ) |
| <!-- Ignore --> |
| #end |
| |
| |
| #* |
| Process external desciption |
| *# |
| #match( "external/description" ) |
| <!-- Start Description --> |
| <table border="0" cellspacing="0" cellpadding="2" width="100%"> |
| <tr><td> </td></tr> |
| |
| #* *##section("description" "Description") |
| |
| <tr><td><blockquote> |
| #* *#$context.applyTemplates("*") |
| </blockquote></td></tr> |
| |
| </table> |
| <!-- End Description --> |
| #end |
| |
| #* |
| Process top level attributes |
| *# |
| #match( "structure/attribute-groups" ) |
| <!-- Start Attributes --> |
| <table border="0" cellspacing="0" cellpadding="2" width="100%"> |
| <tr><td> </td></tr> |
| #* *##section("attributes" "Parameters") |
| <tr><td><blockquote> |
| <table> |
| <tr> |
| #* *##th("Attribute") |
| #* *##th("Description") |
| #* *##th("Type") |
| #* *##th("Requirement") |
| </tr> |
| #* *#$context.applyTemplates("*") |
| </table> |
| </blockquote></td></tr> |
| |
| </table> |
| <!-- End Attributes --> |
| #end |
| |
| #* |
| Process attribute group |
| *# |
| #match( "structure/attribute-groups/attribute-group" ) |
| <!-- Attribute Group --> |
| #set ($attributeGroup = $attrib.description) |
| #set ($numGroups = $node.selectNodes("attribute").size()) |
| #set ($inGroup = true) |
| #* *#$context.applyTemplates("*") |
| #end |
| |
| #* |
| Process a single attribute |
| *# |
| #match( "structure/attribute-groups/attribute-group/attribute" ) |
| <!-- Attribute --> |
| <tr> |
| #* *##td($attrib.name) |
| #* *##td($node.description) |
| #* *##td($attrib.briefType) |
| #if ($inGroup) |
| #* *##tdmr($attributeGroup $numGroups) |
| #set ($inGroup = false) |
| #end |
| </tr> |
| #end |
| |
| #* |
| Process all elements |
| *# |
| #match( "elements" ) |
| <!-- Start Elements --> |
| <table border="0" cellspacing="0" cellpadding="2" width="100%"> |
| <tr><td> </td></tr> |
| |
| #* *##section("elements" "Parameters as nested elements") |
| |
| <tr><td><blockquote> |
| #* *#$context.applyTemplates("*") |
| </blockquote></td></tr> |
| |
| </table> |
| <!-- End Elements --> |
| #end |
| |
| #* |
| Process a single element |
| *# |
| #match( "element" ) |
| <!-- Start Element --> |
| <table border="0" cellspacing="0" cellpadding="2" width="100%"> |
| <tr><td> </td></tr> |
| <tr><td bgcolor="$sub-banner-bg"> |
| <font color="$sub-banner-fg" face="arial,helvetica.sanserif" size="-1"> |
| <strong>$attrib.name</strong> ($attrib.type)</font> |
| </td></tr> |
| <tr><td><blockquote> |
| $node.description.toString().trim() |
| #* *#$context.applyTemplates("*") |
| </blockquote></td></tr> |
| </table> |
| <!-- End Element --> |
| #end |
| |
| #* |
| Process attributes within elements |
| *# |
| #match( "element/attributes" ) |
| <!-- Start Attributes --> |
| <table border="0" cellspacing="0" cellpadding="2" width="100%"> |
| <tr><td> </td></tr> |
| |
| <tr><td> |
| <table> |
| <tr> |
| #* *##th("Attribute") |
| #* *##th("Description") |
| #* *##th("Type") |
| </tr> |
| #* *#$context.applyTemplates("*") |
| </table> |
| </td></tr> |
| |
| </table> |
| <!-- End Attributes --> |
| #end |
| |
| |
| #* |
| * Process a menu for the navigation bar |
| *# |
| #match( "menu" ) |
| <tr><td> |
| <p> |
| <strong>$attrib.name</strong> |
| </p> |
| </td><td> |
| <ul> |
| $context.applyTemplates("item") |
| </ul></td></tr> |
| #end |
| |
| |
| #* |
| * Process a menu item for the navigation bar |
| *# |
| #match( "item" ) |
| #if( $attrib.href.endsWith("$outputfilename") && !$attrib.href.startsWith("http")) |
| <strong>$attrib.name</strong> |
| #else |
| #if( $attrib.href.startsWith("http") ) |
| <a href="$attrib.href">$attrib.name</a> |
| #else |
| <a href="${relative-path}$attrib.href">$attrib.name</a> |
| #end |
| #end |
| #end |
| |
| #* |
| * process a documentation section |
| *# |
| #match( "section" ) |
| <table border="0" cellspacing="0" cellpadding="2" width="100%"> |
| <tr><td> </td></tr> |
| |
| <tr><td bgcolor="$banner-bg"> |
| <font color="$banner-fg" face="arial,helvetica.sanserif"> |
| #if ( $attrib.anchor ) |
| #set( $anchor = $attrib.anchor ) |
| #else |
| #set( $anchor = $attrib.name ) |
| #end |
| <a name="$anchor"> |
| <strong>$attrib.name</strong></a></font> |
| </td></tr> |
| |
| <tr><td><blockquote> |
| $context.applyTemplates("*") |
| </blockquote></td></tr> |
| |
| </table> |
| #end |
| |
| #match( "subsection" ) |
| <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"> |
| #if ( $attrib.anchor ) |
| #set( $anchor = $attrib.anchor ) |
| #else |
| #set( $anchor = $attrib.name ) |
| #end |
| <a name="$anchor"> |
| <strong>$attrib.name</strong></a></font> |
| </td></tr> |
| <!-- Subsection body --> |
| <tr><td> |
| $context.applyTemplates("*") |
| </td></tr> |
| </table> |
| #end |
| |
| #* |
| * process a the requirement groups |
| *# |
| #match( "requirement-group" ) |
| #if ($regGroup == $attrib.name) |
| #* *#$attrib.description |
| #end |
| #end |
| |
| #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"> |
| <font size="$source-font-size"><pre>$toolbox.htmlescape.getText( $node.value() )</pre></font> |
| </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> |
| #end |
| |
| |
| #match("table") |
| <table> |
| $context.applyTemplates("*") |
| </table> |
| #end |
| |
| #match("tr") |
| <tr> |
| $context.applyTemplates("*") |
| </tr> |
| #end |
| |
| #match( "td" ) |
| <td bgcolor="$table-td-bg" #* |
| *##ifset($attrib.colspan "colspan=$qq$attrib.colspan$qq ")#* |
| *##ifset($attrib.rowspan "rowspan=$qq$attrib.rowspan$qq ")#* |
| *#valign="top" align="left"> |
| <font color="#000000" size="-1" face="arial,helvetica,sanserif"> |
| $node.copy( $node.children() ) |
| </font> |
| </td> |
| #end |
| |
| #match( "th" ) |
| <td bgcolor="$table-th-bg" #* |
| *##ifset($attrib.colspan "colspan=$qq$attrib.colspan$qq ")#* |
| *##ifset($attrib.rowspan "rowspan=$qq$attrib.rowspan$qq ")#* |
| *#valign="top" align="left"> |
| <font color="#000000" size="-1" face="arial,helvetica,sanserif"> |
| <b>$node.copy( $node.children())</b> |
| </font> |
| </td> |
| #end |
| |
| #match("*") |
| $node.copy() |
| #end |
| |