[ml manager doesn't want a big mail, so look at the next mail, too...]
* Joshua Slive wrote:
> http://cvs.apache.org/~slive/manual/
>
> Contains a new draft of the proposed new manual style. This one is
> fully generated using xslt, so all the xml files should be converted.
[...]
> I'm a little uncomfortable with the complexity of the css, but I'll live
> with it as long as the docs still work fine with all css turned off.
ok. at first: I merged the css files and excluded NN4 completely.
(manual-nonn.css). It's not really shorter but probably a little bit
clearer.
here's the long rest ;-):
with the help of google I took a crash course in XSLT and tried to
complete your work.
I modified the common.xsl and the manual.en.xsl to work with all current
(en-) xml documents correctly and produce valid xhtml (strict).
As a result of this I patched several things in the xmls which were not
correct (see xml-current.en.patch).
CSS/HTML issues, modified by me:
* reverted the link colors to the proposed :)
the green and the red, weren't a good choice, imho.
there was too less contrast between them.
(e.g. I have problems with red & green, like about 20% of men)
* but, you're right, I removed the underlines of code and module links
for better reading
* (re?)added proposed semantics (<th> instead of <td>, <ul> in module
list etc.)
* renamed #header to #page-header, because #header clashes with the
Header directive... ;-)
* a lot of small issues, thus the xsl produces proper HTML
(e.g. "<example><table>...", used in howto/htaccess.xml)
* added doctype and xhtml namespace to xsl:output (manual.en.xsl)
Probably we also need some modifications to the DTDs:
- a var element
- a dfn element
- a blockquote element (?) (mod_rewrite.xml)
- proposal: a figure element, which works as below:
<figure><title>...</title>
<img src= width= height= alt="" />
</figure>
(mod_rewrite.xml uses figures, for example)
- I believe I forgot something ;-)
The changes are a suggestion, if you don't like them, please speak
now...
nd
--
die (eval q-qq:Just Another Perl Hacker
:-)
# Andr� Malo, <http://www.perlig.de/> #
/* ====================== */
/* manual.css */
/* ====================== */
/* general */
/* ====================== */
body {
background-color: #fff;
color: #036;
padding: 0 1em 0 0;
max-width: 55em; /* ??? */
margin: 0;
}
p, td, th, li, ul {
line-height: 1.3em;
}
div.example p {
line-height: 1em;
}
/* normal links */
a:link {
color: #0073c7;
background-color: inherit;
}
a:visited, a:active, a:hover {
color: #54acc4;
background-color: inherit;
}
a:link,
a:visited {
text-decoration: underline;
}
a:active, a:hover {
text-decoration: none;
}
/* module links */
code.module, code.module a:link {
color: #bc0f00;
background-color: inherit;
}
code.module a:link,
code.module a:visited,
code.directive a:link,
code.directive a:visited {
text-decoration: none;
}
code.module a:hover,
code.module a:active,
code.directive a:hover,
code.directive a:active {
text-decoration: underline;
}
code.module a:visited,
code.module a:active,
code.module a:hover {
color: #a06b66;
background-color: inherit;
}
/* directive [links] */
code.directive,
code.directive a:link {
color: #35a500;
background-color: inherit;
}
code.directive a:visited,
code.directive a:active,
code.directive a:hover {
color: #99af76;
background-color: inherit;
}
div.example {
background-color: #e5ecf3;
color: #000;
padding: 0.5em;
margin: 1em 2em 1em 1em;
}
div.note div.example {
border: 1px solid #000;
background-color: inherit;
color: #000;
}
div.example p,
div.note p,
div.example pre,
div.example table {
padding: 0;
margin: 0;
}
.section p {
margin: 0 0 1em 0;
padding: 0;
}
div.note, div.warning {
background-color: #eee;
color: #036;
padding: 0.5em;
margin: 1em 2em 1em 1em;
}
div.warning h3, div.warning p {
background-color: #eee;
color: #036;
padding: 0 !important;
}
div.warning p {
margin: 0 !important;
}
div.warning h3 {
text-align: center;
margin: 0 0 0.5em 0 !important;
}
table div.example, table div.note {
margin-right: 1em;
}
td, th {
empty-cells: show;
}
p.indent {
margin-left: 2em;
margin-top: 1em;
}
blockquote p {
font-style: italic;
margin: 0;
}
blockquote p.cite {
font-style: normal;
margin-top: 0;
margin-left: 2em;
}
blockquote p.cite cite {
font-style: normal;
}
p.figure {
margin-left: 2em;
font-style: italic;
}
p.figure img {
border: 1px solid #aaa;
}
p.figure dfn {
font-weight: bold;
}
/* headings */
/* ====================== */
h1 {
padding: 0.2em;
}
h1, .directive-section h2 {
border: 1px solid #405871;
}
h1, .directive-section h2, .directive-section h2 a,
.directive-section h2 a:hover, .directive-section h2 a:active {
text-decoration: none;
color: #036;
background-color: inherit;
}
.section h2, .directive-section h2 {
padding: 0.2em 0 0.2em 0.7em;
}
.section h2, .section h2 a,
.section h2 a:hover, .section h2 a:active {
background-color: #405871;
color: #fff;
text-decoration: none;
}
h1, .section h2, .directive-section h2 {
margin: 0 0 0.5em 0;
}
h3, h3 a, h3 a:hover, h3 a:active {
background-color: #fff;
color: #036;
text-decoration: none;
}
div.example h3, div.note h3 {
background-color: inherit;
color: #036;
margin: 0 0 0.5em 0;
padding: 0;
text-align: center;
font-size: 1em;
font-weight: bold;
}
/* header & preamble */
/* ====================== */
#preamble, #page-header {
margin-left: 30px;
}
#preamble {
padding-bottom: 1em;
}
#path {
margin: 0.2em 0 1.2em 30px;
padding: 0;
font-size: smaller;
}
#path a:link, #path a:visited {
text-decoration: none;
}
#path a:hover, #path a:active {
text-decoration: underline;
}
#page-header p.apache {
background-color: #405871;
color: #fff;
padding: 0 0 0 248px;
line-height: 29px;
text-align: center;
vertical-align: middle;
margin: 0;
}
#page-header p.menu {
text-align: right;
font-size: smaller;
margin: 30px 0 0.5em 0;
padding: 0;
}
#page-header p.menu a:link, #page-header p.menu a:visited {
text-decoration: none;
}
#page-header p.menu a:hover, #page-header p.menu a:active {
text-decoration: underline;
}
#page-header img {
padding: 0;
display: block;
margin: -70px 0 1px 2em;
width: 248px;
height: 70px;
}
/* up, top and sections */
/* ====================== */
.up {
width: 30px;
height: 20px;
padding: 0;
margin: -20px 0 1px 0;
text-align: center;
vertical-align: top;
}
.up img {
vertical-align: top;
width: 11px;
height: 11px;
}
.top {
float: left;
width: 30px;
padding: 0 0 0 30px;
margin: 0;
}
.top a img {
margin-top: 0.5em;
vertical-align: bottom;
width: 11px;
height: 11px;
}
.top a, .top a:link img, .top a:visited img, .top a:hover img, .top a:active img,
.up a, .up a:link img, .up a:visited img, .up a:hover img, .up a:active img {
border: 0 none;
}
.section, .directive-section {
margin: 0 0 0 60px;
padding: 0;
}
table.bordered table td, table.bordered table th {
border: 0 none;
}
table.bordered td, table.bordered th,
table.bordered table.bordered td, table.bordered table.bordered th {
border: 1px solid #aaa;
padding: 0.2em;
}
.section table, .directive-section table, table.bordered {
border: 1px solid #aaa;
padding: 2px;
}
table.bordered {
border-collapse: collapse;
}
.section table td, .directive-section table td {
vertical-align: top;
text-align: left;
}
div#directive-list {
margin-left: 30px;
padding: 0 0 1em 1em;
}
div#directive-list ul {
margin: 0;
padding: 0;
}
/* lists in general */
/* ====================== */
ul {
list-style-type: disc;
}
ul ul {
list-style-type: square;
}
ol.up-A {
list-style-type: upper-alpha;
}
/* toc */
/* ====================== */
#toc {
margin: 0 0 1em 0;
padding: 0;
}
#toc li {
list-style-type: none;
margin: 0;
padding: 0;
}
#toc li img {
margin-right: 19px;
}
/* see also */
/* ====================== */
.seealso {
margin: 0 0 1em 0;
padding: 0;
}
.seealso li {
list-style-type: none;
margin: 0;
padding: 0 0 0 34px;
}
/* module overview tables */
/* ====================== */
table.module {
border: 1px solid #aaa;
padding: 2px;
margin-top: 0.5em;
margin-bottom: 0;
}
table.module th, table.module td {
text-align: left;
vertical-align: top;
}
table.module th {
font-weight: bold;
}
table.module th a:link, table.module th a:visited {
text-decoration: none;
}
table.module th a:hover, table.module th a:active {
text-decoration: underline;
}
/* directive overview tables */
/* ========================= */
table.directive {
border: 1px solid #aaa;
padding: 2px;
margin-top: 0.5em;
margin-bottom: 0;
}
table.directive th, table.directive td {
text-align: left;
vertical-align: top;
}
table.directive th {
font-weight: bold;
}
table.directive th a:link, table.directive th a:visited {
text-decoration: none;
}
table.directive th a:hover, table.directive th a:active {
text-decoration: underline;
}
/* related stuff */
/* ====================== */
table.related {
border: 1px solid #aaa;
padding: 2px;
margin-top: 0.5em;
margin-bottom: 0;
}
table.related a:link, table.related a:visited {
text-decoration: none;
}
table.related a:hover, table.related a:active {
text-decoration: underline;
}
table.related th {
font-weight: bold;
text-align: left;
vertical-align: middle;
background-color: #e5ecf3;
color: #405871;
padding: 0.2ex 2px;
}
table.related td {
vertical-align: top;
text-align: left;
padding: 0 2px;
}
table.related td ul, table.related td li {
list-style-type: none;
margin: 0;
padding: 0;
}
/* footer */
/* ====================== */
#footer {
margin-left: 30px;
font-size: smaller;
border-top-style: solid;
border-top-width: 1px;
border-color: #405871;
padding-top: 0.2em;
}
#footer .apache {
float: left;
text-align: left;
padding: 0 0 1em 0;
margin-top: 0;
font-weight: bold;
}
#footer .menu {
float: right;
text-align: right;
margin-top: 0;
padding: 0 0 1em 0;
}
#footer p.menu a:link, #footer p.menu a:visited {
text-decoration: none;
}
#footer p.menu a:hover, #footer p.menu a:active {
text-decoration: underline;
}
/* h3 margin adjustment */
/* ====================== */
h3 {
margin: 1.3em 0 0.4em 0;
}
h3 + * {
margin-top: 0;
}
/* IE confuses the + * ... */
ul, .section table, .directive-section table {
margin-bottom: 1em;
}
/* fonts general */
/* ====================== */
pre, code {
font-family: "Courier New", Courier, monospace;
font-weight: normal;
}
body, p, td, th, ul, li, h1, h2, h3, div, #toc, dl, dt, dd {
font-family: Arial, Helvetica, sans-serif;
}
body, p, td, th, ul, li {
font-weight: normal;
}
h1, h2, h3, #page-header p.apache, dt, strong, th {
font-weight: bold;
}
#page-header p.apache
{ font-size: 16px; }
h1 { font-size: 1.5em; }
h2 { font-size: 1.2em; }
h3 { font-size: 1.1em; }
div.example code, div.example pre, div.note pre
{ font-size: 0.9em; }
/* ====================== */
/* The End */
/* ====================== */
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="xml"
encoding="ISO-8859-1"
indent="no"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
/>
<!-- Read the localized messages from the specified language file -->
<xsl:variable name="messages" select="document('en.xml')/messages"/>
<!-- Now get the real guts of the stylesheet -->
<xsl:include href="common.xsl"/>
</xsl:stylesheet>
<?xml version="1.0"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml">
<!-- -->
<!-- Please, don't hard-code output strings! Use the language -->
<!-- files and the translation "stuff"... -->
<!-- -->
<!-- Constants used for case translation -->
<xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'" />
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
<xsl:variable name="path">
<xsl:choose>
<xsl:when test="*/relativepath/@href">
<xsl:value-of select="*/relativepath/@href"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'..'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- -->
<!-- Builds the moduleindex page -->
<!-- -->
<xsl:template match="moduleindex">
<html>
<xsl:call-template name="head"/>
<body>
<xsl:call-template name="top"/>
<div id="preamble">
<h1>
<xsl:value-of select="title"/>
</h1>
<xsl:apply-templates select="summary" />
</div>
<div class="top"><a href="#top"><img src="../images/up.gif" alt="top" /></a></div>
<div class="section">
<h2>
<xsl:value-of select="$messages/[EMAIL PROTECTED]'corefeatures']"/>
</h2>
<dl>
<xsl:for-each select="document(modulefilelist/modulefile)/modulesynopsis">
<xsl:sort select="name"/>
<xsl:if test="status='MPM' or status='Core'">
<dt>
<a href="{name}.html">
<xsl:value-of select="name"/>
</a>
</dt>
<dd>
<xsl:apply-templates select="description"/>
</dd>
</xsl:if>
</xsl:for-each>
</dl>
</div>
<div class="top"><a href="#top"><img src="../images/up.gif" alt="top" /></a></div>
<div class="section">
<h2>
<xsl:value-of select="$messages/[EMAIL PROTECTED]'othermodules']"/>
</h2>
<dl>
<xsl:for-each select="document(modulefilelist/modulefile)/modulesynopsis">
<xsl:sort select="name"/>
<xsl:if test="status!='MPM' and status!='Core'">
<dt>
<a href="{name}.html">
<xsl:value-of select="name"/>
</a>
</dt>
<dd>
<xsl:apply-templates select="description"/>
</dd>
</xsl:if>
</xsl:for-each>
</dl>
</div>
<xsl:call-template name="bottom"/>
</body>
</html>
</xsl:template>
<!-- /moduleindex -->
<!-- -->
<!-- <directiveindex> -->
<!-- Builds the directive index page -->
<!-- -->
<xsl:template match="directiveindex">
<html>
<xsl:call-template name="head"/>
<body>
<xsl:call-template name="top"/>
<div id="preamble">
<h1>
<xsl:value-of select="title"/>
</h1>
<xsl:apply-templates select="summary" />
</div>
<div id="directive-list">
<ul>
<xsl:for-each select="document(modulefilelist/modulefile)/modulesynopsis/directivesynopsis">
<xsl:sort select="name"/>
<xsl:if test="not(@location)">
<li>
<a href="{/modulesynopsis/name}.html#{translate(name,$uppercase,$lowercase)}">
<xsl:value-of select="name"/>
</a>
</li>
</xsl:if>
</xsl:for-each>
</ul>
</div>
<xsl:call-template name="bottom"/>
</body>
</html>
</xsl:template>
<!-- /directiveindex -->
<!-- -->
<!-- <manualpage> -->
<!-- Process an entire document into an HTML page -->
<!-- -->
<xsl:template match="manualpage">
<html>
<xsl:call-template name="head"/>
<body>
<xsl:call-template name="top"/>
<div id="preamble">
<h1><xsl:value-of select="title"/></h1>
<xsl:apply-templates select="summary"/>
<xsl:if test="count(section) > 1">
<ul id="toc">
<xsl:apply-templates select="section" mode="index"/>
</ul>
</xsl:if>
<xsl:if test="seealso">
<h3><xsl:value-of select="$messages/[EMAIL PROTECTED]'seealso']"/></h3>
<ul class="seealso">
<xsl:for-each select="seealso">
<li><xsl:apply-templates/></li>
</xsl:for-each>
</ul>
</xsl:if>
</div> <!-- /preamble -->
<xsl:apply-templates select="section"/>
<xsl:call-template name="bottom"/>
</body>
</html>
</xsl:template>
<!-- /manualpage -->
<!-- -->
<!-- <modulesynopsis> -->
<!-- Process an entire document into an HTML page -->
<!-- -->
<xsl:template match="modulesynopsis">
<html>
<xsl:call-template name="head"/>
<body>
<xsl:call-template name="top"/>
<div id="preamble">
<h1>
<xsl:value-of select="$messages/[EMAIL PROTECTED]'apachemodule']"/>
<xsl:text> </xsl:text>
<xsl:value-of select="name"/>
</h1>
<!-- Description and module-headers -->
<table class="module">
<tr>
<th>
<xsl:value-of select="$messages/[EMAIL PROTECTED]'description']"/>:
</th>
<td>
<xsl:apply-templates select="description"/>
</td>
</tr>
<tr>
<th>
<a href="module-dict.html#Status">
<xsl:value-of select="$messages/[EMAIL PROTECTED]'status']"/>:
</a>
</th>
<td>
<xsl:value-of select="status"/>
</td>
</tr>
<xsl:if test="identifier">
<tr>
<th>
<a href="module-dict.html#ModuleIdentifier">
<xsl:value-of select="$messages/[EMAIL PROTECTED]'moduleidentifier']"/>:
</a>
</th>
<td>
<xsl:value-of select="identifier"/>
</td>
</tr>
</xsl:if>
<xsl:if test="compatibility">
<tr>
<th>
<a href="module-dict.html#Compatibility">
<xsl:value-of select="$messages/[EMAIL PROTECTED]'compatibility']"/>:
</a>
</th>
<td>
<xsl:value-of select="compatibility"/>
</td>
</tr>
</xsl:if>
</table>
<!-- Summary of module features/usage (1 to 3 paragraphs, optional) -->
<xsl:if test="summary">
<h3>
<xsl:value-of select="$messages/[EMAIL PROTECTED]'summary']"/>
</h3>
<xsl:apply-templates select="summary"/>
</xsl:if>
<!-- Index of directives, automatically generated from
directivesynopsis/name -->
<h3>
<xsl:value-of select="$messages/[EMAIL PROTECTED]'directives']"/>
</h3>
<xsl:if test="directivesynopsis">
<ul id="toc">
<xsl:for-each select="directivesynopsis">
<xsl:sort select="name"/>
<xsl:variable name="name">
<xsl:value-of select="name"/>
</xsl:variable>
<xsl:variable name="lowername" select="translate($name, $uppercase, $lowercase)" />
<xsl:if test="not(@location)">
<li><img src="{$path}/images/down.gif" alt="" /> <a href="#{$lowername}">
<xsl:value-of select="name"/>
</a>
</li>
</xsl:if>
<xsl:if test="./@location">
<xsl:variable name="location">
<xsl:value-of select="./@location"/>
</xsl:variable>
<xsl:variable name="lowerlocation" select="translate($location, $uppercase, $lowercase)" />
<li><img src="{$path}/images/down.gif" alt="" /> <a href="{$lowerlocation}.html#{$lowername}">
<xsl:value-of select="name"/>
</a>
</li>
</xsl:if>
</xsl:for-each>
</ul>
</xsl:if>
<xsl:if test="not(directivesynopsis)">
<p>
<xsl:value-of select="$messages/[EMAIL PROTECTED]'nodirectives']"/>
</p>
</xsl:if>
<xsl:if test="seealso">
<h3>
<xsl:value-of select="$messages/[EMAIL PROTECTED]'seealso']"/>
</h3>
<ul class="seealso">
<xsl:for-each select="seealso">
<li>
<xsl:apply-templates/>
</li>
</xsl:for-each>
</ul>
</xsl:if>
</div> <!-- /preamble -->
<!-- Sections of documentation about the module as a whole -->
<xsl:apply-templates select="section"/>
<!-- Directive documentation -->
<xsl:apply-templates select="directivesynopsis">
<xsl:sort select="name"/>
</xsl:apply-templates>
<xsl:call-template name="bottom"/>
</body>
</html>
</xsl:template>
<!-- /modulesynopsis -->
<!-- -->
<!-- Utility templates for constructing pages -->
<!-- -->
<xsl:template name="head">
<head>
<xsl:comment>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
</xsl:comment>
<title>
<xsl:choose>
<xsl:when test="name">
<xsl:value-of select="name"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="title"/>
</xsl:otherwise>
</xsl:choose>
<xsl:text> </xsl:text>
<xsl:value-of select="$messages/[EMAIL PROTECTED]'apachetitle']"/>
</title>
<link rel="stylesheet" type="text/css" href="{$path}/style/manual-nonn.css" media="all" />
</head>
</xsl:template>
<xsl:template name="top">
<div id="page-header">
<p class="menu">
<a href="{$path}/mod/">Modules</a> |
<a href="{$path}/mod/directives.html">Directives</a> |
<a href="{$path}/faq/">FAQ</a> |
<a href="{$path}/glossary.html">Glossary</a> |
<a href="{$path}/sitemap.html">Sitemap</a>
</p>
<p class="apache"><xsl:value-of select="$messages/[EMAIL PROTECTED]'apachehttpserver']"/></p>
<img src="{$path}/images/feather.gif" alt="" />
</div> <!-- /page-header -->
<div class="up"><a href="./"><img src="{$path}/images/left.gif" alt="up" title="go up in hierarchy" /></a>
</div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> >
<a href="http://httpd.apache.org/">HTTP Server</a> >
<a href="http://httpd.apache.org/docs-project/">Documentation</a> >
<a href="{$path}/">Version 2.0</a>
</div>
</xsl:template>
<xsl:template name="bottom">
<div id="footer">
<p class="apache">
Maintained by the <a href="http://httpd.apache.org/docs-project/">Apache
HTTP Server Documentation Project</a>
</p>
<p class="menu">
<a href="{$path}/mod/">Modules</a> |
<a href="{$path}/mod/directives.html">Directives</a> |
<a href="{$path}/faq/">FAQ</a> |
<a href="{$path}/glossary.html">Glossary</a> |
<a href="{$path}/sitemap.html">Sitemap</a>
</p>
</div>
</xsl:template>
<!-- -->
<!-- Sections and Subsections -->
<!-- -->
<!-- Subsections: get a lower level heading -->
<xsl:template match="section/section">
<xsl:variable name="href">
<xsl:value-of select="@id"/>
</xsl:variable>
<!-- Section heading -->
<xsl:if test="@id">
<h3>
<a id="{$href}" name="{$href}">
<xsl:apply-templates select="./title" mode="print"/>
</a>
</h3>
</xsl:if>
<xsl:if test="not(@id)">
<h3>
<xsl:apply-templates select="./title" mode="print"/>
</h3>
</xsl:if>
<!-- Section body -->
<xsl:apply-templates/>
</xsl:template>
<!-- Process a documentation section -->
<xsl:template match="section">
<xsl:variable name="href">
<xsl:value-of select="@id"/>
</xsl:variable>
<div class="top"><a href="#top"><img src="{$path}/images/up.gif" alt="top" /></a></div>
<div class="section">
<!-- Section heading -->
<xsl:if test="@id">
<h2>
<a id="{$href}" name="{$href}">
<xsl:apply-templates select="./title" mode="print"/>
</a>
</h2>
</xsl:if>
<xsl:if test="not(@id)">
<h2>
<xsl:apply-templates select="./title" mode="print"/>
</h2>
</xsl:if>
<!-- Section body -->
<xsl:apply-templates/>
</div><!-- /section -->
</xsl:template>
<xsl:template match="section/title" mode="print">
<xsl:apply-templates/>
</xsl:template>
<!-- Don't print the title twice -->
<xsl:template match="section/title">
</xsl:template>
<xsl:template match="section" mode="index">
<xsl:variable name="href">
<xsl:value-of select="@id"/>
</xsl:variable>
<li><img src="{$path}/images/down.gif" alt="" /> <a href="#{$href}">
<xsl:apply-templates select="title" mode="print"/>
</a>
</li>
</xsl:template>
<!-- -->
<!-- Directivesynopsis -->
<!-- -->
<xsl:template match="directivesynopsis">
<xsl:if test="not(@location)">
<div class="top"><a href="#top"><img src="../images/up.gif" alt="top" /></a></div>
<div class="directive-section">
<xsl:variable name="name">
<xsl:value-of select="./name"/>
</xsl:variable>
<xsl:variable name="lowername" select="translate($name, $uppercase, $lowercase)" />
<!-- Directive heading gets both mixed case and lowercase anchors,
and includes lt/gt only for "section" directives -->
<h2>
<a id="{$name}" name="{$name}">
<xsl:if test="./@type='section'"><</xsl:if>
<xsl:value-of select="./name"/>
<xsl:if test="./@type='section'">></xsl:if>
</a>
<xsl:text> </xsl:text>
<a id="{$lowername}" name="{$lowername}">
<xsl:value-of select="$messages/[EMAIL PROTECTED]'directive']"/>
</a>
</h2>
<!-- Directive header -->
<table class="directive">
<tr>
<th>
<xsl:value-of select="$messages/[EMAIL PROTECTED]'description']"/>:
</th>
<td>
<xsl:value-of select="description"/>
</td>
</tr>
<tr>
<th>
<a href="directive-dict.html#Syntax">
<xsl:value-of select="$messages/[EMAIL PROTECTED]'syntax']"/>:
</a>
</th>
<td>
<xsl:apply-templates select="syntax"/>
</td>
</tr>
<xsl:if test="default">
<tr>
<th>
<a href="directive-dict.html#Default">
<xsl:value-of select="$messages/[EMAIL PROTECTED]'default']"/>:
</a>
</th>
<td>
<code>
<xsl:value-of select="default"/>
</code>
</td>
</tr>
</xsl:if>
<tr>
<th>
<a href="directive-dict.html#Context">
<xsl:value-of select="$messages/[EMAIL PROTECTED]'context']"/>:
</a>
</th>
<td>
<xsl:apply-templates select="contextlist"/>
</td>
</tr>
<xsl:if test="override">
<tr>
<th>
<a href="directive-dict.html#Override">
<xsl:value-of select="$messages/[EMAIL PROTECTED]'override']"/>:
</a>
</th>
<td>
<xsl:value-of select="override"/>
</td>
</tr>
</xsl:if>
<tr>
<th>
<a href="directive-dict.html#Status">
<xsl:value-of select="$messages/[EMAIL PROTECTED]'status']"/>:
</a>
</th>
<td>
<xsl:value-of select="/modulesynopsis/status"/>
</td>
</tr>
<tr>
<th>
<a href="directive-dict.html#Module">
<xsl:value-of select="$messages/[EMAIL PROTECTED]'module']"/>:
</a>
</th>
<td>
<xsl:if test="modulelist">
<xsl:apply-templates select="modulelist"/>
</xsl:if>
<xsl:if test="not(modulelist)">
<xsl:value-of select="/modulesynopsis/name"/>
</xsl:if>
</td>
</tr>
<xsl:if test="compatibility">
<tr>
<th>
<a href="directive-dict.html#Compatibility">
<xsl:value-of select="$messages/[EMAIL PROTECTED]'compatibility']"/>:
</a>
</th>
<td>
<xsl:value-of select="compatibility"/>
</td>
</tr>
</xsl:if>
</table>
<xsl:apply-templates select="usage"/>
<xsl:if test="seealso">
<h3>
<xsl:value-of select="$messages/[EMAIL PROTECTED]'seealso']"/>
</h3>
<ul>
<xsl:for-each select="seealso">
<li>
<xsl:apply-templates/>
</li>
</xsl:for-each>
</ul>
</xsl:if>
</div>
</xsl:if> <!-- not(@location) -->
</xsl:template>
<!-- /directivesynopsis -->
<!-- -->
<!-- <contextlist> -->
<!-- Passes through content -->
<!-- -->
<xsl:template match="contextlist">
<xsl:apply-templates select="context"/>
</xsl:template>
<!-- /contextlist -->
<!-- -->
<!-- <context> -->
<!-- Each entry is separeted with a comma -->
<!-- -->
<xsl:template match="context">
<xsl:value-of select="." />
<xsl:if test="not(position()=last())">, </xsl:if>
</xsl:template>
<!-- /context -->
<!-- -->
<!-- <modulelist> -->
<!-- Passes through content -->
<!-- -->
<xsl:template match="modulelist">
<xsl:for-each select="module">
<xsl:call-template name="module"/>
<xsl:if test="not(position()=last())">, </xsl:if>
</xsl:for-each>
</xsl:template>
<!-- /modulelist -->
<!-- -->
<!-- <example> -->
<!-- Examples are set in a "colored" table. -->
<!-- -->
<xsl:template match="example">
<div class="example">
<xsl:apply-templates select="title" mode="print"/>
<xsl:if test="pre">
<pre>
<xsl:value-of select="pre"/>
</pre>
</xsl:if>
<xsl:if test="not(pre)">
<xsl:if test="table">
<xsl:apply-templates/>
</xsl:if>
<xsl:if test="not(table)">
<p><code>
<xsl:apply-templates/>
</code></p>
</xsl:if>
</xsl:if>
</div>
</xsl:template>
<!-- /example -->
<xsl:template match="example/pre">
</xsl:template>
<!-- -->
<!-- <example><title> -->
<!-- -->
<xsl:template match="example/title" mode="print">
<h3>
<xsl:apply-templates/>
</h3>
</xsl:template>
<!-- /example/title -->
<!-- -->
<!-- <example><title> -->
<!-- -->
<xsl:template match="example/title">
</xsl:template>
<!-- /example/title -->
<!-- -->
<!-- <note> -->
<!-- Notes are placed in a table. Uses different back- -->
<!-- ground colors, depending on type of note. -->
<!-- -->
<xsl:template match="note">
<xsl:choose>
<xsl:when test="@type='warning'">
<div class="warning">
<xsl:apply-templates/>
</div>
</xsl:when>
<xsl:otherwise>
<div class="note">
<xsl:apply-templates/>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- /note -->
<!-- -->
<!-- <note><title> -->
<!-- -->
<xsl:template match="note/title">
<h3>
<xsl:apply-templates/>
</h3>
</xsl:template>
<!-- /note/title -->
<!-- -->
<!-- <directive> -->
<!-- Inserts link to another directive, which might be -->
<!-- in another module. References are converted into -->
<!-- lower case. -->
<!-- -->
<xsl:template match="directive" name="directive">
<xsl:if test="@module">
<xsl:variable name="module">
<xsl:value-of select="./@module"/>
</xsl:variable>
<xsl:variable name="directive">
<xsl:value-of select="."/>
</xsl:variable>
<xsl:variable name="lowerdirective" select="translate($directive, $uppercase, $lowercase)" />
<xsl:choose>
<xsl:when test="@module=/modulesynopsis/name">
<code class="directive">
<a href="#{$lowerdirective}">
<xsl:if test="./@type='section'"><</xsl:if>
<xsl:value-of select="."/>
<xsl:if test="./@type='section'">></xsl:if>
</a>
</code>
</xsl:when>
<xsl:otherwise>
<code class="directive">
<a href="{$path}/mod/{$module}.html#{$lowerdirective}">
<xsl:if test="./@type='section'"><</xsl:if>
<xsl:value-of select="."/>
<xsl:if test="./@type='section'">></xsl:if>
</a>
</code>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:if test="not(@module)">
<code class="directive">
<xsl:if test="./@type='section'"><</xsl:if>
<xsl:value-of select="."/>
<xsl:if test="./@type='section'">></xsl:if>
</code>
</xsl:if>
</xsl:template>
<!-- /directive -->
<!-- -->
<!-- <module> -->
<!-- Inserts a link to refereed module -->
<!-- -->
<xsl:template match="module" name="module">
<code class="module">
<a href="{$path}/mod/{.}.html">
<xsl:value-of select="."/>
</a>
</code>
</xsl:template>
<!-- /module -->
<!-- -->
<!-- <related> -->
<!-- -->
<xsl:template match="related">
<table class="related">
<tr><th><xsl:value-of select="$messages/[EMAIL PROTECTED]'relatedmodules']"/></th>
<th><xsl:value-of select="$messages/[EMAIL PROTECTED]'relateddirectives']"/></th></tr>
<tr><td>
<xsl:if test="count(modulelist/*) > 0">
<ul>
<xsl:apply-templates select="modulelist"/>
</ul>
</xsl:if>
</td>
<td>
<xsl:if test="count(directivelist/*) > 0">
<ul>
<xsl:apply-templates select="directivelist"/>
</ul>
</xsl:if>
</td></tr>
</table>
</xsl:template>
<!-- /related -->
<xsl:template match="related/modulelist">
<xsl:for-each select="module">
<li>
<xsl:call-template name="module"/>
</li>
</xsl:for-each>
</xsl:template>
<xsl:template match="related/directivelist">
<xsl:for-each select="directive">
<li>
<xsl:call-template name="directive"/>
</li>
</xsl:for-each>
</xsl:template>
<!-- -->
<!-- <summary> -->
<!-- Passes through content -->
<!-- -->
<xsl:template match="summary">
<xsl:apply-templates/>
</xsl:template>
<!-- /summary -->
<!-- -->
<!-- <description> -->
<!-- Passes through content -->
<!-- -->
<xsl:template match="description">
<xsl:apply-templates/>
</xsl:template>
<!-- /description -->
<!-- -->
<!-- <usage> -->
<!-- Passes through content -->
<!-- -->
<xsl:template match="usage">
<xsl:apply-templates/>
</xsl:template>
<!-- /usage -->
<!-- -->
<!-- <syntax> -->
<!-- Passes through content -->
<!-- -->
<xsl:template match="syntax">
<xsl:apply-templates/>
</xsl:template>
<!-- /syntax -->
<!-- -->
<!-- <table border> -->
<!-- -->
<xsl:template match="table">
<xsl:if test="@border">
<table class="bordered">
<xsl:apply-templates/>
</table>
</xsl:if>
<xsl:if test="not(@border)">
<table>
<xsl:apply-templates/>
</table>
</xsl:if>
</xsl:template>
<!-- -->
<!-- <ol type -->
<!-- -->
<xsl:template match="ol">
<xsl:if test="@type = 'A'">
<ol class="up-A">
<xsl:apply-templates/>
</ol>
</xsl:if>
<xsl:if test="not(@type)">
<ol>
<xsl:apply-templates/>
</ol>
</xsl:if>
</xsl:template>
<!-- -->
<!-- Process everything else by just passing it through -->
<!-- -->
<xsl:template match="*|@*">
<xsl:copy>
<xsl:apply-templates select="@*|*|text()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]