home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 May / PCWorld_2004-05_cd.bin / komunikace / apache / apache_2.0.48-win32-x86-no_ssl.msi / Data.Cab / F252973_synopsis.xsl (.txt) < prev    next >
LaTeX Document  |  2003-06-30  |  11KB  |  285 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. <!-- <modulesynopsis>                                                     -->
  7. <!-- ==================================================================== -->
  8. <xsl:template match="modulesynopsis">
  9. <xsl:text>\section{</xsl:text>
  10. <xsl:choose>
  11.   <xsl:when test="../status='Core'">
  12.     <xsl:value-of select="$messages/message [@name='apachecore']" />
  13.   </xsl:when>
  14.   <xsl:when test=".='mpm_common'">
  15.     <xsl:value-of select="$messages/message [@name='apachempmcommon']" />
  16.   </xsl:when>
  17.   <xsl:when test="../status='MPM'">
  18.     <xsl:value-of select="$messages/message [@name='apachempm']" />
  19.     <xsl:text> </xsl:text>
  20.     <xsl:apply-templates select="name"/>
  21.   </xsl:when>
  22.   <xsl:otherwise>
  23.     <xsl:value-of select="$messages/message [@name='apachemodule']" />
  24.     <xsl:text> </xsl:text>
  25.     <xsl:apply-templates select="name"/>
  26.   </xsl:otherwise>
  27. </xsl:choose>
  28. <xsl:text>}\label{</xsl:text>
  29. <xsl:value-of select="concat('/mod/',name)"/>
  30. <xsl:text>}\hypertarget{</xsl:text>
  31. <xsl:value-of select="concat('/mod/',name)"/>
  32. <xsl:text>}{}</xsl:text>
  33. <xsl:text>
  34. \begin{tabular}{lp{.75\linewidth}}
  35. \hline
  36. </xsl:text>
  37. <xsl:value-of select="$messages/message [@name='description']" />
  38. <xsl:text>: &</xsl:text> 
  39. <xsl:apply-templates select="description" />
  40. <xsl:text>\\
  41. </xsl:text>
  42. <xsl:value-of select="$messages/message [@name='status']" />
  43. <xsl:text>: &</xsl:text>
  44. <xsl:value-of select="status" />
  45. <xsl:text>\\
  46. </xsl:text>
  47. <xsl:if test="identifier">
  48. <xsl:value-of select="$messages/message [@name='moduleidentifier']" />
  49. <xsl:text>: &</xsl:text>
  50. <xsl:apply-templates select="identifier" />
  51. <xsl:text>\\
  52. </xsl:text>
  53. </xsl:if>
  54. <xsl:if test="sourcefile">
  55. <xsl:value-of select="$messages/message [@name='sourcefile']" />
  56. <xsl:text>: &</xsl:text>
  57. <xsl:apply-templates select="sourcefile" />
  58. <xsl:text>\\
  59. </xsl:text>
  60. </xsl:if>
  61. <xsl:if test="compatibility">
  62. <xsl:value-of select="$messages/message [@name='compatibility']" />
  63. <xsl:text>: &</xsl:text>
  64. <xsl:apply-templates select="compatibility" />
  65. <xsl:text> \\
  66. </xsl:text>
  67. </xsl:if>
  68. <xsl:text>\hline \end{tabular}
  69. </xsl:text>
  70.     <!-- Summary of module features/usage (1 to 3 paragraphs, -->
  71.     <!-- optional)                                            -->
  72.     <xsl:if test="summary">
  73.       <xsl:text>\subsection*{</xsl:text>
  74.       <xsl:value-of select="$messages/message [@name='summary']" />
  75.       <xsl:text>}
  76. </xsl:text>
  77.       <xsl:apply-templates select="summary" />
  78.      </xsl:if>
  79.      <xsl:text>
  80. \smallskip\textbf{</xsl:text>
  81.      <xsl:value-of select="$messages/message [@name='directives']" />
  82.      <xsl:text>}
  83. </xsl:text>
  84.      <xsl:choose>
  85.      <xsl:when test="directivesynopsis">
  86.        <xsl:text>\begin{itemize}</xsl:text>
  87.        <xsl:for-each select="directivesynopsis">
  88.          <xsl:sort select="name" />
  89.          <xsl:text>\item </xsl:text>
  90.          <xsl:if test="@type='section'">
  91.            <xsl:text>\textless{}</xsl:text>
  92.          </xsl:if>
  93.          <xsl:apply-templates select="name" mode="simple"/>
  94.          <xsl:if test="@type='section'">
  95.            <xsl:text>\textgreater{}</xsl:text>
  96.          </xsl:if>
  97.          <xsl:if test="@location">
  98.            <xsl:variable name="lowerlocation"
  99.             select="translate(@location, $uppercase, $lowercase)" />
  100.            <xsl:text> (p.\ \pageref{/mod/</xsl:text>
  101.            <xsl:value-of select="concat(translate(@location,$uppercase,$lowercase),':',translate(name,$uppercase,$lowercase))"/>
  102.            <xsl:text>}) </xsl:text>
  103.          </xsl:if>
  104.          <xsl:text>
  105. </xsl:text>
  106.        </xsl:for-each>
  107.        <xsl:text>\end{itemize}
  108. </xsl:text>
  109.      </xsl:when>
  110.      <xsl:otherwise>
  111.        <xsl:value-of select="$messages/message [@name='nodirectives']" />
  112.      <xsl:text>
  113. </xsl:text>
  114.      </xsl:otherwise>
  115.      </xsl:choose>
  116.      <xsl:text>
  117. </xsl:text>
  118. <xsl:call-template name="seealso"/>
  119.      <!-- Sections of documentation about the module as a whole -->
  120.        <xsl:apply-templates select="section" />
  121.      <!-- Directive documentation -->
  122.        <xsl:apply-templates select="directivesynopsis">
  123.          <xsl:sort select="name" />
  124.        </xsl:apply-templates>
  125. </xsl:template>
  126. <!-- /modulesynopsis -->
  127. <!-- ==================================================================== -->
  128. <!-- Directivesynopsis                                                    -->
  129. <!-- ==================================================================== -->
  130. <xsl:template match="directivesynopsis/name" mode="simple" name="simpledirname">
  131. <xsl:if test="@type='section'"><xsl:text>\textless{}</xsl:text></xsl:if>
  132. <xsl:apply-templates/>
  133. <xsl:if test="@type='section'"><xsl:text>\textgreater{}</xsl:text></xsl:if>
  134. </xsl:template>
  135. <xsl:template match="directivesynopsis/name">
  136. <xsl:text>\subsection*{</xsl:text>
  137. <xsl:call-template name="simpledirname"/>
  138.   <xsl:choose>
  139.   <xsl:when test="$messages/message
  140.       [@name='directive']/@replace-space-with">
  141.     <xsl:value-of select="$messages/message
  142.         [@name='directive']/@replace-space-with"/>
  143.   </xsl:when>
  144.   <xsl:otherwise>
  145.     <xsl:text> </xsl:text>
  146.   </xsl:otherwise>
  147.   </xsl:choose>
  148. <xsl:value-of select="$messages/message[@name='directive']" />
  149. <xsl:text>}\label{</xsl:text>
  150. <xsl:value-of select="concat('/mod/', //modulesynopsis/name, ':', translate(., $uppercase, $lowercase))"/>
  151. <xsl:text>}\hypertarget{</xsl:text>
  152. <xsl:value-of select="concat('/mod/', //modulesynopsis/name, ':', translate(., $uppercase, $lowercase))"/>
  153. <xsl:text>}{}</xsl:text>
  154. </xsl:template>
  155. <xsl:template match="directivesynopsis">
  156. <xsl:if test="not(@location)">
  157.   <xsl:apply-templates select="name"/>
  158.   <!-- Directive header -->
  159.   <xsl:text>
  160. \begin{tabular}{lp{.8\linewidth}}
  161. \hline
  162. </xsl:text>
  163. <xsl:value-of select="$messages/message [@name='description']" />
  164. <xsl:text>: & </xsl:text>
  165. <xsl:apply-templates select="description" />
  166. <xsl:text>\\
  167. </xsl:text>
  168. <xsl:value-of select="$messages/message[@name='syntax']" />
  169. <xsl:text>: & {\ttfamily </xsl:text>
  170. <xsl:apply-templates select="syntax" />
  171. <xsl:text>}\\
  172. </xsl:text>
  173. <xsl:if test="default">
  174. <xsl:value-of select="$messages/message[@name='default']" />
  175. <xsl:text>: & {\ttfamily </xsl:text>
  176. <xsl:apply-templates select="default" />
  177. <xsl:text>} \\
  178. </xsl:text>
  179. </xsl:if>
  180. <xsl:value-of select="$messages/message[@name='context']" />
  181. <xsl:text>: &</xsl:text>
  182. <xsl:apply-templates select="contextlist" />
  183. <xsl:text> \\
  184. </xsl:text>
  185. <xsl:if test="override">
  186. <xsl:value-of select="$messages/message[@name='override']"/>
  187. <xsl:text>: &</xsl:text>
  188. <xsl:apply-templates select="override" />
  189. <xsl:text> \\
  190. </xsl:text>
  191. </xsl:if>
  192. <xsl:value-of select="$messages/message[@name='status']" />
  193. <xsl:text>: &</xsl:text>
  194. <xsl:value-of select="../status" />
  195. <xsl:text> \\
  196. </xsl:text>
  197. <xsl:value-of select="$messages/message[@name='module']" />
  198. <xsl:text>: &</xsl:text>
  199. <xsl:choose>
  200. <xsl:when test="modulelist">
  201.   <xsl:apply-templates select="modulelist" />
  202. </xsl:when>
  203. <xsl:otherwise>
  204.   <xsl:apply-templates select="../name" />
  205. </xsl:otherwise>
  206. </xsl:choose>
  207. <xsl:text> \\
  208. </xsl:text>
  209. <xsl:if test="compatibility">
  210. <xsl:value-of select="$messages/message[@name='compatibility']" />
  211. <xsl:text>: &</xsl:text>
  212. <xsl:apply-templates select="compatibility" />
  213. <xsl:text> \\
  214. </xsl:text>
  215. </xsl:if>
  216. <xsl:text>\hline
  217. \end{tabular}
  218. </xsl:text>
  219. <xsl:apply-templates select="usage" />
  220. <xsl:call-template name="seealso"/>
  221. </xsl:if> <!-- /not(@location) -->
  222. </xsl:template>
  223. <!-- /directivesynopsis -->
  224. <!-- ==================================================================== -->
  225. <!-- <contextlist>                                                        -->
  226. <!-- ==================================================================== -->
  227. <xsl:template match="contextlist">
  228. <xsl:apply-templates select="context" />
  229. </xsl:template>
  230. <!-- /contextlist -->
  231. <!-- ==================================================================== -->
  232. <!-- <context>                                                            -->
  233. <!-- Each entry is separeted with a comma                                 -->
  234. <!-- ==================================================================== -->
  235. <xsl:template match="context">
  236. <xsl:choose>
  237. <xsl:when test="normalize-space(.) = 'server config'">
  238.     <xsl:value-of select="$messages/message[@name='serverconfig']" />
  239. </xsl:when>
  240. <xsl:when test="normalize-space(.) = 'virtual host'">
  241.     <xsl:value-of select="$messages/message[@name='virtualhost']" />
  242. </xsl:when>
  243. <xsl:when test="normalize-space(.) = 'directory'">
  244.     <xsl:value-of select="$messages/message[@name='directory']" />
  245. </xsl:when>
  246. <xsl:when test="normalize-space(.) = '.htaccess'">
  247.     <xsl:value-of select="$messages/message[@name='htaccess']" />
  248. </xsl:when>
  249. <xsl:otherwise> <!-- error -->
  250.     <xsl:message terminate="yes">
  251.         unknown context: <xsl:value-of select="." />
  252.     </xsl:message>
  253. </xsl:otherwise>
  254. </xsl:choose>
  255. <xsl:if test="position() != last()">
  256.     <xsl:text>, </xsl:text>
  257. </xsl:if>
  258. </xsl:template>
  259. <!-- /context -->
  260. <!-- ==================================================================== -->
  261. <!-- <modulelist>                                                         -->
  262. <!-- ==================================================================== -->
  263. <xsl:template match="modulelist">
  264. <xsl:for-each select="module">
  265.     <xsl:call-template name="module" />
  266.     <xsl:if test="position() != last()">
  267.         <xsl:text>, </xsl:text>
  268.     </xsl:if>
  269. </xsl:for-each>
  270. </xsl:template>
  271. <!-- /modulelist -->
  272. <!-- ==================================================================== -->
  273. <!-- modulesynopsis/compatibility                                         -->
  274. <!-- ==================================================================== -->
  275. <xsl:template match="modulesynopsis/compatibility">
  276. <xsl:apply-templates />
  277. </xsl:template>
  278. <!-- ==================================================================== -->
  279. <!-- directivesynopsis/compatibility                                      -->
  280. <!-- ==================================================================== -->
  281. <xsl:template match="directivesynopsis/compatibility">
  282. <xsl:apply-templates />
  283. </xsl:template>
  284. </xsl:stylesheet>
  285.