techtonik Mon Oct 18 16:28:10 2004 EDT
Modified files: /phpdoc/xsl htmlhelp.xsl Log: New xCHM PHPDOC template based on version 1.66.1 of DocBook XSL. May need some customizations from older templates to be revised and added.
http://cvs.php.net/diff.php/phpdoc/xsl/htmlhelp.xsl?r1=1.1&r2=1.2&ty=u Index: phpdoc/xsl/htmlhelp.xsl diff -u phpdoc/xsl/htmlhelp.xsl:1.1 phpdoc/xsl/htmlhelp.xsl:1.2 --- phpdoc/xsl/htmlhelp.xsl:1.1 Mon Oct 18 16:20:32 2004 +++ phpdoc/xsl/htmlhelp.xsl Mon Oct 18 16:28:10 2004 @@ -1,59 +1,310 @@ -<?xml version="1.0" encoding="iso-8859-1"?> +<?xml version="1.0"?> <!-- HTML Help specific stylesheet - $Id: htmlhelp.xsl,v 1.1 2004/10/18 20:20:32 techtonik Exp $ + $Id: htmlhelp.xsl,v 1.2 2004/10/18 20:28:10 techtonik Exp $ --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:stbl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Table" - xmlns:xtbl="com.nwalsh.xalan.Table" - exclude-result-prefixes="stbl xtbl" - version="1.0"> + xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" + xmlns:exsl="http://exslt.org/common" + xmlns:set="http://exslt.org/sets" + version="1.0" + exclude-result-prefixes="doc exsl set"> -<xsl:import href="htmlhelp-db.xsl"/> -<xsl:import href="html-common.xsl"/> +<!-- - BASED ON 1.66.1 HTMLHELP.XSL DOCBOOK XSL STYLESHEET - --> +<xsl:import href="./docbook/html/chunk.xsl"/> +<xsl:import href="./docbook/htmlhelp/htmlhelp-common.xsl"/> + +<!-- configure/able/ parameters --> <xsl:include href="htmlhelp-config.xsl"/> + <xsl:param name="base.dir" select="'htmlhelp/html/'"/> +<!-- project files for HTML Help are written into base.dir instead of current directory --> +<xsl:param name="manifest.in.base.dir" select="1"/> <xsl:param name="use.id.as.filename" select="1"/> -<xsl:param name="saxon.character.representation" select="'native'"/> -<xsl:param name="ulink.target" select="'_blank'"/> +<!-- Supress the ",figure,example,equation" (like DSSSL output). --> +<xsl:param name="generate.toc"> +appendix toc,title +article toc +book toc,title +chapter toc,title +part toc,title +preface toc +qandadiv toc +qandaset toc +reference toc,title +sect1 toc +sect2 toc +sect3 toc +sect4 toc +sect5 toc +section toc +set toc +</xsl:param> + + +<!-- *************** HTML HELP PROJECT PARAMETERS **************** --> +<!-- Turn off Binary TOC used Prev/Next buttons on toolbar. Files with binary TOC can't be merged --> +<xsl:param name="htmlhelp.hhc.binary" select="0"/> +<xsl:param name="htmlhelp.generate.index" select="1"/> +<xsl:param name="htmlhelp.use.hhk" select="1"/> +<!-- <xsl:param name="htmlhelp.use.hhk" select="1"/> doesn't work --> + +<xsl:param name="htmlhelp.display.progress" select="0"/> +<xsl:param name="htmlhelp.default.topic" select="'_index.html'"/> +<xsl:param name="htmlhelp.hhp.window" select="'phpdoc'"/> +<xsl:param name="htmlhelp.enhanced.decompilation" select="1"/> + +<xsl:param name="htmlhelp.hhc.folders.instead.books" select="0"/> +<xsl:param name="htmlhelp.hhc.show.root" select="0"/> + + +<!-- <xsl:with-param name="xnavigation" select="'0x23520'"/> --> +<xsl:param name="htmlhelp.show.menu" select="0"/> +<xsl:param name="htmlhelp.show.toolbar.text" select="1"/> +<xsl:param name="htmlhelp.show.advanced.search" select="1"/> +<xsl:param name="htmlhelp.show.favorities" select="1"/> + +<!-- <xsl:with-param name="xbuttons" select="'0x386e'"/> --> +<!-- 0x4387E with additional stop and php.net buttons --> +<xsl:param name="htmlhelp.button.hideshow" select="1"/> +<xsl:param name="htmlhelp.button.locate" select="1"/> +<xsl:param name="htmlhelp.button.back" select="1"/> +<xsl:param name="htmlhelp.button.forward" select="1"/> +<!-- next two buttons are questionable --> +<xsl:param name="htmlhelp.button.stop" select="1"/> +<xsl:param name="htmlhelp.button.refresh" select="1"/> +<xsl:param name="htmlhelp.button.home" select="1"/> +<xsl:param name="htmlhelp.button.options" select="1"/> +<xsl:param name="htmlhelp.button.print" select="1"/> +<!-- next jump button can be discussed too --> +<xsl:param name="htmlhelp.button.jump1" select="1"/> +<xsl:param name="htmlhelp.button.jump1.url" select="'http://www.php.net'"/> +<xsl:param name="htmlhelp.button.jump1.title" select="'PHP.NET'"/> +<xsl:param name="htmlhelp.button.next" select="0"/> +<xsl:param name="htmlhelp.button.prev" select="0"/> +<xsl:param name="htmlhelp.button.zoom" select="0"/> + + + +<!-- *************** HTML HELP INDEX CUSTOMIZINGS (HHK) **************** --> + +<!-- compile custom index file (.hhk) and insert two additional files into + index structure. These will be created later by splitting result title + page with contents in two --> +<xsl:template match="book" mode="hhk"> + <xsl:variable name="title"> + <xsl:apply-templates select="." mode="title.markup"/> + </xsl:variable> + <xsl:variable name="bookhref"> + <xsl:call-template name="href.target"/> + </xsl:variable> + <xsl:text> + </xsl:text> + <li><object type="text/sitemap"> + <param name="Name" value="{normalize-space($title)}"/> + <param name="Local" value="_index.html"/> + </object></li> + <xsl:text> + </xsl:text> + <li><object type="text/sitemap"> + <param name="Name" value="{normalize-space($title)}"/> + <param name="Local" value="{$bookhref}"/> + </object></li> + <xsl:apply-templates select="part|preface|chapter|appendix|article|reference|bibliography|colophon" + mode="hhk"/> +</xsl:template> + +<xsl:template match="part|preface|chapter|appendix|article|reference|refentry + |sect1|sect2|sect3|sect4|sect5 + |section + |book/glossary|article/glossary + |book/bibliography|article/bibliography + |colophon" + mode="hhk"> + <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable> + <xsl:if test="$ischunk='1'"> + <xsl:variable name="title"> + <xsl:apply-templates select="." mode="title.markup"/> + </xsl:variable> + <xsl:variable name="filename"> + <xsl:call-template name="make-relative-filename"> + <xsl:with-param name="base.dir" select="''"/> + <xsl:with-param name="base.name"> + <xsl:apply-templates mode="chunk-filename" select="."/> + </xsl:with-param> + </xsl:call-template> + </xsl:variable> + <xsl:text> + </xsl:text> + <li><object type="text/sitemap"> + <param name="Name" value="{normalize-space($title)}"/> + <param name="Local" value="{$filename}"/> + </object></li> + </xsl:if> -<!-- ====================================================================== - Custom XSL code for PHP CHM Manual - --> + <xsl:apply-templates select="*" mode="hhk"/> +</xsl:template> -<!-- Custom head content to make HTML files *small* --> -<xsl:template name="head.content"> - <xsl:param name="node" select="."/> +<xsl:template name="hhk"> + <xsl:call-template name="write.chunk"> + <xsl:with-param name="filename"> + <xsl:if test="$manifest.in.base.dir != 0"> + <xsl:value-of select="$base.dir"/> + </xsl:if> + <xsl:value-of select="$htmlhelp.hhk"/> + </xsl:with-param> + <xsl:with-param name="indent" select="'yes'"/> + <xsl:with-param name="content"><xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<HTML> +<HEAD> +<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1"> +<!-- Sitemap 1.0 --> +</HEAD><BODY> +<OBJECT type="text/site properties"> + <param name="Window Styles" value="0x800227"> +</OBJECT> - <title> - <xsl:apply-templates select="$node" mode="object.title.markup.textonly"/> - </title> - <script language="JavaScript1.2" src="_script.js"></script> +<UL>]]></xsl:text> +<xsl:if test="($htmlhelp.use.hhk != 0) and $htmlhelp.generate.index"> + <xsl:choose> + <xsl:when test="$rootid != ''"> + <xsl:apply-templates select="key('id',$rootid)" mode="hhk"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="/" mode="hhk"/> + </xsl:otherwise> + </xsl:choose> +</xsl:if> +<xsl:text disable-output-escaping="yes"><![CDATA[</UL> +</BODY></HTML>]]></xsl:text> + </xsl:with-param> + <xsl:with-param name="encoding" select="$htmlhelp.encoding"/> + </xsl:call-template> +</xsl:template> + +<!-- Setup style for TOC window --> +<xsl:template name="hhc-main"> + <xsl:text disable-output-escaping="yes"><![CDATA[<HTML> +<HEAD></HEAD> +<BODY> + +<OBJECT type="text/site properties"> + <param name="Window Styles" value="0x800227"/> +]]></xsl:text> + <xsl:if test="$htmlhelp.hhc.folders.instead.books != 0"> + <param name="ImageType" value="Folder"/> + </xsl:if> + <xsl:text disable-output-escaping="yes"><![CDATA[</OBJECT> + +<UL>]]></xsl:text> + <xsl:choose> + <xsl:when test="$rootid != ''"> + <xsl:apply-templates select="key('id',$rootid)" mode="hhc"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="/" mode="hhc"/> + </xsl:otherwise> + </xsl:choose> + + <xsl:text disable-output-escaping="yes"><![CDATA[</UL></BODY> +</HTML>]]></xsl:text> </xsl:template> -<!-- We need quite different body attributes than the defaults --> -<xsl:template name="body.attributes"> - <xsl:attribute name="onload">displayPage();</xsl:attribute> - <xsl:attribute name="oncontextmenu">if(prefs_context_override){return false;}</xsl:attribute> +<xsl:template match="book" mode="hhc"> + <xsl:variable name="title"> + <xsl:if test="$htmlhelp.autolabel=1"> + <xsl:variable name="label.markup"> + <xsl:apply-templates select="." mode="label.markup"/> + </xsl:variable> + <xsl:if test="normalize-space($label.markup)"> + <xsl:value-of select="concat($label.markup,$autotoc.label.separator)"/> + </xsl:if> + </xsl:if> + <xsl:apply-templates select="." mode="title.markup"/> + </xsl:variable> + <xsl:variable name="href"> + <xsl:call-template name="href.target"/> + </xsl:variable> + <xsl:text> + </xsl:text> + <li><object type="text/sitemap"> + <param name="Name" value="{normalize-space($title)}"/> + <param name="Local" value="_index.html"/> + </object></li> + <xsl:text> + </xsl:text> + <li><object type="text/sitemap"> + <param name="Name" value="{normalize-space($title)}"/> + <param name="Local" value="{$href}"/> + </object></li> + <xsl:text> + </xsl:text> + + <xsl:apply-templates select="part|reference|preface|chapter|bibliography|appendix|article|colophon|glossary" + mode="hhc"/> +</xsl:template> + + +<!-- [Next template is temporarily until patch to 1.66.1 is approved] --> +<!-- https://sourceforge.net/tracker/index.php?func=detail&aid=1048856&group_id=21935&atid=373749 --> +<xsl:template name="hhc"> + <xsl:call-template name="write.chunk"> + <xsl:with-param name="filename"> + <xsl:if test="$manifest.in.base.dir != 0"> + <xsl:value-of select="$base.dir"/> + </xsl:if> + <xsl:value-of select="$htmlhelp.hhc"/> + </xsl:with-param> + <xsl:with-param name="indent" select="'yes'"/> + <xsl:with-param name="content"> + <xsl:call-template name="hhc-main"/> + </xsl:with-param> + <xsl:with-param name="encoding" select="$htmlhelp.encoding"/> + </xsl:call-template> </xsl:template> -<!-- Our HTML head part is *extra* slim --> + +<xsl:param name="htmlhelp.only" select="1"/> +<!-- +<xsl:param name="htmlhelp.only" select="1"/> +htmlhelp.autolabel - chapter and section numbers in ToC - off + + --> + + +<!-- *************** HH HTML FILES CUSTOMIZATIONS **************** --> +<xsl:param name="label.from.part" select="1"/> + +<!-- *extra* slim HTML head from older templates to strip <link> tags --> <xsl:template name="html.head"> <head> + <xsl:call-template name="system.head.content"/> <xsl:call-template name="head.content"/> + <xsl:call-template name="user.head.content"/> </head> </xsl:template> -<!-- We need no header navigation (we'll need footer, so this is - why I have not used supress.navigation=1) --> -<xsl:template name="header.navigation" /> +<xsl:template name="user.head.content"> + <xsl:param name="node" select="."/> + <script language="JavaScript1.2" src="_script.js"></script> +</xsl:template> + +<!-- We need quite different body attributes than the defaults --> +<xsl:template name="body.attributes"> + <xsl:attribute name="onload">displayPage();</xsl:attribute> + <xsl:attribute name="oncontextmenu">if(prefs_context_override){return false;}</xsl:attribute> +</xsl:template> + +<!-- We need no header navigation, but we'll need footer --> +<xsl:param name="suppress.navigation" select="0"/> +<xsl:param name="suppress.header.navigation" select="1"/> <!-- Footer part with special table for our special needs ;) --> <xsl:template name="footer.navigation"> @@ -70,7 +321,7 @@ <div id="pageNav"> <table width="100%" border="0" cellspacing="10" cellpadding="0" class="navigation"> <tr align="left" valign="middle"> - <td> + <td width="30%"> <xsl:if test="count($prev)>0"> <span id="navPrev"> <a accesskey="p"> @@ -80,19 +331,19 @@ </xsl:call-template> </xsl:attribute> <xsl:text><< </xsl:text> - <xsl:apply-templates select="$prev" mode="phpdoc.object.title"/> + <xsl:apply-templates select="$prev" mode="title.markup"/> </a> </span> </xsl:if> </td> - <td align="center"> + <td align="center" width="40%"> <span id="navPath"> <xsl:apply-templates select="." mode="path.to.this.page"> <xsl:with-param name="actpage" select="true()"/> </xsl:apply-templates> </span> </td> - <td align="right"> + <td align="right" width="30%"> <xsl:if test="count($next)>0"> <span id="navNext"> <a accesskey="n"> @@ -101,7 +352,7 @@ <xsl:with-param name="object" select="$next"/> </xsl:call-template> </xsl:attribute> - <xsl:apply-templates select="$next" mode="phpdoc.object.title"/> + <xsl:apply-templates select="$next" mode="title.markup"/> <xsl:text> >></xsl:text> </a> </span> @@ -121,7 +372,7 @@ </div> </xsl:template> -<!-- Try to figure out the path to this page from the main page --> +<!-- Building path to this page from the main page --> <xsl:template match="*" mode="path.to.this.page"> <xsl:param name="actpage" select="false()"/> <xsl:variable name="up" select="parent::*"/> @@ -138,7 +389,7 @@ <xsl:variable name="object.title"> <xsl:choose> <xsl:when test="count($up)>0"> - <xsl:apply-templates select="." mode="phpdoc.object.title"/> + <xsl:apply-templates select="." mode="title.markup"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="'Main'"/> @@ -165,280 +416,15 @@ </xsl:choose> </xsl:template> -<!-- This is the same as in DocBook XSL, except that we - print out a » HTML entity before the link and add - a CSS class to the link --> -<xsl:template match="ulink" name="ulink"> - <a class="ulink"> - <xsl:if test="@id"> - <xsl:attribute name="name"> - <xsl:value-of select="@id"/> - </xsl:attribute> - </xsl:if> - <xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute> - <xsl:if test="$ulink.target != ''"> - <xsl:attribute name="target"> - <xsl:value-of select="$ulink.target"/> - </xsl:attribute> - </xsl:if> - <xsl:text disable-output-escaping="yes">&raquo; </xsl:text> - <xsl:choose> - <xsl:when test="count(child::node())=0"> - <xsl:value-of select="@url"/> - </xsl:when> - <xsl:otherwise> - <xsl:apply-templates/> - </xsl:otherwise> - </xsl:choose> - </a> -</xsl:template> - -<!-- Special reference page formatting for HH --> - -<!-- Function page sample: -<h2 class="subheader">Format a local time/date. (PHP 3, PHP 4 >= 4.0.0)<br> -Usage: string date (string format, int [timestamp])<br></h2> ---> -<xsl:template match="refnamediv"> - <div class="{name(.)}"> - <xsl:call-template name="anchor"/> - <h2 class="subheader"> - <span id="funcPurpose"><xsl:value-of select="./refpurpose"/></span> - (<span id="funcAvail"><xsl:value-of select="$version/[EMAIL PROTECTED](current()/refname)]/@from"/></span>) - <br/> - <span id="funcUsage"><xsl:apply-templates select="../refsect1/methodsynopsis" mode="htmlhelp.methodsyn"/></span> - </h2> - </div> -</xsl:template> - -<!-- Drop out constant "Description" --> -<xsl:template match="refsect1/title"/> -<xsl:template match="refsect1/refpurpose"/> - -<!-- Avoid printout of methosyns, where we do not want them, - but print out them in header --> -<xsl:template match="methodsynopsis"/> -<xsl:template match="methodsynopsis" mode="htmlhelp.methodsyn"> - <xsl:apply-templates select="." mode="php"/><br/> -</xsl:template> - -<!-- do not enclose <methodname> in a <tt> --> -<xsl:template match="methodname"> - <xsl:call-template name="inline.charseq"/> -</xsl:template> - -<!-- Use simple bold text for admonitions --> -<xsl:template name="nongraphical.admonition"> - <div class="{name(.)}"> - <xsl:if test="$admon.style"> - <xsl:attribute name="style"> - <xsl:value-of select="$admon.style"/> - </xsl:attribute> - </xsl:if> - - <b> - <xsl:call-template name="anchor"/> - <xsl:apply-templates select="." mode="object.title.markup"/> - <xsl:text>: </xsl:text> - </b> - - <xsl:apply-templates/> - </div> -</xsl:template> - -<!-- Different table formatting for default simplelist --> -<xsl:template match="simplelist"> - <!-- with no type specified, the default is 'vert' --> - <xsl:call-template name="anchor"/> - <table border="0" cellspacing="1" cellpadding="2" class="datatable"> - <xsl:call-template name="simplelist.vert"> - <xsl:with-param name="cols"> - <xsl:choose> - <xsl:when test="@columns"> - <xsl:value-of select="@columns"/> - </xsl:when> - <xsl:otherwise>1</xsl:otherwise> - </xsl:choose> - </xsl:with-param> - </xsl:call-template> - </table> -</xsl:template> - -<!-- This is a copy from tables.xsl, except that we have different - attributes for table than the default style sheets, provided - here in the second line literally, and as a default 0 border --> -<xsl:template match="tgroup"> - <table cellspacing="1" cellpadding="2" class="datatable"> - <xsl:choose> - <!-- If there's a <?dbhtml table-summary="foo"?> PI, use it for - the HTML table summary attribute --> - <xsl:when test="processing-instruction('dbhtml')"> - <xsl:variable name="summary"> - <xsl:call-template name="dbhtml-attribute"> - <xsl:with-param name="pis" - select="processing-instruction('dbhtml')[1]"/> - <xsl:with-param name="attribute" select="'table-summary'"/> - </xsl:call-template> - </xsl:variable> - <xsl:if test="$summary != ''"> - <xsl:attribute name="summary"> - <xsl:value-of select="$summary"/> - </xsl:attribute> - </xsl:if> - </xsl:when> - <!-- Otherwise, if there's a title, use that --> - <xsl:when test="../title"> - <xsl:attribute name="summary"> - <xsl:value-of select="string(../title)"/> - </xsl:attribute> - </xsl:when> - <!-- Otherwise, forget the whole idea --> - <xsl:otherwise><!-- nevermind --></xsl:otherwise> - </xsl:choose> - - <xsl:if test="../@pgwide=1"> - <xsl:attribute name="width">100%</xsl:attribute> - </xsl:if> - - <xsl:choose> - <xsl:when test="../@frame='none'"> - <xsl:attribute name="border">0</xsl:attribute> - </xsl:when> - <xsl:when test="$table.borders.with.css != 0"> - <xsl:attribute name="border">0</xsl:attribute> - <xsl:choose> - <xsl:when test="../@frame='topbot' or ../@frame='top'"> - <xsl:attribute name="style"> - <xsl:call-template name="border"> - <xsl:with-param name="side" select="'top'"/> - </xsl:call-template> - </xsl:attribute> - </xsl:when> - <xsl:when test="../@frame='sides'"> - <xsl:attribute name="style"> - <xsl:call-template name="border"> - <xsl:with-param name="side" select="'left'"/> - </xsl:call-template> - <xsl:call-template name="border"> - <xsl:with-param name="side" select="'right'"/> - </xsl:call-template> - </xsl:attribute> - </xsl:when> - </xsl:choose> - </xsl:when> - <xsl:otherwise> - <xsl:attribute name="border">0</xsl:attribute> - </xsl:otherwise> - </xsl:choose> - - <xsl:variable name="colgroup"> - <colgroup> - <xsl:call-template name="generate.colgroup"> - <xsl:with-param name="cols" select="@cols"/> - </xsl:call-template> - </colgroup> - </xsl:variable> - - <xsl:variable name="explicit.table.width"> - <xsl:call-template name="dbhtml-attribute"> - <xsl:with-param name="pis" - select="../processing-instruction('dbhtml')[1]"/> - <xsl:with-param name="attribute" select="'table-width'"/> - </xsl:call-template> - </xsl:variable> - - <xsl:variable name="table.width"> - <xsl:choose> - <xsl:when test="$explicit.table.width != ''"> - <xsl:value-of select="$explicit.table.width"/> - </xsl:when> - <xsl:when test="$default.table.width = ''"> - <xsl:text>100%</xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$default.table.width"/> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:if test="$default.table.width != '' - or $explicit.table.width != ''"> - <xsl:attribute name="width"> - <xsl:choose> - <xsl:when test="contains($table.width, '%')"> - <xsl:value-of select="$table.width"/> - </xsl:when> - <xsl:when test="$use.extensions != 0 - and $tablecolumns.extension != 0"> - <xsl:choose> - <xsl:when test="function-available('stbl:convertLength')"> - <xsl:value-of select="stbl:convertLength($table.width)"/> - </xsl:when> - <xsl:when test="function-available('xtbl:convertLength')"> - <xsl:value-of select="xtbl:convertLength($table.width)"/> - </xsl:when> - <xsl:otherwise> - <xsl:message terminate="yes"> - <xsl:text>No convertLength function available.</xsl:text> - </xsl:message> - </xsl:otherwise> - </xsl:choose> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$table.width"/> - </xsl:otherwise> - </xsl:choose> - </xsl:attribute> - </xsl:if> - - <xsl:choose> - <xsl:when test="$use.extensions != 0 - and $tablecolumns.extension != 0"> - <xsl:choose> - <xsl:when test="function-available('stbl:adjustColumnWidths')"> - <xsl:copy-of select="stbl:adjustColumnWidths($colgroup)"/> - </xsl:when> - <xsl:when test="function-available('xtbl:adjustColumnWidths')"> - <xsl:copy-of select="xtbl:adjustColumnWidths($colgroup)"/> - </xsl:when> - <xsl:otherwise> - <xsl:message terminate="yes"> - <xsl:text>No adjustColumnWidths function available.</xsl:text> - </xsl:message> - </xsl:otherwise> - </xsl:choose> - </xsl:when> - <xsl:otherwise> - <xsl:copy-of select="$colgroup"/> - </xsl:otherwise> - </xsl:choose> - - <xsl:apply-templates select="thead"/> - <xsl:apply-templates select="tbody"/> - <xsl:apply-templates select="tfoot"/> - - <xsl:if test=".//footnote"> - <tbody class="footnotes"> - <tr> - <td colspan="[EMAIL PROTECTED]"> - <xsl:apply-templates select=".//footnote" - mode="table.footnote.mode"/> - </td> - </tr> - </tbody> - </xsl:if> - </table> -</xsl:template> - <!-- output formal object titles enclosed in <h3> tags --> <xsl:template name="formal.object.heading"> + <xsl:param name="object" select="."/> <h3 class="formalhead"> <xsl:call-template name="anchor"/> - <xsl:apply-templates select="." mode="object.title.markup"> + <xsl:apply-templates select="$object" mode="object.title.markup"> <xsl:with-param name="allow-anchors" select="1"/> </xsl:apply-templates> </h3> </xsl:template> </xsl:stylesheet> -