[gnome-doc-utils/mallard] [mallard] Fixed automatic link text for internal links



commit 7efe93c679ec6a0c86ea255e21571478b6126270
Author: Shaun McCance <shaunm gnome org>
Date:   Sat May 2 21:47:23 2009 -0500

    [mallard] Fixed automatic link text for internal links
---
 xslt/mallard/common/mal-link.xsl |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/xslt/mallard/common/mal-link.xsl b/xslt/mallard/common/mal-link.xsl
index 850ef2f..de5817d 100644
--- a/xslt/mallard/common/mal-link.xsl
+++ b/xslt/mallard/common/mal-link.xsl
@@ -62,9 +62,24 @@ $href: The #{href} attribute of ${link}
       </xsl:choose>
     </xsl:when>
     <xsl:otherwise>
+      <xsl:variable name="fullid">
+        <xsl:choose>
+          <xsl:when test="contains($xref, '#')">
+            <xsl:variable name="pageid" select="substring-before($xref, '#')"/>
+            <xsl:variable name="sectionid" select="substring-after($xref, '#')"/>
+            <xsl:if test="$pageid = ''">
+              <xsl:value-of select="$link/ancestor::mal:page/@id"/>
+            </xsl:if>
+            <xsl:value-of select="concat($pageid, '#', $sectionid)"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:value-of select="$xref"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
       <xsl:for-each select="$mal.cache">
         <xsl:apply-templates mode="mal.link.content.mode"
-                             select="key('mal.cache.key', $xref)
+                             select="key('mal.cache.key', $fullid)
                                      /mal:info/mal:title[ type = 'link']/node()"/>
       </xsl:for-each>
     </xsl:otherwise>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]