You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

site.xsl 7.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. <xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl="urn:schemas-microsoft-com:xslt">
  2. <xsl:output method="html" encoding="UTF-8"/>
  3. <xsl:key name="cat" match="category" use="@name"/>
  4. <xsl:template match="/">
  5. <xsl:for-each select="site">
  6. <html>
  7. <head>
  8. <title>org.eclipse.jgit.updatesite</title>
  9. <style>@import url("web/site.css");</style>
  10. </head>
  11. <body>
  12. <h1 class="title">org.eclipse.jgit.updatesite</h1>
  13. <p class="bodyText"><xsl:value-of select="description"/></p>
  14. <table width="100%" border="0" cellspacing="1" cellpadding="2">
  15. <xsl:for-each select="category-def">
  16. <xsl:sort select="@label" order="ascending" case-order="upper-first"/>
  17. <xsl:sort select="@name" order="ascending" case-order="upper-first"/>
  18. <xsl:if test="count(key('cat',@name)) != 0">
  19. <tr class="header">
  20. <td class="sub-header" width="30%">
  21. <xsl:value-of select="@name"/>
  22. </td>
  23. <td class="sub-header" width="70%">
  24. <xsl:value-of select="@label"/>
  25. </td>
  26. </tr>
  27. <xsl:for-each select="key('cat',@name)">
  28. <xsl:sort select="ancestor::feature//@version" order="ascending"/>
  29. <xsl:sort select="ancestor::feature//@id" order="ascending" case-order="upper-first"/>
  30. <tr>
  31. <xsl:choose>
  32. <xsl:when test="(position() mod 2 = 1)">
  33. <xsl:attribute name="class">dark-row</xsl:attribute>
  34. </xsl:when>
  35. <xsl:otherwise>
  36. <xsl:attribute name="class">light-row</xsl:attribute>
  37. </xsl:otherwise>
  38. </xsl:choose>
  39. <td class="log-text" id="indent">
  40. <xsl:choose>
  41. <xsl:when test="ancestor::feature//@label">
  42. <a href="{ancestor::feature//@url}"><xsl:value-of select="ancestor::feature//@label"/></a>
  43. <br/>
  44. <div id="indent">
  45. (<xsl:value-of select="ancestor::feature//@id"/> - <xsl:value-of select="ancestor::feature//@version"/>)
  46. </div>
  47. </xsl:when>
  48. <xsl:otherwise>
  49. <a href="{ancestor::feature//@url}"><xsl:value-of select="ancestor::feature//@id"/> - <xsl:value-of select="ancestor::feature//@version"/></a>
  50. </xsl:otherwise>
  51. </xsl:choose>
  52. <br />
  53. </td>
  54. <td>
  55. <table>
  56. <xsl:if test="ancestor::feature//@os">
  57. <tr><td class="log-text" id="indent">Operating Systems:</td>
  58. <td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@os"/></td>
  59. </tr>
  60. </xsl:if>
  61. <xsl:if test="ancestor::feature//@ws">
  62. <tr><td class="log-text" id="indent">Windows Systems:</td>
  63. <td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@ws"/></td>
  64. </tr>
  65. </xsl:if>
  66. <xsl:if test="ancestor::feature//@nl">
  67. <tr><td class="log-text" id="indent">Languages:</td>
  68. <td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@nl"/></td>
  69. </tr>
  70. </xsl:if>
  71. <xsl:if test="ancestor::feature//@arch">
  72. <tr><td class="log-text" id="indent">Architecture:</td>
  73. <td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@arch"/></td>
  74. </tr>
  75. </xsl:if>
  76. </table>
  77. </td>
  78. </tr>
  79. </xsl:for-each>
  80. <tr><td class="spacer"><br/></td><td class="spacer"><br/></td></tr>
  81. </xsl:if>
  82. </xsl:for-each>
  83. <xsl:if test="count(feature) &gt; count(feature/category)">
  84. <tr class="header">
  85. <td class="sub-header" colspan="2">
  86. Uncategorized
  87. </td>
  88. </tr>
  89. </xsl:if>
  90. <xsl:choose>
  91. <xsl:when test="function-available('msxsl:node-set')">
  92. <xsl:variable name="rtf-nodes">
  93. <xsl:for-each select="feature[not(category)]">
  94. <xsl:sort select="@id" order="ascending" case-order="upper-first"/>
  95. <xsl:sort select="@version" order="ascending" />
  96. <xsl:value-of select="."/>
  97. <xsl:copy-of select="." />
  98. </xsl:for-each>
  99. </xsl:variable>
  100. <xsl:variable name="myNodeSet" select="msxsl:node-set($rtf-nodes)/*"/>
  101. <xsl:for-each select="$myNodeSet">
  102. <tr>
  103. <xsl:choose>
  104. <xsl:when test="position() mod 2 = 1">
  105. <xsl:attribute name="class">dark-row</xsl:attribute>
  106. </xsl:when>
  107. <xsl:otherwise>
  108. <xsl:attribute name="class">light-row</xsl:attribute>
  109. </xsl:otherwise>
  110. </xsl:choose>
  111. <td class="log-text" id="indent">
  112. <xsl:choose>
  113. <xsl:when test="@label">
  114. <a href="{@url}"><xsl:value-of select="@label"/></a>
  115. <br />
  116. <div id="indent">
  117. (<xsl:value-of select="@id"/> - <xsl:value-of select="@version"/>)
  118. </div>
  119. </xsl:when>
  120. <xsl:otherwise>
  121. <a href="{@url}"><xsl:value-of select="@id"/> - <xsl:value-of select="@version"/></a>
  122. </xsl:otherwise>
  123. </xsl:choose>
  124. <br /><br />
  125. </td>
  126. <td>
  127. <table>
  128. <xsl:if test="@os">
  129. <tr><td class="log-text" id="indent">Operating Systems:</td>
  130. <td class="log-text" id="indent"><xsl:value-of select="@os"/></td>
  131. </tr>
  132. </xsl:if>
  133. <xsl:if test="@ws">
  134. <tr><td class="log-text" id="indent">Windows Systems:</td>
  135. <td class="log-text" id="indent"><xsl:value-of select="@ws"/></td>
  136. </tr>
  137. </xsl:if>
  138. <xsl:if test="@nl">
  139. <tr><td class="log-text" id="indent">Languages:</td>
  140. <td class="log-text" id="indent"><xsl:value-of select="@nl"/></td>
  141. </tr>
  142. </xsl:if>
  143. <xsl:if test="@arch">
  144. <tr><td class="log-text" id="indent">Architecture:</td>
  145. <td class="log-text" id="indent"><xsl:value-of select="@arch"/></td>
  146. </tr>
  147. </xsl:if>
  148. </table>
  149. </td>
  150. </tr>
  151. </xsl:for-each>
  152. </xsl:when>
  153. <xsl:otherwise>
  154. <xsl:for-each select="feature[not(category)]">
  155. <xsl:sort select="@id" order="ascending" case-order="upper-first"/>
  156. <xsl:sort select="@version" order="ascending" />
  157. <tr>
  158. <xsl:choose>
  159. <xsl:when test="count(preceding-sibling::feature[not(category)]) mod 2 = 1">
  160. <xsl:attribute name="class">dark-row</xsl:attribute>
  161. </xsl:when>
  162. <xsl:otherwise>
  163. <xsl:attribute name="class">light-row</xsl:attribute>
  164. </xsl:otherwise>
  165. </xsl:choose>
  166. <td class="log-text" id="indent">
  167. <xsl:choose>
  168. <xsl:when test="@label">
  169. <a href="{@url}"><xsl:value-of select="@label"/></a>
  170. <br />
  171. <div id="indent">
  172. (<xsl:value-of select="@id"/> - <xsl:value-of select="@version"/>)
  173. </div>
  174. </xsl:when>
  175. <xsl:otherwise>
  176. <a href="{@url}"><xsl:value-of select="@id"/> - <xsl:value-of select="@version"/></a>
  177. </xsl:otherwise>
  178. </xsl:choose>
  179. <br /><br />
  180. </td>
  181. <td>
  182. <table>
  183. <xsl:if test="@os">
  184. <tr><td class="log-text" id="indent">Operating Systems:</td>
  185. <td class="log-text" id="indent"><xsl:value-of select="@os"/></td>
  186. </tr>
  187. </xsl:if>
  188. <xsl:if test="@ws">
  189. <tr><td class="log-text" id="indent">Windows Systems:</td>
  190. <td class="log-text" id="indent"><xsl:value-of select="@ws"/></td>
  191. </tr>
  192. </xsl:if>
  193. <xsl:if test="@nl">
  194. <tr><td class="log-text" id="indent">Languages:</td>
  195. <td class="log-text" id="indent"><xsl:value-of select="@nl"/></td>
  196. </tr>
  197. </xsl:if>
  198. <xsl:if test="@arch">
  199. <tr><td class="log-text" id="indent">Architecture:</td>
  200. <td class="log-text" id="indent"><xsl:value-of select="@arch"/></td>
  201. </tr>
  202. </xsl:if>
  203. </table>
  204. </td>
  205. </tr>
  206. </xsl:for-each>
  207. </xsl:otherwise>
  208. </xsl:choose>
  209. </table>
  210. </body>
  211. </html>
  212. </xsl:for-each>
  213. </xsl:template>
  214. </xsl:stylesheet>