Author: rgardler
Date: Mon Dec 19 05:58:23 2005
New Revision: 357692

URL: http://svn.apache.org/viewcvs?rev=357692&view=rev
Log:
handle the new facility for anchor links in Daisy 1.4M2

Modified:
    
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.Daisy/resources/stylesheets/daisy-to-html.xsl

Modified: 
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.Daisy/resources/stylesheets/daisy-to-html.xsl
URL: 
http://svn.apache.org/viewcvs/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.Daisy/resources/stylesheets/daisy-to-html.xsl?rev=357692&r1=357691&r2=357692&view=diff
==============================================================================
--- 
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.Daisy/resources/stylesheets/daisy-to-html.xsl
 (original)
+++ 
forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.Daisy/resources/stylesheets/daisy-to-html.xsl
 Mon Dec 19 05:58:23 2005
@@ -175,28 +175,31 @@
     
     <xsl:choose>
       <xsl:when test="starts-with(@href, 'daisy:')">
-        <xsl:variable name="docId"><xsl:value-of 
select="substring-after(@href, 'daisy:')"/></xsl:variable>
+        <xsl:variable name="docIdPlusAnchor"><xsl:value-of 
select="substring-after(@href, 'daisy:')"/></xsl:variable>
+        <xsl:variable name="docId">
+          <xsl:choose>
+            <xsl:when test="contains($docIdPlusAnchor, '#')"><xsl:value-of 
select="substring-before($docIdPlusAnchor, '#')"/></xsl:when>
+            <xsl:otherwise><xsl:value-of 
select="$docIdPlusAnchor"/></xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
+        <xsl:variable name="anchor">
+          <xsl:choose>
+            <xsl:when test="contains($docIdPlusAnchor, '#')">#<xsl:value-of 
select="substring-after($docIdPlusAnchor, '#')"/></xsl:when>
+            <xsl:otherwise></xsl:otherwise>
+          </xsl:choose>
+        </xsl:variable>
         <xsl:variable name="path">
           <xsl:value-of select="$pathPrefix"/>
           <xsl:for-each select="//daisyDocument/descendant::[EMAIL 
PROTECTED]/ancestor::group|//daisyDocument/descendant::[EMAIL 
PROTECTED]/ancestor::[EMAIL PROTECTED]"><xsl:value-of 
select="@href"/></xsl:for-each>
         </xsl:variable>
         <xsl:variable name="url">
           <xsl:choose>
-            <xsl:when test="//daisyDocument/descendant::[EMAIL 
PROTECTED]"><xsl:value-of select="$pathToRoot"/><xsl:value-of 
select="$path"/><xsl:value-of select="//[EMAIL PROTECTED]/@href"/></xsl:when>
-            <xsl:otherwise><xsl:value-of select="$pathToRoot"/><xsl:value-of 
select="$docId"/><xsl:value-of select="$daisyExt"/>.html</xsl:otherwise>
+            <xsl:when test="//daisyDocument/descendant::[EMAIL 
PROTECTED]"><xsl:value-of select="$pathToRoot"/><xsl:value-of 
select="$path"/><xsl:value-of select="//[EMAIL PROTECTED]/@href"/><xsl:value-of 
select="$anchor"/></xsl:when>
+            <xsl:otherwise><xsl:value-of select="$pathToRoot"/><xsl:value-of 
select="$docId"/><xsl:value-of select="$daisyExt"/>.html<xsl:value-of 
select="$anchor"/></xsl:otherwise>
           </xsl:choose>
         </xsl:variable>
         <a>
-          <xsl:choose>
-            <xsl:when test="contains($url, '#')">
-              <xsl:variable name="pageURL"><xsl:value-of 
select="substring-before($url, '#')"/></xsl:variable>
-              <xsl:variable name="anchor"><xsl:value-of 
select="substring-after(@href, '#')"/></xsl:variable>
-              <xsl:attribute name="href">FIXME: URLS with anchors not working 
at present - <xsl:value-of select="$pageURL"/>.html#<xsl:value-of 
select="$anchor"/></xsl:attribute>
-            </xsl:when>
-            <xsl:otherwise>
-              <xsl:attribute name="href"><xsl:value-of 
select="$url"/></xsl:attribute>
-            </xsl:otherwise>
-          </xsl:choose>
+          <xsl:attribute name="href"><xsl:value-of 
select="$url"/></xsl:attribute>
           <xsl:attribute name="description"><xsl:value-of 
select="@daisyDocumentName"/></xsl:attribute>
           <xsl:apply-templates/>
         </a>
@@ -232,6 +235,11 @@
   
   <xsl:template match="@ns:*|ns:*"/>
   <xsl:template match="@p:*|p:*"/>
+  
+  <xsl:template match="@id">
+    <xsl:attribute name="id"><xsl:value-of select="."/></xsl:attribute>
+    <a><xsl:attribute name="name"><xsl:value-of 
select="."/></xsl:attribute></a>
+  </xsl:template>
   
   <xsl:template match="@*|*|text()|processing-instruction()|comment()">
     <xsl:copy>


Reply via email to