diff options
author | Shaun McCance <shaunm@gnome.org> | 2010-01-06 15:16:07 -0600 |
---|---|---|
committer | Shaun McCance <shaunm@gnome.org> | 2010-01-06 15:16:07 -0600 |
commit | 9d70b0898cbb88e58bbcb87df162c2a0721bd2b3 (patch) | |
tree | d81d6cffb03071def5a5d83863d8ca2cc3cd899a /xslt | |
parent | 43bc39f4276914168c8003843373c65f3795842a (diff) | |
download | gnome-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.in | 10 | ||||
-rw-r--r-- | xslt/mallard/common/mal-link.xsl | 3 | ||||
-rw-r--r-- | xslt/mallard/html/mal2html-css.xsl | 18 | ||||
-rw-r--r-- | xslt/mallard/html/mal2html-page.xsl | 43 |
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>◀  </xsl:text></xsl:when> + <xsl:otherwise><xsl:text>▶  </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>  ▶</xsl:text></xsl:when> + <xsl:otherwise><xsl:text>  ◀</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>  |  </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 --> |