[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]