Author: aheritier
Date: Wed Jun  8 22:42:50 2005
New Revision: 189713

URL: http://svn.apache.org/viewcvs?rev=189713&view=rev
Log:
fix MPPDF-36 : maven pdf fails with footer in navigation.xml.
fix MPPDF-24 : Internal links failed.
fix MPPDF-13 : img src attributes are not made relative to the xdoc source.
Patch from Lukas Theussl reviewed by aheritier

Modified:
    maven/maven-1/plugins/trunk/pdf/src/plugin-resources/fo-body.xslt
    maven/maven-1/plugins/trunk/pdf/src/plugin-resources/project2fo.xslt
    maven/maven-1/plugins/trunk/pdf/xdocs/changes.xml

Modified: maven/maven-1/plugins/trunk/pdf/src/plugin-resources/fo-body.xslt
URL: 
http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/pdf/src/plugin-resources/fo-body.xslt?rev=189713&r1=189712&r2=189713&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/pdf/src/plugin-resources/fo-body.xslt (original)
+++ maven/maven-1/plugins/trunk/pdf/src/plugin-resources/fo-body.xslt Wed Jun  
8 22:42:50 2005
@@ -54,6 +54,7 @@
   </xsl:template>
   <xsl:template name="body-chapter-heading">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <xsl:param name="chapter"/>
     <xsl:variable name="gutter">0.125</xsl:variable>
     <xsl:variable name="leftMargin">
@@ -81,7 +82,7 @@
         </fo:list-item>
       </fo:list-block>
     </fo:block>
-    <fo:block space-after.optimum="5em">
+    <fo:block space-after.optimum="0em">
       <!-- Add a rule underneath -->
       <fo:leader xsl:use-attribute-sets="chapter.rule"/>
     </fo:block>
@@ -89,15 +90,23 @@
   <!-- Templates for rendering xdoc tags -->
   <xsl:template match="document/body">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <xsl:apply-templates>
       <xsl:with-param name="chapterNumber">
         <xsl:value-of select="$chapterNumber"/>
       </xsl:with-param>
+      <xsl:with-param name="fileName">
+        <xsl:value-of select="$fileName"/>
+      </xsl:with-param>
     </xsl:apply-templates>
   </xsl:template>
   <xsl:template match="section">
     <xsl:param name="chapterNumber"/>
-    <fo:block xsl:use-attribute-sets="body.h1">
+    <xsl:param name="fileName"/>
+    <xsl:param name="transLink">
+        <xsl:value-of select="translate(@name,' ','_')"/>
+    </xsl:param>
+    <fo:block xsl:use-attribute-sets="body.h1" id="{$fileName}#{$transLink}">
       <xsl:value-of select="@name"/>
     </fo:block>
     <fo:block xsl:use-attribute-sets="body.text">
@@ -105,12 +114,19 @@
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:block>
   </xsl:template>
   <xsl:template match="subsection">
     <xsl:param name="chapterNumber"/>
-    <fo:block xsl:use-attribute-sets="body.h2">
+    <xsl:param name="fileName"/>
+    <xsl:param name="transLink">
+        <xsl:value-of select="translate(@name,' ','_')"/>
+    </xsl:param>
+    <fo:block xsl:use-attribute-sets="body.h2" id="{$fileName}#{$transLink}">
       <xsl:value-of select="@name"/>
     </fo:block>
     <fo:block xsl:use-attribute-sets="body.text">
@@ -118,6 +134,9 @@
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:block>
   </xsl:template>
@@ -141,47 +160,86 @@
   </xsl:template>
   <xsl:template match="p">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:block xsl:use-attribute-sets="body.text normal.paragraph">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:block>
   </xsl:template>
   <xsl:template match="source">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:block xsl:use-attribute-sets="body.source">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:block>
   </xsl:template>
   <xsl:template match="pre">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:block xsl:use-attribute-sets="body.source">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:block>
   </xsl:template>
+
   <xsl:template match="[EMAIL PROTECTED]">
+    <xsl:param name="fileName"/>
+    <xsl:param name="dirName">
+      <xsl:call-template name="substring-before-last">
+        <xsl:with-param name="text" select="$fileName"/>
+        <xsl:with-param name="chars">/</xsl:with-param>
+      </xsl:call-template>
+    </xsl:param>
+    <!-- Resolve the location of the image source relative to the location of 
the current document -->
+    <xsl:param name="ref" select="translate(normalize-space(@src),'\','/')"/>
     <xsl:variable name="source">
-      <xsl:choose>
-        <xsl:when test="substring(normalize-space(@src),1,3) = '../'">
-          <xsl:value-of 
select="translate(substring-after(normalize-space(@src),'../'),'\','/')"/>
-        </xsl:when>
-        <xsl:when test="substring(normalize-space(@src),1,3) = '..\'">
-          <xsl:value-of 
select="translate(substring-after(normalize-space(@src),'..\'),'\','/')"/>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:value-of select="@src"/>
-        </xsl:otherwise>
-      </xsl:choose>
+        <xsl:choose>
+            <xsl:when test="starts-with($ref, './')">
+                <xsl:choose>
+                    <xsl:when test="string-length($dirName) = 0">
+                        <xsl:value-of select="substring-after($ref,'./')"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                        <xsl:value-of select="concat($dirName, '/', 
substring-after($ref,'./'))"/>
+                    </xsl:otherwise>
+                </xsl:choose>
+            </xsl:when>
+            <xsl:when test="starts-with($ref, '../')">
+                <xsl:call-template name="resolveLink">
+                    <xsl:with-param name="dirName" select="$dirName"/>
+                    <xsl:with-param name="href" select="$ref"/>
+                </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:choose>
+                    <xsl:when test="string-length($dirName) = 0">
+                        <xsl:value-of select="$ref"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                        <xsl:value-of select="concat($dirName, '/', $ref)"/>
+                    </xsl:otherwise>
+                </xsl:choose>
+            </xsl:otherwise>
+        </xsl:choose>
     </xsl:variable>
     <xsl:variable name="width">
       <xsl:value-of 
select="substring-before(concat(normalize-space(@width),'p'),'p') div 
$imageDpi"/>
@@ -224,156 +282,350 @@
   <!-- Templates for handling XHTML tags -->
   <xsl:template match="[EMAIL PROTECTED] and (starts-with(@href, 'http') or 
starts-with(@href, 'mailto') or starts-with(@href, 'ftp'))]">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:basic-link external-destination="[EMAIL PROTECTED]">
       <fo:inline xsl:use-attribute-sets="href.external">
         <xsl:apply-templates>
           <xsl:with-param name="chapterNumber">
             <xsl:value-of select="$chapterNumber"/>
           </xsl:with-param>
+          <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
         </xsl:apply-templates>
       </fo:inline>
     </fo:basic-link>
   </xsl:template>
   <xsl:template match="[EMAIL PROTECTED] and starts-with(@href, '#')]">
     <xsl:param name="chapterNumber"/>
-    <fo:basic-link internal-destination="[EMAIL PROTECTED]()}">
+    <xsl:param name="fileName"/>
+    <fo:basic-link internal-destination="[EMAIL PROTECTED]">
       <fo:inline xsl:use-attribute-sets="href.internal">
         <xsl:apply-templates>
           <xsl:with-param name="chapterNumber">
             <xsl:value-of select="$chapterNumber"/>
           </xsl:with-param>
+          <xsl:with-param name="fileName">
+            <xsl:value-of select="$fileName"/>
+          </xsl:with-param>
         </xsl:apply-templates>
       </fo:inline>
     </fo:basic-link>
   </xsl:template>
   <xsl:template match="[EMAIL PROTECTED] and not(starts-with(@href, 'http')) 
and not(starts-with(@href, 'mailto')) and not(starts-with(@href, 'ftp')) and 
not(starts-with(@href, '#'))]">
     <xsl:param name="chapterNumber"/>
-    <fo:basic-link internal-destination="[EMAIL PROTECTED]()}">
+    <xsl:param name="fileName"/>
+    <xsl:param name="dirName">
+      <xsl:call-template name="substring-before-last">
+        <xsl:with-param name="text" select="$fileName"/>
+        <xsl:with-param name="chars">/</xsl:with-param>
+      </xsl:call-template>
+    </xsl:param>
+    <!-- Resolve the location of the link relative to the location of the 
current document -->
+    <xsl:param name="ref" select="translate(normalize-space(@href),'\','/')"/>
+    <xsl:param name="href">
+        <xsl:choose>
+            <xsl:when test="starts-with($ref, './')">
+                <xsl:choose>
+                    <xsl:when test="string-length($dirName) = 0">
+                        <xsl:value-of select="substring-after($ref,'./')"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                        <xsl:value-of select="concat($dirName, '/', 
substring-after($ref,'./'))"/>
+                    </xsl:otherwise>
+                </xsl:choose>
+            </xsl:when>
+            <xsl:when test="starts-with($ref, '../')">
+                <xsl:call-template name="resolveLink">
+                    <xsl:with-param name="dirName" select="$dirName"/>
+                    <xsl:with-param name="href" select="$ref"/>
+                </xsl:call-template>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:choose>
+                    <xsl:when test="string-length($dirName) = 0">
+                        <xsl:value-of select="$ref"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                        <xsl:value-of select="concat($dirName, '/', $ref)"/>
+                    </xsl:otherwise>
+                </xsl:choose>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:param>
+    <fo:basic-link internal-destination="{$href}">
       <fo:inline xsl:use-attribute-sets="href.internal">
         <xsl:apply-templates>
           <xsl:with-param name="chapterNumber">
             <xsl:value-of select="$chapterNumber"/>
           </xsl:with-param>
+          <xsl:with-param name="fileName">
+            <xsl:value-of select="$fileName"/>
+          </xsl:with-param>
         </xsl:apply-templates>
       </fo:inline>
     </fo:basic-link>
   </xsl:template>
+
+  <xsl:template name="resolveLink">
+    <xsl:param name="dirName"/>
+    <xsl:param name="href"/>
+    <xsl:choose>
+        <xsl:when test="starts-with($href, '../')">
+           <xsl:call-template name="resolveLink">
+               <xsl:with-param name="dirName">
+                    <xsl:call-template name="substring-before-last">
+                      <xsl:with-param name="text" select="$dirName"/>
+                      <xsl:with-param name="chars">/</xsl:with-param>
+                    </xsl:call-template>
+               </xsl:with-param>
+               <xsl:with-param name="href" 
select="substring-after($href,'../')"/>
+           </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:choose>
+            <xsl:when test="string-length($dirName) = 0">
+              <xsl:value-of select="$href"/>
+            </xsl:when>
+            <xsl:otherwise>
+              <xsl:value-of select="concat($dirName, '/', $href)"/>
+            </xsl:otherwise>
+          </xsl:choose>
+        </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template name="substring-before-last">
+    <xsl:param name="text"/>
+    <xsl:param name="chars"/>
+    <xsl:choose>
+      <xsl:when test="string-length($text) = 0"/>
+      <xsl:when test="string-length($chars) = 0">
+        <xsl:value-of select="$text"/>
+      </xsl:when>
+      <xsl:when test="contains($text, $chars)">
+        <xsl:call-template name="substring-before-last-aux">
+          <xsl:with-param name="text" select="$text"/>
+          <xsl:with-param name="chars" select="$chars"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <!--<xsl:value-of select="$text"/>-->
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <xsl:template name="substring-before-last-aux">
+    <xsl:param name="text"/>
+    <xsl:param name="chars"/>
+    <xsl:choose>
+      <xsl:when test="string-length($text) = 0"/>
+      <xsl:when test="contains($text, $chars)">
+        <xsl:variable name="after">
+          <xsl:call-template name="substring-before-last-aux">
+            <xsl:with-param name="text" select="substring-after($text, 
$chars)"/>
+            <xsl:with-param name="chars" select="$chars"/>
+          </xsl:call-template>
+        </xsl:variable>
+        <xsl:value-of select="substring-before($text, $chars)"/>
+        <xsl:if test="string-length($after) &gt; 0">
+          <xsl:value-of select="$chars"/>
+          <xsl:copy-of select="$after"/>
+        </xsl:if>
+      </xsl:when>
+      <xsl:otherwise/>
+    </xsl:choose>
+  </xsl:template>
+
   <xsl:template match="[EMAIL PROTECTED]">
     <xsl:param name="chapterNumber"/>
-    <fo:block id="[EMAIL PROTECTED]()}">
+    <xsl:param name="fileName"/>
+    <xsl:param name="name" select="translate(normalize-space(@name),'\','/')"/>
+    <fo:block id="{$fileName}#{$name}">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:block>
   </xsl:template>
   <xsl:template match="br">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:block/>
   </xsl:template>
   <xsl:template match="em | i">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:inline font-style="italic">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:inline>
   </xsl:template>
   <xsl:template match="b | strong[ancestor::table]">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:inline font-weight="bold">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:inline>
   </xsl:template>
   <xsl:template 
match="strong[ancestor::p|ancestor::li|ancestor::dl|ancestor::dt|ancestor::dd]">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:inline font-weight="bold" xsl:use-attribute-sets="body.strong">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:inline>
   </xsl:template>
   <xsl:template match="strong">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:inline font-weight="bold">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:inline>
   </xsl:template>
   <xsl:template match="sub">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:inline baseline-shift="sub">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:inline>
   </xsl:template>
   <xsl:template match="sup">
     <xsl:param name="chapterNumber"/>
-    <fo:inline baseline-shift="sup">
+    <xsl:param name="fileName"/>
+    <fo:inline baseline-shift="super">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:inline>
   </xsl:template>
   <xsl:template match="tt|code">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:inline xsl:use-attribute-sets="body.pre">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:inline>
   </xsl:template>
+  <xsl:template match="[EMAIL PROTECTED]'indent']">
+    <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
+    <fo:block xsl:use-attribute-sets="code.indent">
+      <xsl:apply-templates>
+        <xsl:with-param name="chapterNumber">
+          <xsl:value-of select="$chapterNumber"/>
+        </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
+      </xsl:apply-templates>
+    </fo:block>
+  </xsl:template>
   <xsl:template match="var">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:inline font-style="italic">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:inline>
   </xsl:template>
+  <xsl:template match="div">
+    <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
+      <xsl:apply-templates>
+        <xsl:with-param name="chapterNumber">
+          <xsl:value-of select="$chapterNumber"/>
+        </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
+      </xsl:apply-templates>
+  </xsl:template>
   <xsl:template match="big">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:inline font-size="larger">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:inline>
   </xsl:template>
   <xsl:template match="small">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:inline font-size="smaller">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:inline>
   </xsl:template>
   <xsl:template match="ul/ul | ul/ol | ol/ul | ol/ol">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:list-item xsl:use-attribute-sets="list.item">
       <fo:list-item-label>
         <fo:block/>
@@ -384,6 +636,9 @@
             <xsl:with-param name="chapterNumber">
               <xsl:value-of select="$chapterNumber"/>
             </xsl:with-param>
+            <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
           </xsl:apply-templates>
         </fo:block>
       </fo:list-item-body>
@@ -391,16 +646,21 @@
   </xsl:template>
   <xsl:template match="ul | ol">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:list-block xsl:use-attribute-sets="list">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:list-block>
   </xsl:template>
   <xsl:template match="ul/li">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:list-item xsl:use-attribute-sets="list.item">
       <fo:list-item-label>
         <fo:block>
@@ -415,6 +675,9 @@
             <xsl:with-param name="chapterNumber">
               <xsl:value-of select="$chapterNumber"/>
             </xsl:with-param>
+            <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
           </xsl:apply-templates>
         </fo:block>
       </fo:list-item-body>
@@ -422,6 +685,7 @@
   </xsl:template>
   <xsl:template match="ol/li">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:list-item xsl:use-attribute-sets="list.item">
       <fo:list-item-label>
         <fo:block>
@@ -434,6 +698,9 @@
             <xsl:with-param name="chapterNumber">
               <xsl:value-of select="$chapterNumber"/>
             </xsl:with-param>
+            <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
           </xsl:apply-templates>
         </fo:block>
       </fo:list-item-body>
@@ -441,30 +708,42 @@
   </xsl:template>
   <xsl:template match="dl">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:block xsl:use-attribute-sets="dl">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:block>
   </xsl:template>
   <xsl:template match="dt">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:block xsl:use-attribute-sets="dt">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
         </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
+        </xsl:with-param>
       </xsl:apply-templates>
     </fo:block>
   </xsl:template>
   <xsl:template match="dd">
     <xsl:param name="chapterNumber"/>
+    <xsl:param name="fileName"/>
     <fo:block xsl:use-attribute-sets="dd">
       <xsl:apply-templates>
         <xsl:with-param name="chapterNumber">
           <xsl:value-of select="$chapterNumber"/>
+        </xsl:with-param>
+        <xsl:with-param name="fileName">
+          <xsl:value-of select="$fileName"/>
         </xsl:with-param>
       </xsl:apply-templates>
     </fo:block>

Modified: maven/maven-1/plugins/trunk/pdf/src/plugin-resources/project2fo.xslt
URL: 
http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/pdf/src/plugin-resources/project2fo.xslt?rev=189713&r1=189712&r2=189713&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/pdf/src/plugin-resources/project2fo.xslt 
(original)
+++ maven/maven-1/plugins/trunk/pdf/src/plugin-resources/project2fo.xslt Wed 
Jun  8 22:42:50 2005
@@ -49,7 +49,7 @@
     <xsl:variable name="colorMediumGray">#A9A9A9</xsl:variable>
     <xsl:variable name="colorLightGray">#D3D3D3</xsl:variable>
     <xsl:variable name="colorWarmGrey11">#4b4542</xsl:variable>
-    <xsl:output method="xml" encoding="UTF-8" indent="yes" 
omit-xml-declaration="no"/>
+    <xsl:output method="xml" encoding="UTF-8" indent="no" 
omit-xml-declaration="no"/>
     <!-- Templates -->
     <xsl:template match="/">
         <xsl:apply-templates select="project"/>
@@ -68,12 +68,18 @@
     <xsl:template match="project/body/menu">
         <xsl:apply-templates/>
     </xsl:template>
+    <xsl:template match="project/body/footer">
+        <!-- Ignore footer -->
+    </xsl:template>
     <xsl:template match="project/body/menu/item">
         <!-- Renders the xml xdoc document -->
         <xsl:call-template name="render-xdoc">
             <xsl:with-param name="chapterNumber">
                 <xsl:number count="menu"/>.<xsl:number count="menu/item"/>
             </xsl:with-param>
+            <xsl:with-param name="fileName">
+                    <xsl:value-of 
select="substring-after(translate(normalize-space(@href),'\','/'),'/')"/>
+            </xsl:with-param>
         </xsl:call-template>
         <xsl:apply-templates/>
     </xsl:template>
@@ -83,6 +89,9 @@
             <xsl:with-param name="chapterNumber">
                 <xsl:number count="menu"/>.<xsl:number 
count="menu/item"/>.<xsl:number count="menu/item/item"/>
             </xsl:with-param>
+            <xsl:with-param name="fileName">
+                    <xsl:value-of 
select="substring-after(translate(normalize-space(@href),'\','/'),'/')"/>
+            </xsl:with-param>
         </xsl:call-template>
         <xsl:apply-templates/>
     </xsl:template>
@@ -92,10 +101,14 @@
             <xsl:with-param name="chapterNumber">
                 <xsl:number count="menu"/>.<xsl:number 
count="menu/item"/>.<xsl:number count="menu/item/item"/>.<xsl:number 
count="menu/item/item/item"/>
             </xsl:with-param>
+            <xsl:with-param name="fileName">
+                    <xsl:value-of 
select="substring-after(translate(normalize-space(@href),'\','/'),'/')"/>
+            </xsl:with-param>
         </xsl:call-template>
     </xsl:template>
     <xsl:template name="render-xdoc">
         <xsl:param name="chapterNumber">Foo</xsl:param>
+        <xsl:param name="fileName">Bar</xsl:param>
         <!-- Set the page number to start at. Normally this is 'auto'
          unless we are at the very first xdoc, in which case we reset it to 1 
-->
         <xsl:variable name="pageStart">
@@ -140,12 +153,16 @@
                     <xsl:with-param name="chapterNumber">
                         <xsl:value-of select="$chapterNumber"/>
                     </xsl:with-param>
+                    <xsl:with-param name="fileName">
+                        <xsl:value-of select="$fileName"/>
+                    </xsl:with-param>
                     <xsl:with-param name="chapter">
                         <xsl:value-of select="@name"/>
                     </xsl:with-param>
                 </xsl:call-template>
                 <!-- Render the associated xdoc -->
-                <fo:block id="[EMAIL PROTECTED]()}">
+                <fo:block id="[EMAIL PROTECTED]()}"/>
+                <fo:block id="{$fileName}">
                     <xsl:choose>
                         <xsl:when test="not(starts-with($href, 'http'))">
                             <xsl:variable name="documentPath" 
select="concat(normalize-space($basePath),normalize-space( $documentName), 
'.xml')"/>
@@ -156,6 +173,9 @@
                             <xsl:apply-templates 
select="document($documentPath)/document/body">
                                 <xsl:with-param name="chapterNumber">
                                     <xsl:value-of select="$chapterNumber"/>
+                                </xsl:with-param>
+                                <xsl:with-param name="fileName">
+                                    <xsl:value-of select="$fileName"/>
                                 </xsl:with-param>
                             </xsl:apply-templates>
                         </xsl:when>

Modified: maven/maven-1/plugins/trunk/pdf/xdocs/changes.xml
URL: 
http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/pdf/xdocs/changes.xml?rev=189713&r1=189712&r2=189713&view=diff
==============================================================================
--- maven/maven-1/plugins/trunk/pdf/xdocs/changes.xml (original)
+++ maven/maven-1/plugins/trunk/pdf/xdocs/changes.xml Wed Jun  8 22:42:50 2005
@@ -25,7 +25,11 @@
   <body>
     <release version="2.3" date="In SVN">
       <action dev="aheritier" type="update" issue="MPPDF-38">Use the ant task 
for the xsl transformation and remove xerces and xalan dependencies. People 
using java 5 will have to use this release with maven 1.1 or maven 1.0 with at 
the most the PDF plugin 2.2.X.</action>
+      <action dev="aheritier" type="fix" issue="MPPDF-36" due-to="Lukas 
Theussl">maven pdf fails with footer in navigation.xml.</action>
+      <action dev="aheritier" type="update">Use the ant task for the fop 
transformation and remove xalan dependency.</action>
       <action dev="aheritier" type="fix" issue="MPPDF-30" due-to="Lukas 
Theussl">The first row of table is not rendered.</action>
+      <action dev="aheritier" type="fix" issue="MPPDF-24" due-to="Lukas 
Theussl">Internal links failed.</action>
+      <action dev="aheritier" type="fix" issue="MPPDF-13" due-to="Lukas 
Theussl">img src attributes are not made relative to the xdoc source.</action>
     </release>
     <release version="2.2.1" date="2004-10-30">
       <action dev="aheritier" type="fix" issue="MPPDF-21">The content of style 
tag was printed on the PDF file.</action>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to