home *** CD-ROM | disk | FTP | other *** search
/ PC World 2003 November / PCWorld_2003-11_cd.bin / Komunik / apache / apache_2.0.47-win32-x86-no_ssl.msi / Data.Cab / F251379_common.xsl < prev    next >
Encoding:
Extensible Markup Language  |  2003-06-30  |  7.8 KB  |  227 lines

  1. <?xml version="1.0"?>
  2. <xsl:stylesheet version="1.0"
  3.               xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  4.                   xmlns="http://www.w3.org/1999/xhtml">
  5.  
  6. <!-- Constants used for case translation -->
  7. <xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'" />
  8. <xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
  9.  
  10. <!-- ==================================================================== -->
  11. <!-- Process a documentation section                                      -->
  12. <!-- ==================================================================== -->
  13. <xsl:template match="section">
  14. <xsl:apply-templates/>
  15. </xsl:template>
  16.  
  17. <xsl:template match="section/title">
  18. <xsl:text>\subsection*{</xsl:text>
  19. <xsl:apply-templates/>
  20. <xsl:text>}</xsl:text><xsl:call-template name="label"/>
  21. <xsl:text>
  22. </xsl:text>
  23. </xsl:template>
  24.  
  25. <xsl:template match="section/section/title">
  26. <xsl:text>\subsubsection*{</xsl:text>
  27. <xsl:apply-templates/>
  28. <xsl:text>}</xsl:text><xsl:call-template name="label"/>
  29. <xsl:text>
  30. </xsl:text>
  31. </xsl:template>
  32.  
  33. <xsl:template match="section/section/section/title">
  34. <xsl:text>\subsubsection*{</xsl:text>
  35. <xsl:apply-templates/>
  36. <xsl:text>}</xsl:text><xsl:call-template name="label"/>
  37. <xsl:text>
  38. </xsl:text>
  39. </xsl:template>
  40.  
  41. <xsl:template match="note/title"></xsl:template>
  42. <xsl:template match="example/title"></xsl:template>
  43.  
  44. <xsl:template name="label">
  45. <xsl:if test="../@id">
  46. <xsl:variable name="metafile" select="document(/*/@metafile)/metafile" />
  47. <xsl:text>\label{</xsl:text><xsl:value-of 
  48. select="$metafile/path"/><xsl:value-of 
  49. select="$metafile/basename"/>
  50. <xsl:text>:</xsl:text>
  51. <xsl:value-of select="../@id"/>
  52. <xsl:text>}</xsl:text>
  53. </xsl:if>
  54. </xsl:template>
  55.  
  56.  
  57. <!-- ==================================================================== -->
  58. <!-- <example>                                                            -->
  59. <!-- ==================================================================== -->
  60. <!-- verbatim inside of fbox doesn't work for some reason -->
  61. <xsl:template match="example">
  62. <xsl:text>\par\smallskip\begin{center}</xsl:text>
  63. <xsl:if test="not(pre)"><xsl:text>\fbox{</xsl:text></xsl:if>
  64. <xsl:text>\begin{minipage}{.8\textwidth}\begin{flushleft}</xsl:text>
  65. <xsl:apply-templates select="title" mode="print" />
  66. <xsl:text>{\ttfamily\small </xsl:text>
  67. <xsl:text>\noindent </xsl:text><xsl:apply-templates/>
  68. <xsl:text>}</xsl:text>
  69. <xsl:text>\end{flushleft}\end{minipage}</xsl:text>
  70. <xsl:if test="not(pre)"><xsl:text>}</xsl:text></xsl:if>
  71. <xsl:text>\end{center}\par\smallskip</xsl:text>
  72. </xsl:template>
  73.  
  74. <xsl:template match="example/title" mode="print">
  75. <xsl:text>\textbf{</xsl:text>
  76.     <xsl:apply-templates/>
  77. <xsl:text>}\\ </xsl:text>
  78. </xsl:template>
  79.  
  80.  
  81. <!-- ==================================================================== -->
  82. <!-- indentations                                                         -->
  83. <!-- ==================================================================== -->
  84. <xsl:template match="indent">
  85. <xsl:text>\begin{list}{}{\topsep 0pt\rightmargin 0pt\leftmargin 2em}
  86. \item[] </xsl:text>
  87. <xsl:apply-templates/>
  88. <xsl:text>\end{list}</xsl:text>
  89. </xsl:template>
  90.  
  91. <!-- ==================================================================== -->
  92. <!-- <note>                                                               -->
  93. <!-- ==================================================================== -->
  94. <xsl:template match="note">
  95. <xsl:text>\par\smallskip
  96. {\Huge </xsl:text>
  97. <xsl:choose>
  98. <xsl:when test="@type='warning'">
  99.   <xsl:text>\fbox{!} </xsl:text>
  100. </xsl:when>
  101. <xsl:otherwise>
  102.   <xsl:text>$\Longrightarrow$</xsl:text>
  103. </xsl:otherwise>
  104. </xsl:choose>
  105. <xsl:text>}\begin{minipage}[t]{.8\textwidth}
  106. \noindent </xsl:text>
  107. <xsl:apply-templates select="title" mode="print" />
  108. <xsl:apply-templates/>
  109. <xsl:text>\end{minipage}\par\smallskip</xsl:text>
  110. </xsl:template>
  111.  
  112. <xsl:template match="note/title" mode="print">
  113. <xsl:text>\textbf{</xsl:text>
  114.     <xsl:apply-templates/>
  115. <xsl:text>} \\
  116. \noindent </xsl:text>
  117. </xsl:template>
  118.  
  119.  
  120. <!-- ==================================================================== -->
  121. <!-- <directive>                                                          -->
  122. <!-- Inserts link to another directive, which might be in another module. -->
  123. <!-- References are converted into lower case.                            -->
  124. <!-- ==================================================================== -->
  125. <xsl:template match="directive" name="directive">
  126. <xsl:text>\textsc{</xsl:text>
  127.    <xsl:if test="@type='section'"><xsl:text>\textless{}</xsl:text></xsl:if>
  128.    <xsl:text>\hyperlink{/mod/</xsl:text>
  129.    <xsl:value-of select="@module"/>
  130.    <xsl:text>:</xsl:text>
  131.    <xsl:value-of select="translate(.,$uppercase,$lowercase)"/>
  132.    <xsl:text>}{</xsl:text>
  133.         <xsl:apply-templates/>
  134.    <xsl:text>}</xsl:text>
  135.    <xsl:if test="@type='section'"><xsl:text>\textgreater{}</xsl:text></xsl:if>
  136. <xsl:text>}</xsl:text>
  137. </xsl:template>
  138. <!-- /directive -->
  139.  
  140. <!-- ==================================================================== -->
  141. <!-- <module>                                                             -->
  142. <!-- Inserts a link to refereed module                                    -->
  143. <!-- ==================================================================== -->
  144. <xsl:template match="module" name="module">
  145. <xsl:text>\textsc{\hyperlink{/mod/</xsl:text>
  146.   <xsl:value-of select="."/>
  147.   <xsl:text>}{</xsl:text>
  148.     <xsl:apply-templates/>
  149.   <xsl:text>}</xsl:text>
  150. <xsl:text>}</xsl:text>
  151. </xsl:template>
  152. <!-- /module -->
  153.  
  154.  
  155.  
  156. <!-- ==================================================================== -->
  157. <!-- <related>                                                            -->
  158. <!-- ==================================================================== -->
  159. <xsl:template match="related">
  160. <xsl:text>
  161. \fbox{\begin{tabular}{rr}
  162. \begin{minipage}[t]{.49\linewidth}
  163. \textbf{</xsl:text>
  164. <xsl:value-of select="$messages/message[@name='relatedmodules']" />
  165. <xsl:text>} \\
  166. </xsl:text>
  167. <xsl:for-each select="modulelist/module">
  168. <xsl:call-template name="module"/>
  169. <xsl:text> \\
  170. </xsl:text>
  171. </xsl:for-each>
  172. <xsl:text>
  173. \end{minipage} & 
  174. \begin{minipage}[t]{.4\linewidth}
  175. \textbf{</xsl:text>
  176. <xsl:value-of select="$messages/message[@name='relateddirectives']" />
  177. <xsl:text>} \\
  178. </xsl:text>
  179. <xsl:for-each select="directivelist/directive">
  180. <xsl:call-template name="directive"/>
  181. <xsl:text> \\
  182. </xsl:text>
  183. </xsl:for-each>
  184. <xsl:text>
  185. \end{minipage}
  186. \end{tabular}}
  187. \smallskip
  188. </xsl:text>
  189. </xsl:template>
  190.  
  191.  
  192. <!-- ==================================================================== -->
  193. <!-- <seealso>                                                            -->
  194. <!-- ==================================================================== -->
  195. <xsl:template name="seealso">
  196.      <xsl:if test="seealso">
  197.     <xsl:text>\textbf{</xsl:text>
  198.         <xsl:value-of select="$messages/message [@name='seealso']" />
  199.         <xsl:text>}\begin{itemize}</xsl:text>
  200.         <xsl:for-each select="seealso">
  201.         <xsl:text>\item </xsl:text>
  202.           <xsl:apply-templates />
  203.         <xsl:text>
  204. </xsl:text>
  205.         </xsl:for-each>
  206. <xsl:text>\end{itemize}</xsl:text>
  207.      </xsl:if>
  208. </xsl:template>
  209.  
  210.  
  211. <!-- ==================================================================== -->
  212. <!-- section-title                                                        -->
  213. <!-- ==================================================================== -->
  214. <xsl:template name="section-title">
  215. <xsl:variable name="metafile" select="document(/*/@metafile)/metafile" />
  216. <xsl:text>\section{</xsl:text><xsl:apply-templates select="title"/>
  217. <xsl:text>}</xsl:text>
  218. <xsl:text>\label{</xsl:text><xsl:value-of 
  219. select="$metafile/path"/><xsl:value-of 
  220. select="$metafile/basename"/>
  221. <xsl:text>}
  222. </xsl:text>
  223. </xsl:template>
  224.  
  225. </xsl:stylesheet>
  226.  
  227.