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