Mercurial > pub > site.implab
view schemas/doxygen/csharp/default.xsl @ 7:fa7a99c2d079
dox library templates and schemas
author | sergey |
---|---|
date | Wed, 14 May 2014 01:22:21 +0400 |
parents | |
children |
line wrap: on
line source
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="base.xsl" /> <xsl:param name="compounds" /> <xsl:param name="members" /> <xsl:variable name="labels" select="document('labels.xml')"/> <xsl:key name="param-key" use="concat(generate-id(parent::node()),declname/text())" match="memberdef/param[declname]"/> <xsl:output method="html" encoding="utf-8" indent="yes" omit-xml-declaration="yes" /> <!-- The main template --> <xsl:template name="compounddefType"> <h1> <xsl:apply-templates select="title|compoundname" mode="compounddefType" /> </h1> <div class="briefdescription"> <xsl:apply-templates select="briefdescription" mode="compounddefType" /> </div> <div class="basecompoundref"> <pre> <xsl:apply-templates select="basecompoundref" mode="compounddefType" /> </pre> </div> <div class="detaileddescription"> <xsl:apply-templates select="detaileddescription" mode="compounddefType" /> </div> <div class="innerCompounds"> <xsl:apply-templates select="innerclass | innernamespace" mode="compounddefType" /> </div> <div class="members"> <xsl:apply-templates select="sectiondef" mode="compounddefType" /> </div> <xsl:if test="derivedcompoundref"> <div class="derivedcompoundref"> <h2>Derived</h2> <xsl:apply-templates select="derivedcompoundref" mode="compounddefType" /> </div> </xsl:if> </xsl:template> <xsl:template match="compoundname" mode="compounddefType"> <xsl:call-template name="full-type-name"> <xsl:with-param name="typename" select="text()" /> </xsl:call-template> </xsl:template> <!-- handle references --> <xsl:template name="compoundRefType"> <xsl:choose> <xsl:when test="@refid"> <xsl:call-template name="link"> <xsl:with-param name="class" select="'doxCompoundRef'"/> <xsl:with-param name="refid" select="@refid" /> <xsl:with-param name="kind" select="'compound'" /> <xsl:with-param name="external" /> <xsl:with-param name="text" select="text()" /> </xsl:call-template> </xsl:when> <xsl:otherwise> <span class="doxCompoundRef"> <xsl:value-of select="text()" /> </span> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="refTextType"> <xsl:element name="a"> <xsl:attribute name="href"> <xsl:call-template name="ref"> <xsl:with-param name="refid" select="@refid" /> <xsl:with-param name="kind" select="@kindref" /> <xsl:with-param name="external" select="@external" /> </xsl:call-template> </xsl:attribute> <xsl:value-of select="text()" /> </xsl:element> </xsl:template> <xsl:template match="innerclass" mode="compounddefType"> <xsl:call-template name="link"> <xsl:with-param name="refid" select="@refid" /> <xsl:with-param name="kind" select="'compound'" /> <xsl:with-param name="external" /> <xsl:with-param name="text" > <xsl:call-template name="short-type-name"> <xsl:with-param name="typename" select="text()" /> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:template> <xsl:template match="innernamespace" mode="compounddefType"> <xsl:element name="a"> <xsl:attribute name="href"> <xsl:call-template name="ref"> <xsl:with-param name="refid" select="@refid" /> <xsl:with-param name="kind" select="'compound'" /> <xsl:with-param name="external" /> </xsl:call-template> </xsl:attribute> <xsl:call-template name="short-type-name"> <xsl:with-param name="typename" select="text()" /> </xsl:call-template> </xsl:element> </xsl:template> <xsl:template name="docRefTextType"> <xsl:element name="a"> <xsl:attribute name="href"> <xsl:call-template name="ref"> <xsl:with-param name="refid" select="@refid" /> <xsl:with-param name="kind" select="@kindref" /> <xsl:with-param name="external" select="@external" /> </xsl:call-template> </xsl:attribute> <xsl:apply-templates mode="docRefTextType" /> </xsl:element> </xsl:template> <!-- paragraph --> <xsl:template name="docParaType"> <p class="para"> <xsl:apply-templates mode="docParaType" /> </p> </xsl:template> <!-- inline markup --> <xsl:template name="docMarkupType"> <xsl:choose> <xsl:when test="name() = 'computeroutput'"> <span class="docTextPre"> <xsl:apply-templates mode="docMarkupType" /> </span> </xsl:when> <xsl:otherwise> <xsl:apply-templates mode="docMarkupType" /> </xsl:otherwise> </xsl:choose> </xsl:template> <!-- paramlist --> <xsl:template name="docParamListType"> <div class="parameterlist"> <h4> <xsl:call-template name="translate-paramlist"> <xsl:with-param name="name" select="@kind"/> </xsl:call-template> </h4> <xsl:choose> <xsl:when test="@kind = 'param'"> <xsl:call-template name="docParamListType-param"/> </xsl:when> <xsl:otherwise> <table class="pretty-table"> <tr> <th> Parameter </th> <th> Description </th> </tr> <xsl:apply-templates mode="docParamListType" /> </table> </xsl:otherwise> </xsl:choose> </div> </xsl:template> <xsl:template match="parameteritem" mode="docParamListType"> <tr> <td> <xsl:apply-templates select="parameternamelist" /> </td> <td> <xsl:apply-templates select="parameterdescription" /> </td> </tr> </xsl:template> <xsl:template name="docParamListType-param"> <table class="pretty-table"> <tr> <th> Type </th> <th> Parameter </th> <th> Description </th> </tr> <xsl:apply-templates mode="docParamListType-param" /> </table> </xsl:template> <xsl:template match="parameteritem" mode="docParamListType-param"> <tr> <td> <xsl:apply-templates select="key('param-key', concat(generate-id(ancestor::memberdef),parameternamelist/parametername/text()))/type" mode="paramType" /> </td> <td> <xsl:apply-templates select="parameternamelist" mode="docParamListItem"/> </td> <td> <xsl:apply-templates select="parameterdescription" mode="docParamListItem"/> </td> </tr> </xsl:template> <!-- section --> <xsl:template name="sectiondefType"> <div class="sectiondef"> <h3> <xsl:call-template name="section-label"> <xsl:with-param name="name" select="@kind"/> </xsl:call-template> </h3> <div> <xsl:apply-templates mode="sectiondefType" /> </div> </div> </xsl:template> <xsl:template name="docSimpleSectType"> <div class="simplesection"> <h3> <xsl:call-template name="translate-simplesection"> <xsl:with-param name="name" select="@kind"/> </xsl:call-template> </h3> <div> <xsl:apply-templates mode="docSimpleSectType" /> </div> </div> </xsl:template> <xsl:template match="simplesectsep" mode="docSimpleSectType"><hr class="simplesectsep" /></xsl:template> <!-- SOURCE CODE FORMATTING --> <xsl:template name="listingType"> <xsl:apply-templates mode="listingType"/> </xsl:template> <xsl:template name="codelineType"> <div> <xsl:apply-templates mode="codelineType"/> </div> </xsl:template> <xsl:template match="sp" mode="highlightType"> <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text> </xsl:template> <xsl:template match="highlight" mode="codelineType"> <span class="{@class}"><xsl:call-template name="highlightType"/></span> </xsl:template> <!-- TOOLS --> <xsl:template name="link"> <xsl:param name="refid" /> <xsl:param name="kind" /> <xsl:param name="external" select="''" /> <xsl:param name="text" select="'[ link here ]'" /> <xsl:param name="class" select="''"/> <xsl:element name="a"> <xsl:attribute name="href"> <xsl:call-template name="ref"> <xsl:with-param name="refid" select="$refid" /> <xsl:with-param name="kind" select="$kind" /> <xsl:with-param name="external" select="$external" /> </xsl:call-template> </xsl:attribute> <xsl:if test="$class"> <xsl:attribute name="class"><xsl:value-of select="$class"/></xsl:attribute> </xsl:if> <xsl:choose> <xsl:when test="*"> <xsl:copy-of select="$text"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$text"/> </xsl:otherwise> </xsl:choose> </xsl:element> </xsl:template> <xsl:template name="ref"> <xsl:param name="refid" /> <xsl:param name="kind" /> <xsl:param name="external" select="''" /> <xsl:choose> <xsl:when test="$kind = 'member'"> <xsl:value-of select="concat($members,'/',$refid)" /> </xsl:when> <xsl:when test="$kind = 'compound'"> <xsl:value-of select="concat($compounds,'/',$refid)" /> </xsl:when> <xsl:otherwise></xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="string-replace-all"> <xsl:param name="text" /> <xsl:param name="replace" /> <xsl:param name="with" /> <xsl:choose> <xsl:when test="contains($text, $replace)"> <xsl:value-of select="substring-before($text,$replace)" /> <xsl:value-of select="$with" /> <xsl:call-template name="string-replace-all"> <xsl:with-param name="text" select="substring-after($text,$replace)" /> <xsl:with-param name="replace" select="$replace" /> <xsl:with-param name="with" select="$with" /> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$text" /> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="full-type-name"> <xsl:param name="typename" /> <xsl:call-template name="string-replace-all"> <xsl:with-param name="text" select="$typename" /> <xsl:with-param name="replace" select="'::'" /> <xsl:with-param name="with" select="'.'" /> </xsl:call-template> </xsl:template> <xsl:template name="short-type-name"> <xsl:param name="typename" /> <xsl:choose> <xsl:when test="contains($typename,'::')"> <xsl:call-template name="short-type-name"> <xsl:with-param name="typename" select="substring-after($typename,'::')" /> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$typename" /> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="section-label"> <xsl:param name="name"/> <xsl:variable name="label" select="$labels/labels/sections/label[@name = $name]"/> <xsl:choose> <xsl:when test="$label"><xsl:value-of select="$label"/></xsl:when> <xsl:otherwise><xsl:value-of select="$name" /></xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="translate-section"> <xsl:param name="name"/> <xsl:variable name="label" select="$labels/labels/sections/label[@name = $name]"/> <xsl:choose> <xsl:when test="$label"><xsl:value-of select="$label"/></xsl:when> <xsl:otherwise><xsl:value-of select="$name" /></xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="translate-simplesection"> <xsl:param name="name"/> <xsl:variable name="label" select="$labels/labels/simplesections/label[@name = $name]"/> <xsl:choose> <xsl:when test="$label"><xsl:value-of select="$label"/></xsl:when> <xsl:otherwise><xsl:value-of select="$name" /></xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="translate-paramlist"> <xsl:param name="name"/> <xsl:variable name="label" select="$labels/labels/paramlists/label[@name = $name]"/> <xsl:choose> <xsl:when test="$label"><xsl:value-of select="$label"/></xsl:when> <xsl:otherwise><xsl:value-of select="$name" /></xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>