%PDF- %PDF-
Direktori : /usr/share/yelp-xsl/xslt/docbook/html/ |
Current File : //usr/share/yelp-xsl/xslt/docbook/html/db2html-funcsynopsis.xsl |
<?xml version='1.0' encoding='UTF-8'?><!-- -*- indent-tabs-mode: nil -*- --> <!-- This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; see the file COPYING.LGPL. If not, see <http://www.gnu.org/licenses/>. --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:db="http://docbook.org/ns/docbook" xmlns:str="http://exslt.org/strings" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="db str" version="1.0"> <!--!!========================================================================== DocBook to HTML - Function Synopses REMARK: Describe this module --> <!--@@========================================================================== db2html.funcsynopsis.style How to render `funcsynopsis` elements This parameter controls the indentation style used to render `funcsynopsis` elements. Supported values are `'KR'` and `'ANSI'`. This value can also be set with the `db2html.funcsynopsis.style` processing instruction at the top of the XML document. The same processing instruction or inside a `funcsynopsis` element will override this setting for that synopsis. --> <xsl:param name="db2html.funcsynopsis.style"> <xsl:choose> <xsl:when test="/processing-instruction('db2html.funcsynopsis.style')"> <xsl:value-of select="/processing-instruction('db2html.funcsynopsis.style')"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="'ANSI'"/> </xsl:otherwise> </xsl:choose> </xsl:param> <!-- == Matched Templates == --> <!-- = funcdef = --> <xsl:template match="funcdef | db:funcdef"> <xsl:call-template name="db2html.inline"/> </xsl:template> <!-- = funcparams = --> <xsl:template match="funcparams | db:funcparams"> <xsl:text>(</xsl:text> <xsl:call-template name="db2html.inline"/> <xsl:text>)</xsl:text> </xsl:template> <!-- = funcprototype = --> <xsl:template match="funcprototype | db:funcprototype"> <xsl:variable name="style"> <xsl:choose> <xsl:when test="../processing-instruction('db2html.funcsynopsis.style')"> <xsl:value-of select="../processing-instruction('db2html.funcsynopsis.style')"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$db2html.funcsynopsis.style"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:for-each select="funcdef/preceding-sibling::modifier | db:funcdef/preceding-sibling::db:modifier"> <xsl:apply-templates select="."/> <xsl:text> </xsl:text> </xsl:for-each> <xsl:apply-templates select="funcdef | db:funcdef"/> <xsl:text> (</xsl:text> <xsl:choose> <xsl:when test="$style = 'KR'"> <xsl:for-each select="void | varargs | paramdef | db:void | db:varargs | db:paramdef"> <xsl:if test="position() != 1"> <xsl:text>, </xsl:text> </xsl:if> <xsl:choose> <xsl:when test="self::paramdef or self::db:paramdef"> <xsl:call-template name="db2html.inline"> <xsl:with-param name="node" select="."/> <xsl:with-param name="children" select="parameter | db:parameter"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="."/> </xsl:otherwise> </xsl:choose> </xsl:for-each> <xsl:text>)</xsl:text> <xsl:for-each select="funcdef/following-sibling::modifier | db:funcdef/following-sibling::db:modifier"> <xsl:text> </xsl:text> <xsl:apply-templates select="."/> </xsl:for-each> <xsl:text>;</xsl:text> <xsl:for-each select="paramdef | db:paramdef"> <xsl:text>
 </xsl:text> <xsl:apply-templates select="."/> <xsl:text>;</xsl:text> </xsl:for-each> </xsl:when> <!-- ANSI is the default --> <xsl:otherwise> <xsl:variable name="indent"> <xsl:call-template name="_db2html.funcsynopsis.pad"> <xsl:with-param name="nodes" select="funcdef | funcdef/preceding-sibling::modifier| db:funcdef | db:fundef/preceding-sibling::db:modifier"/> </xsl:call-template> <xsl:value-of select="str:padding(count(funcdef/preceding-sibling::modifier) + count(db:funcdef/preceding-sibling::db:modifier) + 2)"/> </xsl:variable> <xsl:for-each select="void | varargs | paramdef | db:void | db:varargs | db:paramdef"> <xsl:if test="position() != 1"> <xsl:text>,
</xsl:text> <xsl:value-of select="$indent"/> </xsl:if> <xsl:apply-templates select="."/> </xsl:for-each> <xsl:text>)</xsl:text> <xsl:for-each select="funcdef/following-sibling::modifier | db:funcdef/following-sibling::db:modifier"> <xsl:text> </xsl:text> <xsl:apply-templates select="."/> </xsl:for-each> <xsl:text>;</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:template> <!-- = funcsynopsis = --> <xsl:template match="funcsynopsis | db:funcsynopsis"> <xsl:call-template name="db2html.pre"> <xsl:with-param name="node" select="."/> <xsl:with-param name="children" select="*"/> <xsl:with-param name="class" select="'synopsis'"/> </xsl:call-template> </xsl:template> <!-- = funcsynopsisinfo = --> <xsl:template match="funcsynopsisinfo | db:funcsynopsisinfo"> <xsl:call-template name="db2html.pre"/> </xsl:template> <!-- = initializer = --> <xsl:template match="initializer | db:initializer"> <xsl:call-template name="db2html.inline"/> </xsl:template> <!-- = modifier = --> <xsl:template match="modifier | db:modifier"> <xsl:call-template name="db2html.inline"/> </xsl:template> <!-- = paramdef = --> <xsl:template match="paramdef | db:paramdef"> <xsl:call-template name="db2html.inline"/> </xsl:template> <!-- = varargs = --> <xsl:template match="varargs | db:varargs"> <xsl:text>...</xsl:text> </xsl:template> <!-- = void = --> <xsl:template match="void | db:void"> <xsl:text>void</xsl:text> </xsl:template> <!-- == Utility Templates == --> <!--#* _db2html.funcsynopsis.pad --> <xsl:template name="_db2html.funcsynopsis.pad"> <xsl:param name="nodes"/> <xsl:value-of select="str:padding(string-length($nodes[1]))"/> <xsl:if test="$nodes[position() != 1]"> <xsl:call-template name="_db2html.funcsynopsis.pad"> <xsl:with-param name="nodes" select="$nodes[position() != 1]"/> </xsl:call-template> </xsl:if> </xsl:template> </xsl:stylesheet>