Source files of fsfe.org, pdfreaders.org, freeyourandroid.org, ilovefs.org, drm.info, and test.fsfe.org. Contribute: https://fsfe.org/contribute/web/
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.

printable.xsl 5.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
  4. <!-- Fill dynamic content -->
  5. <xsl:template match="dynamic-content">
  6. <xsl:variable name="type"><xsl:value-of select="@type"/></xsl:variable>
  7. <xsl:variable name="text-online"><xsl:value-of select="text[@id='online']"/></xsl:variable>
  8. <xsl:variable name="text-pdf-F"><xsl:value-of select="text[@id='pdf-F']"/></xsl:variable>
  9. <xsl:variable name="text-pdf-G"><xsl:value-of select="text[@id='pdf-G']"/></xsl:variable>
  10. <xsl:variable name="text-pdf-0"><xsl:value-of select="text[@id='pdf-0']"/></xsl:variable>
  11. <xsl:variable name="text-moreinfo"><xsl:value-of select="text[@id='moreinfo']"/></xsl:variable>
  12. <xsl:for-each select="/html/set/printable[@type=$type]">
  13. <xsl:sort select="@id"/>
  14. <xsl:variable name="id"><xsl:value-of select="@id"/></xsl:variable>
  15. <!-- Header -->
  16. <xsl:element name="h3">
  17. <xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute>
  18. <xsl:choose>
  19. <xsl:when test="translation[@lang=/html/@lang]!=''">
  20. <xsl:value-of select="translation[@lang=/html/@lang]"/>
  21. </xsl:when>
  22. <xsl:otherwise>
  23. <xsl:value-of select="translation[@lang='en']"/>
  24. </xsl:otherwise>
  25. </xsl:choose>
  26. </xsl:element>
  27. <xsl:element name="ul">
  28. <!-- Link to online version -->
  29. <xsl:element name="li">
  30. <xsl:element name="a">
  31. <xsl:attribute name="href">
  32. <xsl:value-of select="$id"/>
  33. <xsl:text>.html</xsl:text>
  34. </xsl:attribute>
  35. <xsl:value-of select="$text-online"/>
  36. </xsl:element>
  37. </xsl:element>
  38. <!-- A3 PDF versions -->
  39. <xsl:if test="$type='folder'">
  40. <xsl:element name="li">
  41. <xsl:value-of select="$text-pdf-F"/>
  42. <xsl:element name="ul">
  43. <xsl:for-each select="translation">
  44. <xsl:sort select="@lang"/>
  45. <xsl:element name="li">
  46. <xsl:value-of select="@langname"/>
  47. <xsl:text>: </xsl:text>
  48. <xsl:element name="a">
  49. <xsl:attribute name="href">
  50. <xsl:value-of select="$id"/>
  51. <xsl:text>.</xsl:text>
  52. <xsl:value-of select="@lang"/>
  53. <xsl:text>.F.pdf</xsl:text>
  54. </xsl:attribute>
  55. <xsl:value-of select="node()"/>
  56. </xsl:element>
  57. </xsl:element>
  58. </xsl:for-each>
  59. </xsl:element>
  60. </xsl:element>
  61. </xsl:if>
  62. <!-- A4 PDF versions with graphics -->
  63. <xsl:element name="li">
  64. <xsl:value-of select="$text-pdf-G"/>
  65. <xsl:element name="ul">
  66. <xsl:for-each select="translation">
  67. <xsl:sort select="@lang"/>
  68. <xsl:element name="li">
  69. <xsl:value-of select="@langname"/>
  70. <xsl:text>: </xsl:text>
  71. <xsl:element name="a">
  72. <xsl:attribute name="href">
  73. <xsl:value-of select="$id"/>
  74. <xsl:text>.</xsl:text>
  75. <xsl:value-of select="@lang"/>
  76. <xsl:text>.G.pdf</xsl:text>
  77. </xsl:attribute>
  78. <xsl:value-of select="node()"/>
  79. </xsl:element>
  80. </xsl:element>
  81. </xsl:for-each>
  82. </xsl:element>
  83. </xsl:element>
  84. <!-- A4 PDF versions without graphics -->
  85. <xsl:element name="li">
  86. <xsl:value-of select="$text-pdf-0"/>
  87. <xsl:element name="ul">
  88. <xsl:for-each select="translation">
  89. <xsl:sort select="@lang"/>
  90. <xsl:element name="li">
  91. <xsl:value-of select="@langname"/>
  92. <xsl:text>: </xsl:text>
  93. <xsl:element name="a">
  94. <xsl:attribute name="href">
  95. <xsl:value-of select="$id"/>
  96. <xsl:text>.</xsl:text>
  97. <xsl:value-of select="@lang"/>
  98. <xsl:text>.0.pdf</xsl:text>
  99. </xsl:attribute>
  100. <xsl:value-of select="node()"/>
  101. </xsl:element>
  102. </xsl:element>
  103. </xsl:for-each>
  104. </xsl:element>
  105. </xsl:element>
  106. <!-- Further information -->
  107. <xsl:if test="$type='leaflet'">
  108. <xsl:element name="li">
  109. <xsl:element name="a">
  110. <xsl:attribute name="href">
  111. <xsl:value-of select="@moreinfo"/>
  112. </xsl:attribute>
  113. <xsl:value-of select="$text-moreinfo"/>
  114. </xsl:element>
  115. </xsl:element>
  116. </xsl:if>
  117. </xsl:element>
  118. </xsl:for-each>
  119. </xsl:template>
  120. <!-- Do not copy <set> to output at all -->
  121. <xsl:template match="set" />
  122. <!-- For all other nodes, copy verbatim -->
  123. <xsl:template match="@*|node()" priority="-1">
  124. <xsl:copy>
  125. <xsl:apply-templates select="@*|node()"/>
  126. </xsl:copy>
  127. </xsl:template>
  128. </xsl:stylesheet>