From b5d5c1939dceaeecdfd3c3cbec300be36c97a065 Mon Sep 17 00:00:00 2001
From: Martin Goik <goik@hdm-stuttgart.de>
Date: Sun, 28 Aug 2016 16:35:58 +0200
Subject: [PATCH] Linking slides to lecture notes

---
 .../Tdata/Components/exampleSlides.xml        | 31 ++++++++++++++++++
 .../Extensions/Tdata/Components/intro.xml     |  2 +-
 ws/Docbook/Extensions/Tdata/Makefile          |  4 +--
 ws/Docbook/Extensions/Tdata/fig.xml           | 32 -------------------
 ws/Docbook/Extensions/Xsl/docbook2docbook.xsl |  5 ++-
 ws/Docbook/Extensions/Xsl/docbook2html.xsl    |  8 +++++
 ws/Docbook/Extensions/Xsl/docbook2slides.xsl  | 16 ++--------
 7 files changed, 46 insertions(+), 52 deletions(-)

diff --git a/ws/Docbook/Extensions/Tdata/Components/exampleSlides.xml b/ws/Docbook/Extensions/Tdata/Components/exampleSlides.xml
index b91ed6169..fc3cfaaf8 100644
--- a/ws/Docbook/Extensions/Tdata/Components/exampleSlides.xml
+++ b/ws/Docbook/Extensions/Tdata/Components/exampleSlides.xml
@@ -41,5 +41,36 @@
         </db:imageobject>
       </db:mediaobject>
     </db:section>
+
+    <db:section xml:id="slideCallouts">
+      <db:title>Callouts</db:title>
+
+      <db:programlisting language="java">public class TestImg { <db:co
+          linkends="javaExample-1" xml:id="javaExample-1-co"/>
+
+   /**
+    * @throws JDOMException Corrupt content, failing to parse. <db:co
+          linkends="javaExample-2" xml:id="javaExample-2-co"/>
+    * @throws IOException File access problem.
+    */
+   @SuppressWarnings("static-method")
+   @Test
+   public void testCsv() throws JDOMException, IOException { <db:co
+          linkends="javaExample-3" xml:id="javaExample-3-co"/></db:programlisting>
+
+      <db:calloutlist>
+        <db:callout arearefs="javaExample-1-co" xml:id="javaExample-1">
+          <db:para>A Java class.</db:para>
+        </db:callout>
+
+        <db:callout arearefs="javaExample-2-co" xml:id="javaExample-2">
+          <db:para>Javadoc header.</db:para>
+        </db:callout>
+
+        <db:callout arearefs="javaExample-3-co" xml:id="javaExample-3">
+          <db:para>A method.</db:para>
+        </db:callout>
+      </db:calloutlist>
+    </db:section>
   </db:section>
 </db:chapter>
diff --git a/ws/Docbook/Extensions/Tdata/Components/intro.xml b/ws/Docbook/Extensions/Tdata/Components/intro.xml
index 61005eafe..097b5813b 100644
--- a/ws/Docbook/Extensions/Tdata/Components/intro.xml
+++ b/ws/Docbook/Extensions/Tdata/Components/intro.xml
@@ -166,5 +166,5 @@
   </db:figure>
 
   <db:para>This is a cross reference to <db:xref
-  linkend="callouts"/>.</db:para>
+  linkend="slideCallouts"/>.</db:para>
 </db:chapter>
diff --git a/ws/Docbook/Extensions/Tdata/Makefile b/ws/Docbook/Extensions/Tdata/Makefile
index 0f5f84d0a..d30d1be4f 100644
--- a/ws/Docbook/Extensions/Tdata/Makefile
+++ b/ws/Docbook/Extensions/Tdata/Makefile
@@ -45,8 +45,8 @@ webhelp:${BUILDROOT}/${SCRIPTBASENAME}_html.xml
 	cd  ${BUILDROOT};/usr/share/xmlmind/bin/xxetool convert $(DEBUG)  \
            db5.toWebHelp ${SCRIPTBASENAME}_html.xml -u webhelp
 
-slides: ${BUILDROOT}/fig_html.xml
-	cd  ${BUILDROOT}; ${SAXONCMD} -s:${SCRIPTBASENAME}_html.xml -xsl:../../Xsl/docbook2slides.xsl
+slides: ${BUILDROOT}/${SCRIPTBASENAME}.xml
+	cd  ${BUILDROOT}; ${SAXONCMD} -s:${SCRIPTBASENAME}.xml -xsl:../../Xsl/docbook2slides.xsl callout.unicode=1
 
 pdf: fig.xml
 	/usr/share/xmlmind/bin/xxetool convert $(DEBUG) ${XSLPARAM_pdf} \
diff --git a/ws/Docbook/Extensions/Tdata/fig.xml b/ws/Docbook/Extensions/Tdata/fig.xml
index ba37c42db..f8247b52d 100644
--- a/ws/Docbook/Extensions/Tdata/fig.xml
+++ b/ws/Docbook/Extensions/Tdata/fig.xml
@@ -36,37 +36,6 @@
 
   <xi:include href="Components/intro.xml" xpointer="element(/1)"/>
 
-  <chapter xml:id="callouts">
-    <title>Callouts</title>
-
-    <programlisting language="java">public class TestImg { <co
-        linkends="javaExample-1" xml:id="javaExample-1-co"/>
-
-   /**
-    * @throws JDOMException Corrupt content, failing to parse. <co
-        linkends="javaExample-2" xml:id="javaExample-2-co"/>
-    * @throws IOException File access problem.
-    */
-   @SuppressWarnings("static-method")
-   @Test
-   public void testCsv() throws JDOMException, IOException { <co
-        linkends="javaExample-3" xml:id="javaExample-3-co"/></programlisting>
-
-    <calloutlist>
-      <callout arearefs="javaExample-1-co" xml:id="javaExample-1">
-        <para>A Java class.</para>
-      </callout>
-
-      <callout arearefs="javaExample-2-co" xml:id="javaExample-2">
-        <para>Javadoc header.</para>
-      </callout>
-
-      <callout arearefs="javaExample-3-co" xml:id="javaExample-3">
-        <para>A method.</para>
-      </callout>
-    </calloutlist>
-  </chapter>
-
   <chapter xml:id="qandaset">
     <title>Question and answer sets</title>
 
@@ -90,5 +59,4 @@
   </chapter>
 
   <xi:include href="Components/exampleSlides.xml" xpointer="element(/1)"/>
-
 </book>
diff --git a/ws/Docbook/Extensions/Xsl/docbook2docbook.xsl b/ws/Docbook/Extensions/Xsl/docbook2docbook.xsl
index 44e405eac..b2cbb7bc7 100644
--- a/ws/Docbook/Extensions/Xsl/docbook2docbook.xsl
+++ b/ws/Docbook/Extensions/Xsl/docbook2docbook.xsl
@@ -205,12 +205,11 @@
     </xsl:template>
     
     <xsl:template match="*" mode="make">
-        <para>
+        <db:para>
             <xsl:text>No template of mode='make' defined for element'</xsl:text>
             <xsl:value-of select="name(.)"/>
             <xsl:text>'</xsl:text>
-        </para>
-        
+        </db:para>
     </xsl:template>
     
 </xsl:stylesheet>
diff --git a/ws/Docbook/Extensions/Xsl/docbook2html.xsl b/ws/Docbook/Extensions/Xsl/docbook2html.xsl
index 0ee7bb70c..5edcfe050 100644
--- a/ws/Docbook/Extensions/Xsl/docbook2html.xsl
+++ b/ws/Docbook/Extensions/Xsl/docbook2html.xsl
@@ -45,4 +45,12 @@
         
     </xsl:template>
     
+    <xsl:template match="db:annotation[@role='slide']">
+        <db:para>
+            <db:link xlink:href="../Slides/{parent::db:section/@xml:id}.html">
+                <xsl:text>Slide version of this section</xsl:text>
+            </db:link>
+        </db:para>
+    </xsl:template>
+    
 </xsl:stylesheet>
diff --git a/ws/Docbook/Extensions/Xsl/docbook2slides.xsl b/ws/Docbook/Extensions/Xsl/docbook2slides.xsl
index 57d3f7448..0ff3c124a 100644
--- a/ws/Docbook/Extensions/Xsl/docbook2slides.xsl
+++ b/ws/Docbook/Extensions/Xsl/docbook2slides.xsl
@@ -3,13 +3,13 @@
     xmlns:xlink="http://www.w3.org/1999/xlink"  xmlns:d="http://docbook.org/ns/docbook">
     
     <xsl:import href="/usr/share/xmlmind/addon/config/docbook5/xsl/html/docbook.xsl" />
-    
+        
     <xsl:template match="/">
         <xsl:apply-templates select="//d:section[d:annotation[@role='slide']]" mode='entry'/>        
     </xsl:template>
     
     <xsl:template match="d:section" mode='entry'>
-        <xsl:result-document method="xhtml" encoding="utf-8" href="Slides/{@xml:id}.html" indent="yes">
+        <xsl:result-document method="xhtml" encoding="utf-8" href="Slides/{@xml:id}.html" indent="no">
             <html lang="en">
                 <head>
                     <title>
@@ -30,9 +30,6 @@
                         <div class="slides">
                             <section>
                                 <xsl:apply-templates select="*[not(name(.)='db:section')]"/>
-                                <xsl:message >
-                                    <xsl:value-of select="name(.)"/>
-                                </xsl:message>
                             </section>
                             <xsl:apply-templates select="d:section"/>
                         </div>
@@ -78,13 +75,4 @@
         </h3>
     </xsl:template>
     
-    <xsl:template match="sag">
-        <xsl:comment>
-            <xsl:text>No template defined for element '</xsl:text>
-            <xsl:value-of select="namespace-uri()"/>
-            <xsl:text>:</xsl:text>
-            <xsl:value-of select="name(.)"/>
-            <xsl:text>'</xsl:text>
-        </xsl:comment>
-    </xsl:template>
 </xsl:stylesheet>
-- 
GitLab