home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 September / PCW08_DVD.ISO / Trial / Adobe InDesign CS2 / Help Center / Adobe Help Center 1.0.msi / Data1.cab / htmltrans.xslt < prev    next >
Encoding:
Extensible Markup Language  |  2005-03-15  |  12.0 KB  |  288 lines

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!-- HTMLTRANS VERSION 0.4 -->
  3. <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  4.     <!-- OUTPUT METHOD -->
  5.     <xsl:output method="html" encoding="utf-8" indent="no"/>
  6.     <xsl:strip-space elements="*"/>
  7.     <!-- DEFAULT VALUES FOR EXTERNALLY MODIFIABLE PARAMETERS -->
  8.     <!-- /IP = default image path parameter (null)-->
  9.     <xsl:param name="IP" select="'../../binary/page/'"/>
  10.     <!-- NULL PROCESSORS (for things whose content will be used by reference or excluded) -->
  11.     <xsl:template match="*[contains(@class,' topic/indexterm ')]"/>
  12.     <xsl:template match="*[contains(@class,' topic/table ')]">
  13.         <xsl:apply-templates/>
  14.     </xsl:template>
  15.     <xsl:template match="*[contains(@class,' topic/colspec ')]"/>
  16.     <xsl:template match="*[contains(@class,' topic/simpletable ')]">
  17.         <xsl:apply-templates/>
  18.     </xsl:template>
  19.     <xsl:template match="*[contains(@class,' topic/strow ')]">
  20.         <xsl:apply-templates/>
  21.     </xsl:template>
  22.     <xsl:template match="*[contains(@class,' topic/callout ')]">
  23.         <xsl:apply-templates/>
  24.     </xsl:template>
  25.     <xsl:template match="*[contains(@class,' topic/dl ')]">
  26.         <xsl:apply-templates/>
  27.     </xsl:template>
  28.     <!-- HOMEPAGE PAGE LAYOUT -->
  29.     <xsl:template match="//*[contains(@class,'homepage/homepage')]" priority="4">
  30.         <html>
  31.             <head>
  32.                 <link rel="stylesheet" type="text/css" href="help_homepage.css"/>
  33.                 <title>
  34.                     <xsl:value-of select="//title"/>
  35.                 </title>
  36.             </head>
  37.             <body>
  38.                 <xsl:for-each select="//adobefig/desc/xref">
  39.                     <h3>
  40.                         <a>
  41.                             <xsl:attribute name="href">
  42.                                 <xsl:text>LoadPage(</xsl:text>
  43.                                 <xsl:value-of select="@href"/>
  44.                                 <xsl:text>)</xsl:text>
  45.                             </xsl:attribute>
  46.                             <xsl:value-of select="."/>
  47.                         </a>
  48.                     </h3>
  49.                 </xsl:for-each>
  50.                 <xsl:apply-templates select="//p"/>
  51.             </body>
  52.         </html>
  53.     </xsl:template>
  54.     <!-- DEFAULT PAGE LAYOUT -->
  55.     <xsl:template match="/*[contains(@class,' topic/topic ')]" priority="3">
  56.         <html>
  57.             <head>
  58.                 <link rel="stylesheet" type="text/css" href="help_content.css"/>
  59.                 <title>
  60.                     <xsl:value-of select="title"/>
  61.                 </title>
  62.             </head>
  63.             <body>
  64.                 <h1>
  65.                     <xsl:value-of select="title"/>
  66.                 </h1>
  67.                 <xsl:apply-templates select="*[contains(@class,' topic/body ')]"/>
  68.                 <xsl:apply-templates select="*[contains(@class,' topic/related-links ')]"/>
  69.                 <xsl:apply-templates select="*[contains(@class,' topic/topic ')]"/>
  70.             </body>
  71.         </html>
  72.     </xsl:template>
  73.     <!-- DEFAULT TOPIC TEMPLATE -->
  74.     <xsl:template match="*[contains(@class,' topic/topic ')]" priority="2">
  75.         <h1>
  76.             <xsl:value-of select="title"/>
  77.         </h1>
  78.         <xsl:apply-templates select="*[contains(@class,' topic/body ')]"/>
  79.         <xsl:apply-templates select="*[contains(@class,' topic/related-links ')]"/>
  80.         <xsl:apply-templates select="*[contains(@class,' topic/topic ')]"/>
  81.     </xsl:template>
  82.     <!-- DEFAULT ELEMENT TEMPLATE -->
  83.     <xsl:template match="*">
  84.         <div>
  85.             <xsl:call-template name="setclass"/>
  86.             <xsl:apply-templates/>
  87.         </div>
  88.     </xsl:template>
  89.     <!-- Lists -->
  90.     <xsl:template match="*[contains(@class,' topic/body ')]">
  91.         <xsl:choose>
  92.             <xsl:when test="*[contains(@outputclass,'numbered')]">
  93.                 <xsl:apply-templates select="*[not(contains(@class,' topic/section '))]"/>
  94.                 <ol>
  95.                     <xsl:call-template name="setclass"/>
  96.                     <xsl:apply-templates select="*[contains(@class,' topic/section ')]"/>
  97.                 </ol>
  98.             </xsl:when>
  99.             <xsl:otherwise>
  100.                 <div>
  101.                     <xsl:call-template name="setclass"/>
  102.                     <xsl:apply-templates />
  103.                 </div>
  104.             </xsl:otherwise>
  105.         </xsl:choose>
  106.     </xsl:template>
  107.     <xsl:template match="*[contains(@class,' topic/section ')]">
  108.         <xsl:choose>
  109.             <xsl:when test="self::*[contains(@outputclass,'numbered')]">
  110.                 <li>
  111.                     <xsl:call-template name="setclass"/>
  112.                     <xsl:apply-templates select="*[contains(@class,' topic/title ')]"/>
  113.                 </li>
  114.                 <xsl:apply-templates select="*[not(contains(@class,' topic/title '))]"/>
  115.             </xsl:when>
  116.             <xsl:when test="self::*[contains(@class,'task/result')]">
  117.                 <xsl:apply-templates />
  118.             </xsl:when>
  119.             <xsl:otherwise>
  120.                 <div>
  121.                     <xsl:call-template name="setclass"/>
  122.                     <xsl:apply-templates select="*[contains(@class,' topic/title ')]"/>
  123.                 </div>
  124.                 <xsl:apply-templates select="*[not(contains(@class,' topic/title '))]"/>
  125.             </xsl:otherwise>
  126.         </xsl:choose>
  127.     </xsl:template>
  128.     <xsl:template match="*[contains(@class,' topic/ul ')]">
  129.         <ul>
  130.             <xsl:call-template name="setclass"/>
  131.             <xsl:apply-templates select="*[contains(@class,' topic/li ')]"/>
  132.         </ul>
  133.     </xsl:template>
  134.     <xsl:template match="*[contains(@class,' topic/ol ')]">
  135.         <ol>
  136.             <xsl:call-template name="setclass"/>
  137.             <xsl:apply-templates select="*[contains(@class,' topic/li ')]"/>
  138.         </ol>
  139.     </xsl:template>
  140.     <xsl:template match="*[contains(@class,' topic/ol ')][*[contains(@class,' task/step ')][position()=1 and position()=last()]]" priority="1">
  141.             <xsl:apply-templates select="*[contains(@class,' task/step ')]"/>
  142.     </xsl:template>
  143.     <xsl:template match="*[contains(@class,' task/step ')][position()=1 and position()=last()]" priority="1">
  144.         <div>
  145.             <xsl:attribute name="class">singlestep</xsl:attribute>
  146.             <xsl:apply-templates select="*[position()=1]/node()|text()"/>
  147.         </div>
  148.         <xsl:apply-templates select="*[position()!=1]"/>
  149.     </xsl:template>
  150.     <xsl:template match="*[contains(@class,' topic/li ')]">
  151.         <li>
  152.             <xsl:call-template name="setclass"/>
  153.             <xsl:apply-templates select="*[position()=1]/node()|text()"/>
  154.         </li>
  155.         <xsl:apply-templates select="*[position()!=1]"/>
  156.     </xsl:template>
  157.     <xsl:template match="*[contains(@class,' topic/dd ')]">
  158.         <div>
  159.             <xsl:call-template name="setclass"/>
  160.             <xsl:apply-templates select="*[position()=1]/node()|text()"/>
  161.         </div>
  162.         <xsl:apply-templates select="*[position()!=1]"/>
  163.     </xsl:template>
  164.     <xsl:template match="*[contains(@class,' task/choption ')]">
  165.         <div class="choption">
  166.             <xsl:apply-templates />
  167.         </div>
  168.     </xsl:template>
  169.     <xsl:template match="*[contains(@class,' task/chdesc ')]">
  170.         <div class="chdesc">
  171.             <xsl:apply-templates select="*[position()=1]/node()"/>
  172.         </div>
  173.         <xsl:apply-templates select="*[position()!=1]"/>
  174.     </xsl:template>
  175.     <!-- Tables -->
  176.     <xsl:template match="*[contains(@class,' topic/tgroup ')]">
  177.         <table bgcolor="black" border="0" cellpadding="0" cellspacing="1px" width="100%">
  178.             <xsl:call-template name="setclass"/>
  179.             <xsl:for-each select="*[contains(@class,' topic/thead ')]/*[contains(@class,' topic/row ')]">
  180.                 <tr>
  181.                 <xsl:for-each select="*[contains(@class,' topic/entry ')]">
  182.                     <th bgcolor="white" align="left" valign="top">
  183.                       <xsl:if test="@namest and @nameend">
  184.                         <xsl:attribute name="colspan">
  185.                           <xsl:value-of select="@nameend - @namest + 1"/>
  186.                         </xsl:attribute>
  187.                       </xsl:if>
  188.                       <xsl:if test="@morerows">
  189.                         <xsl:attribute name="rowspan">
  190.                           <xsl:value-of select="@morerows + 1"/>
  191.                         </xsl:attribute>
  192.                       </xsl:if>
  193.                     <xsl:apply-templates/>
  194.                     </th>
  195.                 </xsl:for-each>
  196.                 </tr>
  197.             </xsl:for-each>
  198.             <xsl:for-each select="*[contains(@class,' topic/tbody ')]/*[contains(@class,' topic/row ')]">
  199.                 <tr>
  200.                 <xsl:for-each select="*[contains(@class,' topic/entry ')]">
  201.                     <td bgcolor="white" align="left" valign="top">
  202.                       <xsl:if test="@namest and @nameend">
  203.                         <xsl:attribute name="colspan">
  204.                           <xsl:value-of select="@nameend - @namest + 1"/>
  205.                         </xsl:attribute>
  206.                       </xsl:if>
  207.                       <xsl:if test="@morerows">
  208.                         <xsl:attribute name="rowspan">
  209.                           <xsl:value-of select="@morerows + 1"/>
  210.                         </xsl:attribute>
  211.                       </xsl:if>
  212.                     <xsl:apply-templates/>
  213.                     </td>
  214.                 </xsl:for-each>
  215.                 </tr>
  216.             </xsl:for-each>
  217.         </table>
  218.     </xsl:template>
  219.     <!-- Links -->
  220.     <xsl:template match="*[contains(@class,' topic/related-links ')]">
  221.         <div>
  222.             <xsl:call-template name="setclass"/>
  223.             <xsl:apply-templates/>
  224.         </div>
  225.     </xsl:template>
  226.     <xsl:template match="*[contains(@class,' topic/link ')]">
  227.         <div>
  228.             <xsl:call-template name="setclass"/>
  229.             <xsl:call-template name="make-link"/>
  230.         </div>
  231.     </xsl:template>
  232.     <xsl:template match="*[contains(@class,' topic/xref ')]">
  233.         <xsl:call-template name="make-xref"/>
  234.     </xsl:template>
  235.     <xsl:template name="make-link">
  236.         <a>
  237.             <xsl:attribute name="href">
  238.                 <xsl:text>LoadPage(</xsl:text>
  239.                 <xsl:value-of select="@href"/>
  240.                 <xsl:text>)</xsl:text>
  241.             </xsl:attribute>
  242.             <xsl:value-of select="linktext"/>
  243.         </a>
  244.     </xsl:template>
  245.     <xsl:template name="make-xref">
  246.         <a>
  247.             <xsl:call-template name="setclass"/>
  248.             <xsl:attribute name="href">
  249.                 <xsl:text>LoadPage(</xsl:text>
  250.                 <xsl:value-of select="@href"/>
  251.                 <xsl:text>)</xsl:text>
  252.             </xsl:attribute>
  253.             <xsl:value-of select="."/>
  254.         </a>
  255.     </xsl:template>
  256.     <!-- Images -->
  257.     <xsl:template match="*[contains(@class,' topic/fig ')]">
  258.         <div>
  259.             <xsl:call-template name="setclass"/>
  260.             <xsl:apply-templates/>
  261.         </div>
  262.     </xsl:template>
  263.     <xsl:template match="*[contains(@class,' topic/image ')]">
  264.         <xsl:element name="img">
  265.             <xsl:call-template name="setclass"/>
  266.             <xsl:attribute name="src">
  267.                 <xsl:value-of select="$IP"/>
  268.                 <xsl:value-of select="@href"/>
  269.             </xsl:attribute>
  270.         </xsl:element>
  271.     </xsl:template>
  272.     <!-- Inline elements -->
  273.     <xsl:template match="*[contains(@class,' hi-d/sup ')]">
  274.         <div class="sup">
  275.             <xsl:apply-templates />
  276.         </div>
  277.     </xsl:template>
  278.     <xsl:template match="*[contains(@class,' adobe-d/helponly ')]">
  279.         <xsl:apply-templates />
  280.     </xsl:template>
  281.     <!-- Create the class attribute for an element by default. -->
  282.     <xsl:template name="setclass">
  283.         <xsl:attribute name="class">
  284.             <xsl:value-of select="substring-before(substring-after(@class,'/'),' ')"/>
  285.         </xsl:attribute>
  286.     </xsl:template>
  287. </xsl:transform>
  288.