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.

announcement2txt.xsl 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?xml version="1.0"?>
  2. <xsl:stylesheet version="1.0"
  3. xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  4. <xsl:import href="announcement.xsl"/>
  5. <xsl:output method="text" indent="no"/>
  6. <xsl:template match="announcement">
  7. <xsl:variable name="titlelen" select="string-length(project)+9"/>
  8. <text>
  9. <xsl:value-of select="project"/><xsl:text> Released
  10. </xsl:text>
  11. <xsl:call-template name="line">
  12. <xsl:with-param name="len" select="$titlelen"/>
  13. </xsl:call-template>
  14. <xsl:text>
  15. </xsl:text>
  16. <xsl:apply-templates select="abstract"/>
  17. <xsl:apply-templates select="body"/>
  18. <xsl:text>
  19. For more information about </xsl:text>
  20. <xsl:value-of select="project"/>
  21. <xsl:text>, please go to
  22. </xsl:text>
  23. <xsl:value-of select="@site"/>
  24. <xsl:text>
  25. Changes with </xsl:text>
  26. <xsl:value-of select="project"/>
  27. <xsl:text>
  28. </xsl:text>
  29. <xsl:apply-templates select="changes"/>
  30. </text>
  31. </xsl:template>
  32. <xsl:template match="project"/>
  33. <xsl:template match="title"/>
  34. <xsl:template match="subproject">
  35. <xsl:variable name="titlelen" select="string-length(title)"/>
  36. <xsl:text>
  37. </xsl:text>
  38. <xsl:value-of select="title"/>
  39. <xsl:text>
  40. </xsl:text>
  41. <xsl:call-template name="line">
  42. <xsl:with-param name="len" select="$titlelen"/>
  43. </xsl:call-template>
  44. <xsl:text>
  45. </xsl:text>
  46. <xsl:apply-templates select="abstract"/>
  47. <xsl:text>
  48. For more information about </xsl:text>
  49. <xsl:value-of select="title"/>
  50. <xsl:text>, please go to
  51. </xsl:text>
  52. <xsl:value-of select="@site"/>
  53. <xsl:text>
  54. Changes with </xsl:text>
  55. <xsl:value-of select="title"/>
  56. <xsl:text>
  57. </xsl:text>
  58. <xsl:apply-templates select="changes"/>
  59. </xsl:template>
  60. <xsl:template match="abstract">
  61. <xsl:apply-templates/>
  62. </xsl:template>
  63. <xsl:template match="p">
  64. <xsl:apply-templates/>
  65. </xsl:template>
  66. <xsl:template match="link">
  67. <xsl:value-of select="."/>
  68. <xsl:text> (</xsl:text>
  69. <xsl:value-of select="@href"/>
  70. <xsl:text>)</xsl:text>
  71. </xsl:template>
  72. <xsl:template match="release">
  73. <xsl:for-each select="action">
  74. <xsl:text>*) </xsl:text>
  75. <xsl:value-of select="normalize-space(.)"/><xsl:text> </xsl:text>
  76. <xsl:if test="@dev">
  77. <xsl:text>[</xsl:text>
  78. <xsl:value-of select="@dev"/>
  79. <xsl:text>]</xsl:text>
  80. </xsl:if>
  81. <xsl:text>
  82. </xsl:text>
  83. </xsl:for-each>
  84. </xsl:template>
  85. <xsl:template name="line">
  86. <xsl:param name="len"/>
  87. <xsl:if test="number($len) > 0">
  88. <xsl:text>-</xsl:text>
  89. <xsl:call-template name="line">
  90. <xsl:with-param name="len" select="number($len)-1"/>
  91. </xsl:call-template>
  92. </xsl:if>
  93. </xsl:template>
  94. </xsl:stylesheet>