Mercurial > pub > site.implab
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/schemas/doxygen/csharp/default.xsl Wed May 14 01:22:21 2014 +0400 @@ -0,0 +1,396 @@ +<?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> \ No newline at end of file