phpdoc_docs.xslt 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?xml version="1.0"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <!-- $Id: phpdoc_docs.xslt 1047 2005-07-27 18:08:10Z jsweat $ -->
  4. <xsl:output method="xml" indent="yes" cdata-section-elements="program-listing"/>
  5. <xsl:preserve-space elements="*"/>
  6. <xsl:template match="/">
  7. <refentry>
  8. <xsl:attribute name="id"><![CDATA[{@id}]]></xsl:attribute>
  9. <xsl:call-template name="named"/>
  10. <xsl:call-template name="synopsis"/>
  11. <![CDATA[{@toc}]]>
  12. <xsl:call-template name="body"/>
  13. </refentry>
  14. </xsl:template>
  15. <xsl:template name="named">
  16. <refnamediv>
  17. <refname><xsl:value-of select="/page/@here"/></refname>
  18. <refpurpose>
  19. <xsl:apply-templates select="//introduction/p/node()"/>
  20. </refpurpose>
  21. </refnamediv>
  22. </xsl:template>
  23. <xsl:template name="synopsis">
  24. <xsl:apply-templates select="//refsynopsisdiv"/>
  25. </xsl:template>
  26. <xsl:template name="body">
  27. <xsl:apply-templates select="//content/node()"/>
  28. </xsl:template>
  29. <xsl:template match="p">
  30. <para>
  31. <xsl:apply-templates/>
  32. </para>
  33. </xsl:template>
  34. <xsl:template match="table">
  35. <table frame="all">
  36. <xsl:attribute name="id"><![CDATA[{@id features}}]]></xsl:attribute>
  37. <xsl:apply-templates/>
  38. </table>
  39. </xsl:template>
  40. <xsl:template match="tr">
  41. <row>
  42. <xsl:apply-templates/>
  43. </row>
  44. </xsl:template>
  45. <xsl:template match="td">
  46. <entry>
  47. <xsl:apply-templates/>
  48. </entry>
  49. </xsl:template>
  50. <xsl:template match="php">
  51. <programlisting role="php"><xsl:text disable-output-escaping="yes">&lt;</xsl:text>![CDATA[
  52. <xsl:call-template name="strip_strong">
  53. <xsl:with-param name="raw" select="."/>
  54. </xsl:call-template>
  55. ]]<xsl:text disable-output-escaping="yes">&gt;</xsl:text></programlisting>
  56. </xsl:template>
  57. <xsl:template match="code">
  58. <span class="new_code">
  59. <xsl:apply-templates/>
  60. </span>
  61. </xsl:template>
  62. <xsl:template match="section">
  63. <refsect1>
  64. <xsl:attribute name="id">{@id <xsl:value-of select="@name"/>}</xsl:attribute>
  65. <title><xsl:value-of select="@title"/></title>
  66. <xsl:apply-templates/>
  67. </refsect1>
  68. </xsl:template>
  69. <xsl:template match="introduction">
  70. </xsl:template>
  71. <xsl:template match="news">
  72. </xsl:template>
  73. <xsl:template match="a[@class = 'target']">
  74. <title><xsl:value-of select="h2"/></title>
  75. </xsl:template>
  76. <xsl:template match="a">
  77. <xsl:text><![CDATA[{@link ]]></xsl:text>
  78. <xsl:if test="@href">
  79. <xsl:value-of select="@href"/>
  80. </xsl:if>
  81. <xsl:if test="@local">
  82. <xsl:value-of select="."/><xsl:text>.html</xsl:text>
  83. </xsl:if>
  84. <xsl:text> </xsl:text>
  85. <xsl:apply-templates/>
  86. <xsl:text>}</xsl:text>
  87. </xsl:template>
  88. <xsl:template match="*">
  89. <xsl:copy>
  90. <xsl:for-each select="@*">
  91. <xsl:attribute name="{local-name(.)}"><xsl:value-of select="."/></xsl:attribute>
  92. </xsl:for-each>
  93. <xsl:apply-templates/>
  94. </xsl:copy>
  95. </xsl:template>
  96. <xsl:template name="strip_strong">
  97. <xsl:param name="raw"/>
  98. <xsl:choose>
  99. <xsl:when test="contains($raw, '&lt;strong&gt;') and contains($raw, '&lt;/strong&gt;')">
  100. <xsl:value-of disable-output-escaping="yes" select="substring-before($raw, '&lt;strong&gt;')"/>
  101. <xsl:value-of disable-output-escaping="yes" select="substring-before(substring-after($raw, '&lt;strong&gt;'), '&lt;/strong&gt;')"/>
  102. <xsl:call-template name="strip_strong">
  103. <xsl:with-param name="raw" select="substring-after($raw, '&lt;/strong&gt;')"/>
  104. </xsl:call-template>
  105. </xsl:when>
  106. <xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="$raw"/></xsl:otherwise>
  107. </xsl:choose>
  108. </xsl:template>
  109. </xsl:stylesheet>