[yelp-xsl] mal2html-page.xsl: Added e:links type 'series'



commit 1274f541e26aeda000eb4643d7c4cd78c734b07f
Author: Shaun McCance <shaunm gnome org>
Date:   Fri Jan 7 16:58:36 2011 -0500

    mal2html-page.xsl: Added e:links type 'series'

 xslt/common/html.xsl                |   15 ++++++
 xslt/mallard/html/mal2html-page.xsl |   86 ++++++++++++++++++++++++++++++++++-
 2 files changed, 99 insertions(+), 2 deletions(-)
---
diff --git a/xslt/common/html.xsl b/xslt/common/html.xsl
index 3a1c95a..c5e00cd 100644
--- a/xslt/common/html.xsl
+++ b/xslt/common/html.xsl
@@ -749,6 +749,21 @@ a.nextlinks-next::after {
   </xsl:choose><xsl:text>';
   color: </xsl:text><xsl:value-of select="$color.text_light"/><xsl:text>;
 }
+div.serieslinks {
+  display: inline-block;
+  padding: 0 1em 0 1em;
+  background-color: </xsl:text>
+    <xsl:value-of select="$color.blue_background"/><xsl:text>;
+  border: solid 1px </xsl:text>
+    <xsl:value-of select="$color.blue_border"/><xsl:text>;
+}
+div.serieslinks ul { margin: 0; }
+div.serieslinks li { padding: 0; }
+div.serieslinks div.title { margin: 0.5em 0 0.5em 0; }
+div.serieslinks div.title span.title {
+  border-bottom: solid 1px </xsl:text>
+    <xsl:value-of select="$color.blue_border"/><xsl:text>;
+}
 pre.numbered {
   margin: 0;
   padding: 0.5em;
diff --git a/xslt/mallard/html/mal2html-page.xsl b/xslt/mallard/html/mal2html-page.xsl
index ed33a78..094d9d5 100644
--- a/xslt/mallard/html/mal2html-page.xsl
+++ b/xslt/mallard/html/mal2html-page.xsl
@@ -344,7 +344,7 @@ REMARK: Describe this template
             <xsl:attribute name="title">
               <xsl:call-template name="mal.link.content">
                 <xsl:with-param name="node" select="$prev"/>
-                <xsl:with-param name="xref" select="$prev/@xref"/>
+                <xsl:with-param name="xref" select="$prev/../../@id"/>
               </xsl:call-template>
             </xsl:attribute>
             <xsl:call-template name="l10n.gettext">
@@ -379,6 +379,88 @@ REMARK: Describe this template
   </xsl:for-each>
 </xsl:template>
 
+<xsl:template name="mal2html.links.series.prev">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="linkid">
+    <xsl:call-template name="mal.link.linkid">
+      <xsl:with-param name="node" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:for-each select="$mal.cache">
+    <xsl:variable name="prev" select="key('mal.cache.link.key', concat('next:', $linkid))"/>
+    <xsl:if test="$prev">
+      <xsl:call-template name="mal2html.links.series.prev">
+        <xsl:with-param name="node" select="key('mal.cache.key', $prev/../../@id)"/>
+      </xsl:call-template>
+      <li class="links">
+        <a>
+          <xsl:attribute name="href">
+            <xsl:call-template name="mal.link.target">
+              <xsl:with-param name="node" select="$prev"/>
+              <xsl:with-param name="xref" select="$prev/../../@id"/>
+            </xsl:call-template>
+          </xsl:attribute>
+          <xsl:call-template name="mal.link.content">
+            <xsl:with-param name="node" select="$prev"/>
+            <xsl:with-param name="xref" select="$prev/../../@id"/>
+          </xsl:call-template>
+        </a>
+      </li>
+    </xsl:if>
+  </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="mal2html.links.series.next">
+  <xsl:param name="node" select="."/>
+  <xsl:variable name="linkid">
+    <xsl:call-template name="mal.link.linkid">
+      <xsl:with-param name="node" select="$node"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:variable name="next" select="$node/mal:info/mal:link[ type='next']"/>
+  <xsl:if test="$next">
+    <xsl:for-each select="$mal.cache">
+      <li class="links">
+        <a>
+          <xsl:attribute name="href">
+            <xsl:call-template name="mal.link.target">
+              <xsl:with-param name="node" select="$next"/>
+              <xsl:with-param name="xref" select="$next/@xref"/>
+            </xsl:call-template>
+          </xsl:attribute>
+          <xsl:call-template name="mal.link.content">
+            <xsl:with-param name="node" select="$next"/>
+            <xsl:with-param name="xref" select="$next/@xref"/>
+          </xsl:call-template>
+        </a>
+      </li>
+      <xsl:call-template name="mal2html.links.series.next">
+        <xsl:with-param name="node" select="key('mal.cache.key', $next/@xref)"/>
+      </xsl:call-template>
+    </xsl:for-each>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="e:links[ type = 'series']">
+  <div class="links serieslinks">
+    <xsl:apply-templates mode="mal2html.block.mode" select="mal:title"/>
+    <ul>
+      <xsl:call-template name="mal2html.links.series.prev">
+        <xsl:with-param name="node" select="/mal:page"/>
+      </xsl:call-template>
+      <li class="links">
+        <xsl:call-template name="mal.link.content">
+          <xsl:with-param name="node" select="/mal:page"/>
+          <xsl:with-param name="xref" select="/mal:page/@id"/>
+        </xsl:call-template>
+      </li>
+      <xsl:call-template name="mal2html.links.series.next">
+        <xsl:with-param name="node" select="/mal:page"/>
+      </xsl:call-template>
+    </ul>
+  </div>
+</xsl:template>
+
 <xsl:template name="mal2html.editor.badge">
   <xsl:param name="target" select="."/>
   <xsl:if test="$mal2html.editor_mode">
@@ -726,7 +808,7 @@ REMARK: Describe this template
       <ul>
         <xsl:for-each select="../mal:section">
           <xsl:call-template name="mal2html.page.autolink">
-            <xsl:with-param name="xref" select="concat('#', @id)"/>
+            <xsl:with-param name="xref" select="concat(/mal:page/@id, '#', @id)"/>
             <xsl:with-param name="role" select="'section'"/>
           </xsl:call-template>
         </xsl:for-each>



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