⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wiki.xsl

📁 libxml,在UNIX/LINUX下非常重要的一个库,为XML相关应用提供方便.目前上载的是最新版本,若要取得最新版本,请参考里面的readme.
💻 XSL
📖 第 1 页 / 共 2 页
字号:
<?xml version="1.0"?><!--  Stylesheet to generate the HTML documentation from an XML API descriptions:  xsltproc wiki.xsl libxml2-api.xml  Daniel Veillard--><xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:exsl="http://exslt.org/common"  xmlns:str="http://exslt.org/strings"  extension-element-prefixes="exsl str"  exclude-result-prefixes="exsl str">  <!-- Generate XHTML-1.0 transitional -->  <xsl:output method="xml" encoding="ISO-8859-1" indent="yes"      doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"      doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>  <!-- Build keys for all symbols -->  <xsl:key name="symbols" match="/api/symbols/*" use="@name"/>  <!-- the target directory for the HTML output -->  <xsl:variable name="htmldir">wiki</xsl:variable>  <xsl:variable name="href_base">../</xsl:variable>  <xsl:template name="style">    <link rel="SHORTCUT ICON" href="/favicon.ico"/>     <style type="text/css">TD {font-family: Verdana,Arial,Helvetica}BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}H1 {font-family: Verdana,Arial,Helvetica}H2 {font-family: Verdana,Arial,Helvetica}H3 {font-family: Verdana,Arial,Helvetica}A:link, A:visited, A:active { text-decoration: underline }</style>  </xsl:template>  <xsl:template name="docstyle">    <style type="text/css">      div.deprecated pre.programlisting {border-style: double;border-color:red}      pre.programlisting {border-style: double;}    </style>  </xsl:template>  <!-- This is convoluted but needed to force the current document to       be the API one and not the result tree from the tokenize() result,       because the keys are only defined on the main document -->  <xsl:template mode="dumptoken" match='*'>    <xsl:param name="token"/>    <xsl:variable name="ref" select="key('symbols', $token)"/>    <xsl:choose>      <xsl:when test="$ref">        <a href="libxml-{$ref/@file}.html#{$ref/@name}"><xsl:value-of select="$token"/></a>      </xsl:when>      <xsl:otherwise>        <xsl:value-of select="$token"/>      </xsl:otherwise>    </xsl:choose>  </xsl:template>  <!-- dumps a string, making cross-reference links -->  <xsl:template name="dumptext">    <xsl:param name="text"/>    <xsl:variable name="ctxt" select='.'/>    <!-- <xsl:value-of select="$text"/> -->    <xsl:for-each select="str:tokenize($text, ' &#9;')">      <xsl:apply-templates select="$ctxt" mode='dumptoken'>        <xsl:with-param name="token" select="string(.)"/>      </xsl:apply-templates>      <xsl:if test="position() != last()">        <xsl:text> </xsl:text>      </xsl:if>    </xsl:for-each>  </xsl:template>  <xsl:template match="macro" mode="toc">    <pre class="programlisting">    <xsl:text>#define </xsl:text><a href="#{@name}"><xsl:value-of select="@name"/></a>    </pre>  </xsl:template>  <xsl:template match="variable" mode="toc">    <pre class="programlisting">    <xsl:text>Variable </xsl:text>    <xsl:call-template name="dumptext">      <xsl:with-param name="text" select="string(@type)"/>    </xsl:call-template>    <xsl:text> </xsl:text>    <a name="{@name}"></a>    <xsl:value-of select="@name"/>    <xsl:text></xsl:text>    </pre>  </xsl:template>  <xsl:template match="typedef" mode="toc">    <xsl:variable name="name" select="string(@name)"/>    <pre class="programlisting">    <xsl:choose>      <xsl:when test="@type = 'enum'">	<xsl:text>Enum </xsl:text>	<a href="#{$name}"><xsl:value-of select="$name"/></a>	<xsl:text></xsl:text>      </xsl:when>      <xsl:otherwise>	<xsl:text>Typedef </xsl:text>	<xsl:call-template name="dumptext">	  <xsl:with-param name="text" select="@type"/>	</xsl:call-template>	<xsl:text> </xsl:text>	<a name="{$name}"><xsl:value-of select="$name"/></a>	<xsl:text></xsl:text>      </xsl:otherwise>    </xsl:choose>    </pre>  </xsl:template>  <xsl:template match="typedef[@type = 'enum']">    <xsl:variable name="name" select="string(@name)"/>    <h3>Enum <a name="{$name}"><xsl:value-of select="$name"/></a></h3>    <pre class="programlisting">      <xsl:text>Enum </xsl:text>      <xsl:value-of select="$name"/>      <xsl:text> {</xsl:text>      <xsl:for-each select="/api/symbols/enum[@type = $name]">        <xsl:sort select="@value" data-type="number" order="ascending"/>        <xsl:text>    </xsl:text>        <a name="{@name}"><xsl:value-of select="@name"/></a>        <xsl:text> = </xsl:text>        <xsl:value-of select="@value"/>        <xsl:if test="@info != ''">	  <xsl:text> : </xsl:text>	  <xsl:call-template name="dumptext">	    <xsl:with-param name="text" select="@info"/>	  </xsl:call-template>        </xsl:if>        <xsl:text></xsl:text>      </xsl:for-each>      <xsl:text>}</xsl:text>    </pre>  </xsl:template>  <xsl:template match="struct" mode="toc">    <pre class="programlisting">    <xsl:text>Structure </xsl:text><a href="#{@name}"><xsl:value-of select="@name"/></a><br/>    <xsl:value-of select="@type"/><xsl:text></xsl:text>    <xsl:if test="not(field)">      <xsl:text>The content of this structure is not made public by the API.</xsl:text>    </xsl:if>    </pre>  </xsl:template>  <xsl:template match="struct">    <h3><a name="{@name}">Structure <xsl:value-of select="@name"/></a></h3>    <pre class="programlisting">    <xsl:text>Structure </xsl:text><xsl:value-of select="@name"/><br/>    <xsl:value-of select="@type"/><xsl:text> {</xsl:text>    <xsl:if test="not(field)">      <xsl:text>The content of this structure is not made public by the API.</xsl:text>    </xsl:if>    <xsl:for-each select="field">        <xsl:text>    </xsl:text>	<xsl:call-template name="dumptext">	  <xsl:with-param name="text" select="@type"/>	</xsl:call-template>	<xsl:text>&#9;</xsl:text>	<xsl:value-of select="@name"/>	<xsl:if test="@info != ''">	  <xsl:text>&#9;: </xsl:text>	  <xsl:call-template name="dumptext">	    <xsl:with-param name="text" select="substring(@info, 1, 40)"/>	  </xsl:call-template>	</xsl:if>	<xsl:text></xsl:text>    </xsl:for-each>    <xsl:text>}</xsl:text>    </pre>  </xsl:template>  <xsl:template match="macro">    <xsl:variable name="name" select="string(@name)"/>    <h3><a name="{$name}"></a>Macro: <xsl:value-of select="$name"/></h3>    <pre><xsl:text>#define </xsl:text><xsl:value-of select="$name"/></pre>    <p>    <xsl:call-template name="dumptext">      <xsl:with-param name="text" select="info"/>    </xsl:call-template>    </p><xsl:text></xsl:text>  </xsl:template>  <xsl:template match="function" mode="toc">    <xsl:variable name="name" select="string(@name)"/>    <xsl:variable name="nlen" select="string-length($name)"/>    <xsl:variable name="tlen" select="string-length(return/@type)"/>    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>    <pre class="programlisting">    <xsl:call-template name="dumptext">      <xsl:with-param name="text" select="return/@type"/>    </xsl:call-template>    <xsl:text>&#9;</xsl:text>    <a href="#{@name}"><xsl:value-of select="@name"/></a>    <xsl:if test="$blen - 40 &lt; -8">      <xsl:text>&#9;</xsl:text>    </xsl:if>    <xsl:if test="$blen - 40 &lt; 0">      <xsl:text>&#9;</xsl:text>    </xsl:if>    <xsl:text>&#9;(</xsl:text>    <xsl:if test="not(arg)">      <xsl:text>void</xsl:text>    </xsl:if>    <xsl:for-each select="arg">      <xsl:call-template name="dumptext">        <xsl:with-param name="text" select="@type"/>      </xsl:call-template>      <xsl:text> </xsl:text>      <xsl:value-of select="@name"/>      <xsl:if test="position() != last()">        <xsl:text>, </xsl:text><br/>	<xsl:if test="$blen - 40 &gt; 8">	  <xsl:text>&#9;</xsl:text>	</xsl:if>	<xsl:if test="$blen - 40 &gt; 0">	  <xsl:text>&#9;</xsl:text>	</xsl:if>	<xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>      </xsl:if>    </xsl:for-each>    <xsl:text>)</xsl:text>    </pre><xsl:text></xsl:text>  </xsl:template>  <xsl:template match="functype" mode="toc">    <xsl:variable name="name" select="string(@name)"/>    <xsl:variable name="nlen" select="string-length($name)"/>    <xsl:variable name="tlen" select="string-length(return/@type)"/>    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>    <pre class="programlisting">    <xsl:text>Function type: </xsl:text>    <a href="#{$name}"><xsl:value-of select="$name"/></a>    <xsl:text></xsl:text>    <xsl:call-template name="dumptext">      <xsl:with-param name="text" select="return/@type"/>    </xsl:call-template>    <xsl:text>&#9;</xsl:text>    <a href="#{$name}"><xsl:value-of select="$name"/></a>    <xsl:if test="$blen - 40 &lt; -8">      <xsl:text>&#9;</xsl:text>    </xsl:if>    <xsl:if test="$blen - 40 &lt; 0">      <xsl:text>&#9;</xsl:text>    </xsl:if>    <xsl:text>&#9;(</xsl:text>    <xsl:if test="not(arg)">      <xsl:text>void</xsl:text>    </xsl:if>    <xsl:for-each select="arg">      <xsl:call-template name="dumptext">        <xsl:with-param name="text" select="@type"/>      </xsl:call-template>      <xsl:text> </xsl:text>      <xsl:value-of select="@name"/>      <xsl:if test="position() != last()">        <xsl:text>, </xsl:text><br/>	<xsl:if test="$blen - 40 &gt; 8">	  <xsl:text>&#9;</xsl:text>	</xsl:if>	<xsl:if test="$blen - 40 &gt; 0">	  <xsl:text>&#9;</xsl:text>	</xsl:if>	<xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>      </xsl:if>    </xsl:for-each>    <xsl:text>)</xsl:text>    </pre>    <xsl:text></xsl:text>  </xsl:template>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -