Annotation of embedaddon/libxml2/doc/wiki.xsl, revision 1.1

1.1     ! misho       1: <?xml version="1.0"?>
        !             2: <!--
        !             3:   Stylesheet to generate the HTML documentation from an XML API descriptions:
        !             4:   xsltproc wiki.xsl libxml2-api.xml
        !             5: 
        !             6:   Daniel Veillard
        !             7: -->
        !             8: <xsl:stylesheet version="1.0"
        !             9:   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        !            10:   xmlns:exsl="http://exslt.org/common"
        !            11:   xmlns:str="http://exslt.org/strings"
        !            12:   extension-element-prefixes="exsl str"
        !            13:   exclude-result-prefixes="exsl str">
        !            14: 
        !            15:   <!-- Generate XHTML-1.0 transitional -->
        !            16:   <xsl:output method="xml" encoding="UTF-8" indent="yes"
        !            17:       doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
        !            18:       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
        !            19: 
        !            20:   <!-- Build keys for all symbols -->
        !            21:   <xsl:key name="symbols" match="/api/symbols/*" use="@name"/>
        !            22: 
        !            23:   <!-- the target directory for the HTML output -->
        !            24:   <xsl:variable name="htmldir">wiki</xsl:variable>
        !            25:   <xsl:variable name="href_base">../</xsl:variable>
        !            26: 
        !            27:   <xsl:template name="style">
        !            28:     <link rel="SHORTCUT ICON" href="/favicon.ico"/> 
        !            29:     <style type="text/css">
        !            30: TD {font-family: Verdana,Arial,Helvetica}
        !            31: BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
        !            32: H1 {font-family: Verdana,Arial,Helvetica}
        !            33: H2 {font-family: Verdana,Arial,Helvetica}
        !            34: H3 {font-family: Verdana,Arial,Helvetica}
        !            35: A:link, A:visited, A:active { text-decoration: underline }
        !            36: </style>
        !            37:   </xsl:template>
        !            38: 
        !            39:   <xsl:template name="docstyle">
        !            40:     <style type="text/css">
        !            41:       div.deprecated pre.programlisting {border-style: double;border-color:red}
        !            42:       pre.programlisting {border-style: double;}
        !            43:     </style>
        !            44:   </xsl:template>
        !            45: 
        !            46:   <!-- This is convoluted but needed to force the current document to
        !            47:        be the API one and not the result tree from the tokenize() result,
        !            48:        because the keys are only defined on the main document -->
        !            49:   <xsl:template mode="dumptoken" match='*'>
        !            50:     <xsl:param name="token"/>
        !            51:     <xsl:variable name="ref" select="key('symbols', $token)"/>
        !            52:     <xsl:choose>
        !            53:       <xsl:when test="$ref">
        !            54:         <a href="libxml-{$ref/@file}.html#{$ref/@name}"><xsl:value-of select="$token"/></a>
        !            55:       </xsl:when>
        !            56:       <xsl:otherwise>
        !            57:         <xsl:value-of select="$token"/>
        !            58:       </xsl:otherwise>
        !            59:     </xsl:choose>
        !            60:   </xsl:template>
        !            61: 
        !            62:   <!-- dumps a string, making cross-reference links -->
        !            63:   <xsl:template name="dumptext">
        !            64:     <xsl:param name="text"/>
        !            65:     <xsl:variable name="ctxt" select='.'/>
        !            66:     <!-- <xsl:value-of select="$text"/> -->
        !            67:     <xsl:for-each select="str:tokenize($text, ' &#9;')">
        !            68:       <xsl:apply-templates select="$ctxt" mode='dumptoken'>
        !            69:         <xsl:with-param name="token" select="string(.)"/>
        !            70:       </xsl:apply-templates>
        !            71:       <xsl:if test="position() != last()">
        !            72:         <xsl:text> </xsl:text>
        !            73:       </xsl:if>
        !            74:     </xsl:for-each>
        !            75:   </xsl:template>
        !            76: 
        !            77:   <xsl:template match="macro" mode="toc">
        !            78:     <pre class="programlisting">
        !            79:     <xsl:text>#define </xsl:text><a href="#{@name}"><xsl:value-of select="@name"/></a>
        !            80:     </pre>
        !            81:   </xsl:template>
        !            82: 
        !            83:   <xsl:template match="variable" mode="toc">
        !            84:     <pre class="programlisting">
        !            85:     <xsl:text>Variable </xsl:text>
        !            86:     <xsl:call-template name="dumptext">
        !            87:       <xsl:with-param name="text" select="string(@type)"/>
        !            88:     </xsl:call-template>
        !            89:     <xsl:text> </xsl:text>
        !            90:     <a name="{@name}"></a>
        !            91:     <xsl:value-of select="@name"/>
        !            92:     <xsl:text>
        !            93: 
        !            94: </xsl:text>
        !            95:     </pre>
        !            96:   </xsl:template>
        !            97: 
        !            98:   <xsl:template match="typedef" mode="toc">
        !            99:     <xsl:variable name="name" select="string(@name)"/>
        !           100:     <pre class="programlisting">
        !           101:     <xsl:choose>
        !           102:       <xsl:when test="@type = 'enum'">
        !           103:        <xsl:text>Enum </xsl:text>
        !           104:        <a href="#{$name}"><xsl:value-of select="$name"/></a>
        !           105:        <xsl:text>
        !           106: </xsl:text>
        !           107:       </xsl:when>
        !           108:       <xsl:otherwise>
        !           109:        <xsl:text>Typedef </xsl:text>
        !           110:        <xsl:call-template name="dumptext">
        !           111:          <xsl:with-param name="text" select="@type"/>
        !           112:        </xsl:call-template>
        !           113:        <xsl:text> </xsl:text>
        !           114:        <a name="{$name}"><xsl:value-of select="$name"/></a>
        !           115:        <xsl:text>
        !           116: </xsl:text>
        !           117:       </xsl:otherwise>
        !           118:     </xsl:choose>
        !           119:     </pre>
        !           120:   </xsl:template>
        !           121: 
        !           122:   <xsl:template match="typedef[@type = 'enum']">
        !           123:     <xsl:variable name="name" select="string(@name)"/>
        !           124:     <h3>Enum <a name="{$name}"><xsl:value-of select="$name"/></a></h3>
        !           125:     <pre class="programlisting">
        !           126:       <xsl:text>Enum </xsl:text>
        !           127:       <xsl:value-of select="$name"/>
        !           128:       <xsl:text> {
        !           129: </xsl:text>
        !           130:       <xsl:for-each select="/api/symbols/enum[@type = $name]">
        !           131:         <xsl:sort select="@value" data-type="number" order="ascending"/>
        !           132:         <xsl:text>    </xsl:text>
        !           133:         <a name="{@name}"><xsl:value-of select="@name"/></a>
        !           134:         <xsl:text> = </xsl:text>
        !           135:         <xsl:value-of select="@value"/>
        !           136:         <xsl:if test="@info != ''">
        !           137:          <xsl:text> : </xsl:text>
        !           138:          <xsl:call-template name="dumptext">
        !           139:            <xsl:with-param name="text" select="@info"/>
        !           140:          </xsl:call-template>
        !           141:         </xsl:if>
        !           142:         <xsl:text>
        !           143: </xsl:text>
        !           144:       </xsl:for-each>
        !           145:       <xsl:text>}
        !           146: </xsl:text>
        !           147:     </pre>
        !           148:   </xsl:template>
        !           149: 
        !           150:   <xsl:template match="struct" mode="toc">
        !           151:     <pre class="programlisting">
        !           152:     <xsl:text>Structure </xsl:text><a href="#{@name}"><xsl:value-of select="@name"/></a><br/>
        !           153:     <xsl:value-of select="@type"/><xsl:text>
        !           154: </xsl:text>
        !           155:     <xsl:if test="not(field)">
        !           156:       <xsl:text>The content of this structure is not made public by the API.
        !           157: </xsl:text>
        !           158:     </xsl:if>
        !           159:     </pre>
        !           160:   </xsl:template>
        !           161: 
        !           162:   <xsl:template match="struct">
        !           163:     <h3><a name="{@name}">Structure <xsl:value-of select="@name"/></a></h3>
        !           164:     <pre class="programlisting">
        !           165:     <xsl:text>Structure </xsl:text><xsl:value-of select="@name"/><br/>
        !           166:     <xsl:value-of select="@type"/><xsl:text> {
        !           167: </xsl:text>
        !           168:     <xsl:if test="not(field)">
        !           169:       <xsl:text>The content of this structure is not made public by the API.
        !           170: </xsl:text>
        !           171:     </xsl:if>
        !           172:     <xsl:for-each select="field">
        !           173:         <xsl:text>    </xsl:text>
        !           174:        <xsl:call-template name="dumptext">
        !           175:          <xsl:with-param name="text" select="@type"/>
        !           176:        </xsl:call-template>
        !           177:        <xsl:text>&#9;</xsl:text>
        !           178:        <xsl:value-of select="@name"/>
        !           179:        <xsl:if test="@info != ''">
        !           180:          <xsl:text>&#9;: </xsl:text>
        !           181:          <xsl:call-template name="dumptext">
        !           182:            <xsl:with-param name="text" select="substring(@info, 1, 40)"/>
        !           183:          </xsl:call-template>
        !           184:        </xsl:if>
        !           185:        <xsl:text>
        !           186: </xsl:text>
        !           187:     </xsl:for-each>
        !           188:     <xsl:text>}</xsl:text>
        !           189:     </pre>
        !           190:   </xsl:template>
        !           191: 
        !           192:   <xsl:template match="macro">
        !           193:     <xsl:variable name="name" select="string(@name)"/>
        !           194:     <h3><a name="{$name}"></a>Macro: <xsl:value-of select="$name"/></h3>
        !           195:     <pre><xsl:text>#define </xsl:text><xsl:value-of select="$name"/></pre>
        !           196:     <p>
        !           197:     <xsl:call-template name="dumptext">
        !           198:       <xsl:with-param name="text" select="info"/>
        !           199:     </xsl:call-template>
        !           200:     </p><xsl:text>
        !           201: </xsl:text>
        !           202:   </xsl:template>
        !           203: 
        !           204:   <xsl:template match="function" mode="toc">
        !           205:     <xsl:variable name="name" select="string(@name)"/>
        !           206:     <xsl:variable name="nlen" select="string-length($name)"/>
        !           207:     <xsl:variable name="tlen" select="string-length(return/@type)"/>
        !           208:     <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
        !           209:     <pre class="programlisting">
        !           210:     <xsl:call-template name="dumptext">
        !           211:       <xsl:with-param name="text" select="return/@type"/>
        !           212:     </xsl:call-template>
        !           213:     <xsl:text>&#9;</xsl:text>
        !           214:     <a href="#{@name}"><xsl:value-of select="@name"/></a>
        !           215:     <xsl:if test="$blen - 40 &lt; -8">
        !           216:       <xsl:text>&#9;</xsl:text>
        !           217:     </xsl:if>
        !           218:     <xsl:if test="$blen - 40 &lt; 0">
        !           219:       <xsl:text>&#9;</xsl:text>
        !           220:     </xsl:if>
        !           221:     <xsl:text>&#9;(</xsl:text>
        !           222:     <xsl:if test="not(arg)">
        !           223:       <xsl:text>void</xsl:text>
        !           224:     </xsl:if>
        !           225:     <xsl:for-each select="arg">
        !           226:       <xsl:call-template name="dumptext">
        !           227:         <xsl:with-param name="text" select="@type"/>
        !           228:       </xsl:call-template>
        !           229:       <xsl:text> </xsl:text>
        !           230:       <xsl:value-of select="@name"/>
        !           231:       <xsl:if test="position() != last()">
        !           232:         <xsl:text>, </xsl:text><br/>
        !           233:        <xsl:if test="$blen - 40 &gt; 8">
        !           234:          <xsl:text>&#9;</xsl:text>
        !           235:        </xsl:if>
        !           236:        <xsl:if test="$blen - 40 &gt; 0">
        !           237:          <xsl:text>&#9;</xsl:text>
        !           238:        </xsl:if>
        !           239:        <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
        !           240:       </xsl:if>
        !           241:     </xsl:for-each>
        !           242:     <xsl:text>)</xsl:text>
        !           243:     </pre><xsl:text>
        !           244: </xsl:text>
        !           245:   </xsl:template>
        !           246: 
        !           247:   <xsl:template match="functype" mode="toc">
        !           248:     <xsl:variable name="name" select="string(@name)"/>
        !           249:     <xsl:variable name="nlen" select="string-length($name)"/>
        !           250:     <xsl:variable name="tlen" select="string-length(return/@type)"/>
        !           251:     <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
        !           252:     <pre class="programlisting">
        !           253:     <xsl:text>Function type: </xsl:text>
        !           254:     <a href="#{$name}"><xsl:value-of select="$name"/></a>
        !           255:     <xsl:text>
        !           256: </xsl:text>
        !           257:     <xsl:call-template name="dumptext">
        !           258:       <xsl:with-param name="text" select="return/@type"/>
        !           259:     </xsl:call-template>
        !           260:     <xsl:text>&#9;</xsl:text>
        !           261:     <a href="#{$name}"><xsl:value-of select="$name"/></a>
        !           262:     <xsl:if test="$blen - 40 &lt; -8">
        !           263:       <xsl:text>&#9;</xsl:text>
        !           264:     </xsl:if>
        !           265:     <xsl:if test="$blen - 40 &lt; 0">
        !           266:       <xsl:text>&#9;</xsl:text>
        !           267:     </xsl:if>
        !           268:     <xsl:text>&#9;(</xsl:text>
        !           269:     <xsl:if test="not(arg)">
        !           270:       <xsl:text>void</xsl:text>
        !           271:     </xsl:if>
        !           272:     <xsl:for-each select="arg">
        !           273:       <xsl:call-template name="dumptext">
        !           274:         <xsl:with-param name="text" select="@type"/>
        !           275:       </xsl:call-template>
        !           276:       <xsl:text> </xsl:text>
        !           277:       <xsl:value-of select="@name"/>
        !           278:       <xsl:if test="position() != last()">
        !           279:         <xsl:text>, </xsl:text><br/>
        !           280:        <xsl:if test="$blen - 40 &gt; 8">
        !           281:          <xsl:text>&#9;</xsl:text>
        !           282:        </xsl:if>
        !           283:        <xsl:if test="$blen - 40 &gt; 0">
        !           284:          <xsl:text>&#9;</xsl:text>
        !           285:        </xsl:if>
        !           286:        <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
        !           287:       </xsl:if>
        !           288:     </xsl:for-each>
        !           289:     <xsl:text>)
        !           290: </xsl:text>
        !           291:     </pre>
        !           292:     <xsl:text>
        !           293: </xsl:text>
        !           294:   </xsl:template>
        !           295: 
        !           296:   <xsl:template match="functype">
        !           297:     <xsl:variable name="name" select="string(@name)"/>
        !           298:     <xsl:variable name="nlen" select="string-length($name)"/>
        !           299:     <xsl:variable name="tlen" select="string-length(return/@type)"/>
        !           300:     <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
        !           301:     <h3>
        !           302:       <a name="{$name}"></a>
        !           303:       <xsl:text>Function type: </xsl:text>
        !           304:       <xsl:value-of select="$name"/>
        !           305:     </h3>
        !           306:     <pre class="programlisting">
        !           307:     <xsl:text>Function type: </xsl:text>
        !           308:     <xsl:value-of select="$name"/>
        !           309:     <xsl:text>
        !           310: </xsl:text>
        !           311:     <xsl:call-template name="dumptext">
        !           312:       <xsl:with-param name="text" select="return/@type"/>
        !           313:     </xsl:call-template>
        !           314:     <xsl:text>&#9;</xsl:text>
        !           315:     <xsl:value-of select="@name"/>
        !           316:     <xsl:if test="$blen - 40 &lt; -8">
        !           317:       <xsl:text>&#9;</xsl:text>
        !           318:     </xsl:if>
        !           319:     <xsl:if test="$blen - 40 &lt; 0">
        !           320:       <xsl:text>&#9;</xsl:text>
        !           321:     </xsl:if>
        !           322:     <xsl:text>&#9;(</xsl:text>
        !           323:     <xsl:if test="not(arg)">
        !           324:       <xsl:text>void</xsl:text>
        !           325:     </xsl:if>
        !           326:     <xsl:for-each select="arg">
        !           327:       <xsl:call-template name="dumptext">
        !           328:         <xsl:with-param name="text" select="@type"/>
        !           329:       </xsl:call-template>
        !           330:       <xsl:text> </xsl:text>
        !           331:       <xsl:value-of select="@name"/>
        !           332:       <xsl:if test="position() != last()">
        !           333:         <xsl:text>, </xsl:text><br/>
        !           334:        <xsl:if test="$blen - 40 &gt; 8">
        !           335:          <xsl:text>&#9;</xsl:text>
        !           336:        </xsl:if>
        !           337:        <xsl:if test="$blen - 40 &gt; 0">
        !           338:          <xsl:text>&#9;</xsl:text>
        !           339:        </xsl:if>
        !           340:        <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
        !           341:       </xsl:if>
        !           342:     </xsl:for-each>
        !           343:     <xsl:text>)
        !           344: </xsl:text>
        !           345:     </pre>
        !           346:     <p>
        !           347:     <xsl:call-template name="dumptext">
        !           348:       <xsl:with-param name="text" select="info"/>
        !           349:     </xsl:call-template>
        !           350:     </p>
        !           351:     <xsl:if test="arg | return">
        !           352:       <div class="variablelist"><table border="0"><col align="left"/><tbody>
        !           353:       <xsl:for-each select="arg">
        !           354:         <tr>
        !           355:           <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
        !           356:          <td>
        !           357:            <xsl:call-template name="dumptext">
        !           358:              <xsl:with-param name="text" select="@info"/>
        !           359:            </xsl:call-template>
        !           360:          </td>
        !           361:         </tr>
        !           362:       </xsl:for-each>
        !           363:       <xsl:if test="return/@info">
        !           364:         <tr>
        !           365:           <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
        !           366:          <td>
        !           367:            <xsl:call-template name="dumptext">
        !           368:              <xsl:with-param name="text" select="return/@info"/>
        !           369:            </xsl:call-template>
        !           370:          </td>
        !           371:         </tr>
        !           372:       </xsl:if>
        !           373:       </tbody></table></div>
        !           374:     </xsl:if>
        !           375:     <br/>
        !           376:     <xsl:text>
        !           377: </xsl:text>
        !           378:   </xsl:template>
        !           379: 
        !           380:   <xsl:template match="function">
        !           381:     <xsl:variable name="name" select="string(@name)"/>
        !           382:     <xsl:variable name="nlen" select="string-length($name)"/>
        !           383:     <xsl:variable name="tlen" select="string-length(return/@type)"/>
        !           384:     <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
        !           385:     <h3><a name="{$name}"></a>Function: <xsl:value-of select="$name"/></h3>
        !           386:     <pre class="programlisting">
        !           387:     <xsl:call-template name="dumptext">
        !           388:       <xsl:with-param name="text" select="return/@type"/>
        !           389:     </xsl:call-template>
        !           390:     <xsl:text>&#9;</xsl:text>
        !           391:     <xsl:value-of select="@name"/>
        !           392:     <xsl:if test="$blen - 40 &lt; -8">
        !           393:       <xsl:text>&#9;</xsl:text>
        !           394:     </xsl:if>
        !           395:     <xsl:if test="$blen - 40 &lt; 0">
        !           396:       <xsl:text>&#9;</xsl:text>
        !           397:     </xsl:if>
        !           398:     <xsl:text>&#9;(</xsl:text>
        !           399:     <xsl:if test="not(arg)">
        !           400:       <xsl:text>void</xsl:text>
        !           401:     </xsl:if>
        !           402:     <xsl:for-each select="arg">
        !           403:       <xsl:call-template name="dumptext">
        !           404:         <xsl:with-param name="text" select="@type"/>
        !           405:       </xsl:call-template>
        !           406:       <xsl:text> </xsl:text>
        !           407:       <xsl:value-of select="@name"/>
        !           408:       <xsl:if test="position() != last()">
        !           409:         <xsl:text>, </xsl:text><br/>
        !           410:        <xsl:if test="$blen - 40 &gt; 8">
        !           411:          <xsl:text>&#9;</xsl:text>
        !           412:        </xsl:if>
        !           413:        <xsl:if test="$blen - 40 &gt; 0">
        !           414:          <xsl:text>&#9;</xsl:text>
        !           415:        </xsl:if>
        !           416:        <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
        !           417:       </xsl:if>
        !           418:     </xsl:for-each>
        !           419:     <xsl:text>)</xsl:text><br/>
        !           420:     <xsl:text>
        !           421: </xsl:text>
        !           422:     </pre>
        !           423:     <p>
        !           424:     <xsl:call-template name="dumptext">
        !           425:       <xsl:with-param name="text" select="info"/>
        !           426:     </xsl:call-template>
        !           427:     </p><xsl:text>
        !           428: </xsl:text>
        !           429:     <xsl:if test="arg | return/@info">
        !           430:       <div class="variablelist"><table border="0"><col align="left"/><tbody>
        !           431:       <xsl:for-each select="arg">
        !           432:         <tr>
        !           433:           <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
        !           434:          <td>
        !           435:            <xsl:call-template name="dumptext">
        !           436:              <xsl:with-param name="text" select="@info"/>
        !           437:            </xsl:call-template>
        !           438:          </td>
        !           439:         </tr>
        !           440:       </xsl:for-each>
        !           441:       <xsl:if test="return/@info">
        !           442:         <tr>
        !           443:           <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
        !           444:          <td>
        !           445:            <xsl:call-template name="dumptext">
        !           446:              <xsl:with-param name="text" select="return/@info"/>
        !           447:            </xsl:call-template>
        !           448:          </td>
        !           449:         </tr>
        !           450:       </xsl:if>
        !           451:       </tbody></table></div>
        !           452:     </xsl:if>
        !           453:   </xsl:template>
        !           454: 
        !           455:   <xsl:template match="exports" mode="toc">
        !           456:     <xsl:apply-templates select="key('symbols', string(@symbol))[1]" mode="toc"/>
        !           457:   </xsl:template>
        !           458: 
        !           459:   <xsl:template match="exports">
        !           460:     <xsl:apply-templates select="key('symbols', string(@symbol))[1]"/>
        !           461:   </xsl:template>
        !           462: 
        !           463:   <xsl:template name="description">
        !           464:     <xsl:if test="deprecated">
        !           465:       <h2 style="font-weight:bold;color:red;text-align:center">This module is deprecated</h2>
        !           466:     </xsl:if>
        !           467:     <xsl:if test="description">
        !           468:       <p><xsl:value-of select="description"/></p>
        !           469:     </xsl:if>
        !           470:   </xsl:template>
        !           471: 
        !           472:   <xsl:template name="docomponents">
        !           473:     <xsl:param name="mode"/>
        !           474:     <xsl:apply-templates select="exports[@type='macro']" mode="$mode">
        !           475:       <xsl:sort select='@symbol'/>
        !           476:     </xsl:apply-templates>
        !           477:     <xsl:apply-templates select="exports[@type='enum']" mode="$mode">
        !           478:       <xsl:sort select='@symbol'/>
        !           479:     </xsl:apply-templates>
        !           480:     <xsl:apply-templates select="exports[@type='typedef']" mode="$mode">
        !           481:       <xsl:sort select='@symbol'/>
        !           482:     </xsl:apply-templates>
        !           483:     <xsl:apply-templates select="exports[@type='struct']" mode="$mode">
        !           484:       <xsl:sort select='@symbol'/>
        !           485:     </xsl:apply-templates>
        !           486:     <xsl:apply-templates select="exports[@type='function']" mode="$mode">
        !           487:       <xsl:sort select='@symbol'/>
        !           488:     </xsl:apply-templates>
        !           489:   </xsl:template>
        !           490:   
        !           491:   <xsl:template match="file">
        !           492:     <xsl:variable name="name" select="@name"/>
        !           493:     <xsl:variable name="title">Module <xsl:value-of select="$name"/> from <xsl:value-of select="/api/@name"/></xsl:variable>
        !           494:     <xsl:document href="{$htmldir}/libxml-{$name}.html" method="xml" encoding="UTF-8"
        !           495:       doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
        !           496:       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        !           497:            <xsl:call-template name="style"/>
        !           498:            <xsl:call-template name="docstyle"/>
        !           499:       <table border="0" cellpadding="3" cellspacing="1" width="100%">
        !           500:         <tr>
        !           501:           <td>
        !           502:            <xsl:call-template name="description"/>
        !           503:            <xsl:choose>
        !           504:              <xsl:when test="deprecated">
        !           505:                <div class="deprecated">
        !           506:                  <h2>Table of Contents</h2>
        !           507:                  <xsl:apply-templates select="exports" mode="toc"/>
        !           508:                  <h2>Description</h2>
        !           509:                  <xsl:text>
        !           510: </xsl:text>
        !           511:                  <xsl:apply-templates select="exports"/>
        !           512:                </div>
        !           513:              </xsl:when>
        !           514:              <xsl:otherwise>
        !           515:                <h2>Table of Contents</h2>
        !           516:                <xsl:apply-templates select="exports[@type='macro']" mode="toc">
        !           517:                  <xsl:sort select='@symbol'/>
        !           518:                </xsl:apply-templates>
        !           519:                <xsl:apply-templates select="exports[@type='enum']" mode="toc">
        !           520:                  <xsl:sort select='@symbol'/>
        !           521:                </xsl:apply-templates>
        !           522:                <xsl:apply-templates select="exports[@type='typedef']" mode="toc">
        !           523:                  <xsl:sort select='@symbol'/>
        !           524:                </xsl:apply-templates>
        !           525:                <xsl:apply-templates select="exports[@type='struct']" mode="toc">
        !           526:                  <xsl:sort select='@symbol'/>
        !           527:                </xsl:apply-templates>
        !           528:                <xsl:apply-templates select="exports[@type='function']" mode="toc">
        !           529:                  <xsl:sort select='@symbol'/>
        !           530:                </xsl:apply-templates>
        !           531:                <h2>Description</h2>
        !           532:                <xsl:text>
        !           533: </xsl:text>
        !           534:                <xsl:apply-templates select="exports[@type='macro']">
        !           535:                  <xsl:sort select='@symbol'/>
        !           536:                </xsl:apply-templates>
        !           537:                <xsl:apply-templates select="exports[@type='enum']">
        !           538:                  <xsl:sort select='@symbol'/>
        !           539:                </xsl:apply-templates>
        !           540:                <xsl:apply-templates select="exports[@type='typedef']">
        !           541:                  <xsl:sort select='@symbol'/>
        !           542:                </xsl:apply-templates>
        !           543:                <xsl:apply-templates select="exports[@type='struct']">
        !           544:                  <xsl:sort select='@symbol'/>
        !           545:                </xsl:apply-templates>
        !           546:                <xsl:apply-templates select="exports[@type='function']">
        !           547:                  <xsl:sort select='@symbol'/>
        !           548:                </xsl:apply-templates>
        !           549:              </xsl:otherwise>
        !           550:            </xsl:choose>
        !           551:     </td>
        !           552:   </tr>
        !           553: </table>
        !           554:     </xsl:document>
        !           555:   </xsl:template>
        !           556: 
        !           557:   <xsl:template match="file" mode="toc">
        !           558:     <xsl:variable name="name" select="@name"/>
        !           559:     <b><a href="http://xmlsoft.org/wiki/index.php?title=Libxml2:Api:{$name}"><xsl:value-of select="$name"/></a></b><br/>
        !           560:       <xsl:value-of select="summary"/>
        !           561:       <br/><br/>
        !           562:   </xsl:template>
        !           563: 
        !           564:   <xsl:template name="mainpage">
        !           565:     <xsl:param name="file" select="concat($htmldir, '/libxml-index.html')"/>
        !           566:     <xsl:variable name="title">Reference Manual for <xsl:value-of select="/api/@name"/></xsl:variable>
        !           567:     <xsl:document href="{$file}" method="xml" encoding="UTF-8"
        !           568:       doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
        !           569:       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        !           570:       <xsl:call-template name="style"/>
        !           571:       <xsl:call-template name="docstyle"/>
        !           572:       <table border="0" cellpadding="3" cellspacing="1" width="100%">
        !           573:         <tr>
        !           574:           <td>
        !           575:             <xsl:apply-templates select="/api/files/file" mode="toc"/>
        !           576:           </td>
        !           577:         </tr>
        !           578:       </table>
        !           579:     </xsl:document>
        !           580:   </xsl:template>
        !           581: 
        !           582:   <xsl:template match="/">
        !           583:     <!-- Save the main libxml-index.html as well as a couple of copies -->
        !           584:     <xsl:call-template name="mainpage"/>
        !           585:     <!-- now build the file for each of the modules -->
        !           586:     <xsl:apply-templates select="/api/files/file"/>
        !           587:   </xsl:template>
        !           588: 
        !           589: </xsl:stylesheet>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>