From 48bb0137cfe0a9966aee4fd5f70261cff659e2bc Mon Sep 17 00:00:00 2001
From: Martin Goik <goik@hdm-stuttgart.de>
Date: Sun, 28 Aug 2016 07:33:15 +0200
Subject: [PATCH] Dumping awkward way of handling @fileref attributes

---
 ws/Docbook/Extensions/Tdata/Makefile          | 14 +++---
 ws/Docbook/Extensions/Xsl/docbook2docbook.xsl | 44 ++++++-------------
 2 files changed, 19 insertions(+), 39 deletions(-)

diff --git a/ws/Docbook/Extensions/Tdata/Makefile b/ws/Docbook/Extensions/Tdata/Makefile
index b1e907e42..514f567e2 100644
--- a/ws/Docbook/Extensions/Tdata/Makefile
+++ b/ws/Docbook/Extensions/Tdata/Makefile
@@ -7,14 +7,14 @@ SCRIPTBASENAME=fig
 # http://docbook.sourceforge.net/release/xsl/current/doc/param.html
 #
 
-XSLPARAM=-p callout.graphics 0 \
--p callout.unicode 1
+XSLPARAM=\
+ -p callout.graphics 0\
+ -p callout.unicode 1
 
-XSLPARAM_pdf=-p xep.extensions 1\
+XSLPARAM_pdf=\
+ -p xep.extensions 1\
  -p highlight.source 1 
 
-DOCMODULES=Sd1 Sda1 Sda2 Sdi
-
 BUILDROOT=target
 
 #+++ no changes below this line ++++++++++++++++++++++++++++++++++++
@@ -27,16 +27,12 @@ SAXONCMD=java -cp "/usr/share/java/Saxon-HE.jar:/usr/share/java/xercesImpl.jar"
     -Dorg.apache.xerces.xni.parser.XMLParserConfiguration=org.apache.xerces.parsers.XIncludeParserConfiguration \
    net.sf.saxon.Transform 
 
-
-
 all: epub webhelp pdf slides
 
 slides: fig.xml
 	mkdir -p Slides
 	${SAXONCMD} -s:fig.xml -xsl:../Xsl/docbook2slides.xsl
 
-
-
 ${BUILDROOT}/${SCRIPTBASENAME}_print.xml \
 ${BUILDROOT}/${SCRIPTBASENAME}_html.xml \
 ${BUILDROOT}/${SCRIPTBASENAME}.xml: ${SCRIPTBASENAME}.xml
diff --git a/ws/Docbook/Extensions/Xsl/docbook2docbook.xsl b/ws/Docbook/Extensions/Xsl/docbook2docbook.xsl
index 31b1d9e2b..44e405eac 100644
--- a/ws/Docbook/Extensions/Xsl/docbook2docbook.xsl
+++ b/ws/Docbook/Extensions/Xsl/docbook2docbook.xsl
@@ -18,6 +18,20 @@
         </xsl:copy>
     </xsl:template>
     
+    <xsl:template match="@fileref">
+        <xsl:attribute name="fileref">
+            <xsl:text>../</xsl:text> <!-- account for descend into "target" subdir -->
+            <xsl:if test="ancestor::*/@xml:base">
+                <xsl:call-template name="hdm.get.leftmost.of.separator">
+                    <xsl:with-param name="path" select="ancestor::*/@xml:base"/>
+                    <xsl:with-param name="separator" select="'/'"/>
+                </xsl:call-template>                  
+                <xsl:text>/</xsl:text>
+            </xsl:if>
+            <xsl:value-of select="."/>
+        </xsl:attribute>
+    </xsl:template>
+    
     <xsl:template match="*" mode="hdmIdGenerate">
         <xsl:choose>
             <xsl:when test="@xml:id">
@@ -30,36 +44,6 @@
         </xsl:choose>
     </xsl:template>
     
-    <xsl:template match="db:imagedata">
-        <db:imagedata>
-            <xsl:copy-of select="@*[name() != 'fileref']"/>
-            <xsl:attribute name="fileref">
-                <xsl:if test="ancestor::*/@xml:base">
-                    <xsl:call-template name="hdm.get.leftmost.of.separator">
-                        <xsl:with-param name="path" select="ancestor::*/@xml:base"/>
-                        <xsl:with-param name="separator" select="'/'"/>
-                    </xsl:call-template>                  
-                    <xsl:text>/</xsl:text>
-                </xsl:if>
-                <xsl:value-of select="@fileref"/>
-            </xsl:attribute>
-        </db:imagedata>
-    </xsl:template>
-    
-    <xsl:template match="db:videodata">
-        <db:videodata>
-            <xsl:copy-of select="@*[name() != 'fileref']"/>
-            <xsl:attribute name="fileref">
-                <xsl:call-template name="hdm.get.leftmost.of.separator">
-                    <xsl:with-param name="path" select="ancestor::*/@xml:base"/>
-                    <xsl:with-param name="separator" select="'/'"/>
-                </xsl:call-template>                  
-                <xsl:text>/</xsl:text>
-                <xsl:value-of select="@fileref"/>
-            </xsl:attribute>
-        </db:videodata>
-    </xsl:template>
-    
     <!-- 
         <xsl:template match="db:answer">
         <db:answer>
-- 
GitLab