summaryrefslogtreecommitdiff
path: root/xslt
diff options
context:
space:
mode:
authorShaun McCance <shaunm@gnome.org>2010-01-06 15:16:07 -0600
committerShaun McCance <shaunm@gnome.org>2010-01-06 15:16:07 -0600
commit9d70b0898cbb88e58bbcb87df162c2a0721bd2b3 (patch)
treed81d6cffb03071def5a5d83863d8ca2cc3cd899a /xslt
parent43bc39f4276914168c8003843373c65f3795842a (diff)
downloadgnome-doc-utils-9d70b0898cbb88e58bbcb87df162c2a0721bd2b3.tar.gz
[mal2html] Implement previous and next links for Mallard documents
Diffstat (limited to 'xslt')
-rw-r--r--xslt/gettext/l10n.xml.in10
-rw-r--r--xslt/mallard/common/mal-link.xsl3
-rw-r--r--xslt/mallard/html/mal2html-css.xsl18
-rw-r--r--xslt/mallard/html/mal2html-page.xsl43
4 files changed, 73 insertions, 1 deletions
diff --git a/xslt/gettext/l10n.xml.in b/xslt/gettext/l10n.xml.in
index 6076c9a..26a7dbc 100644
--- a/xslt/gettext/l10n.xml.in
+++ b/xslt/gettext/l10n.xml.in
@@ -203,6 +203,11 @@
<_msg>Name</_msg>
</msgset>
<msgset>
+ <msgid>Next</msgid>
+ <!-- Used as link to the next page in a series. -->
+ <_msg>Next</_msg>
+</msgset>
+<msgset>
<msgid>Note</msgid>
<!--
http://www.docbook.org/tdg/en/html/note.html
@@ -240,6 +245,11 @@
<_msg>Preface</_msg>
</msgset>
<msgset>
+ <msgid>Previous</msgid>
+ <!-- Used as link to the previous page in a series. -->
+ <_msg>Previous</_msg>
+</msgset>
+<msgset>
<msgid>Publisher</msgid>
<!-- Used as a header before a list of publishers. -->
<_msg>
diff --git a/xslt/mallard/common/mal-link.xsl b/xslt/mallard/common/mal-link.xsl
index ab4974d..2f8fb95 100644
--- a/xslt/mallard/common/mal-link.xsl
+++ b/xslt/mallard/common/mal-link.xsl
@@ -66,6 +66,9 @@ it to a file. Those tools can use this parameter directly.
mal.cache.key
-->
<xsl:key name="mal.cache.key" match="mal:page | mal:section" use="@id"/>
+<xsl:key name="mal.cache.link.key"
+ match="mal:info/mal:link[@type]"
+ use="concat(@type, ':', @xref)"/>
<!--@@==========================================================================
diff --git a/xslt/mallard/html/mal2html-css.xsl b/xslt/mallard/html/mal2html-css.xsl
index 4179f1d..f1e016d 100644
--- a/xslt/mallard/html/mal2html-css.xsl
+++ b/xslt/mallard/html/mal2html-css.xsl
@@ -138,6 +138,24 @@ div.body {
background-color: </xsl:text>
<xsl:value-of select="$theme.color.background"/><xsl:text>;
}
+div.navbar {
+ margin: 0;
+ float: right;
+}
+a.navbar-prev::before {
+ content: '</xsl:text><xsl:choose>
+ <xsl:when test="$left = 'left'"><xsl:text>&#x25C0;&#x00A0;&#x00A0;</xsl:text></xsl:when>
+ <xsl:otherwise><xsl:text>&#x25B6;&#x00A0;&#x00A0;</xsl:text></xsl:otherwise>
+ </xsl:choose><xsl:text>';
+ color: </xsl:text><xsl:value-of select="$theme.color.text_light"/><xsl:text>;
+}
+a.navbar-next::after {
+ content: '</xsl:text><xsl:choose>
+ <xsl:when test="$left = 'left'"><xsl:text>&#x00A0;&#x00A0;&#x25B6;</xsl:text></xsl:when>
+ <xsl:otherwise><xsl:text>&#x00A0;&#x00A0;&#x25C0;</xsl:text></xsl:otherwise>
+ </xsl:choose><xsl:text>';
+ color: </xsl:text><xsl:value-of select="$theme.color.text_light"/><xsl:text>;
+}
div.copyrights {
text-align: center;
color: </xsl:text>
diff --git a/xslt/mallard/html/mal2html-page.xsl b/xslt/mallard/html/mal2html-page.xsl
index 78c91ed..673c02d 100644
--- a/xslt/mallard/html/mal2html-page.xsl
+++ b/xslt/mallard/html/mal2html-page.xsl
@@ -261,12 +261,12 @@ REMARK: Describe this template
<xsl:attribute name="class">
<xsl:text>title</xsl:text>
</xsl:attribute>
- <!-- FIXME: i18n -->
<xsl:call-template name="l10n.gettext">
<xsl:with-param name="msgid" select="'Further Reading'"/>
</xsl:call-template>
</xsl:element>
</div>
+ <!-- FIXME: For prev/next series, insert links to first/prev/next/last -->
<div class="autolinks">
<xsl:if test="$guidenodes">
<div class="title"><span>
@@ -500,6 +500,47 @@ REMARK: Describe this template
<xsl:with-param name="node" select="."/>
</xsl:call-template>
<div class="body">
+ <xsl:variable name="linkid">
+ <xsl:call-template name="mal.link.linkid"/>
+ </xsl:variable>
+ <xsl:variable name="next" select="mal:info/mal:link[@type='next']"/>
+ <xsl:for-each select="$mal.cache">
+ <xsl:variable name="prev" select="key('mal.cache.link.key', concat('next:', $linkid))"/>
+ <xsl:if test="$prev or $next">
+ <!-- FIXME: Get prev/next links in constant position -->
+ <div class="navbar">
+ <xsl:if test="$prev">
+ <a class="navbar-prev">
+ <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="l10n.gettext">
+ <xsl:with-param name="msgid" select="'Previous'"/>
+ </xsl:call-template>
+ </a>
+ </xsl:if>
+ <xsl:if test="$prev and $next">
+ <xsl:text>&#x00A0;&#x00A0;|&#x00A0;&#x00A0;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$next">
+ <a class="navbar-next">
+ <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="l10n.gettext">
+ <xsl:with-param name="msgid" select="'Next'"/>
+ </xsl:call-template>
+ </a>
+ </xsl:if>
+ </div>
+ </xsl:if>
+ </xsl:for-each>
<xsl:if test="$mal2html.editor_mode and $revision/@status != ''">
<div class="version">
<!-- FIXME: i18n -->