summaryrefslogtreecommitdiff
path: root/templates/du2html.xsl
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2009-08-17 15:56:02 +0200
committerdakkar <dakkar@thenautilus.net>2009-08-17 15:56:02 +0200
commit3002a4d88608795451ff59cb29fd6f29d03f25d7 (patch)
treecef6f6d9dcff1fd0dc48ce29fa51b492e5ec57d7 /templates/du2html.xsl
parentfix filedesc (diff)
downloadthenautilus-3002a4d88608795451ff59cb29fd6f29d03f25d7.tar.gz
thenautilus-3002a4d88608795451ff59cb29fd6f29d03f25d7.tar.bz2
thenautilus-3002a4d88608795451ff59cb29fd6f29d03f25d7.zip
inter-page links, and better tags
- added links to AU pages - added code to du2html to use them - show only the current document's tags, not the whole tree
Diffstat (limited to 'templates/du2html.xsl')
-rw-r--r--templates/du2html.xsl113
1 files changed, 106 insertions, 7 deletions
diff --git a/templates/du2html.xsl b/templates/du2html.xsl
index 3725333..fd95026 100644
--- a/templates/du2html.xsl
+++ b/templates/du2html.xsl
@@ -1,4 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE x:stylesheet [
+<!ENTITY nav-fields "field[field_name='prev' or field_name='next' or field_name='contents' or field_name='index' or field_name='glossary' or field_name='copyright' or field_name='start' or field_name='chapter' or field_name='section' or field_name='subsection' or field_name='appendix' or field_name='help']/field_body" >
+]>
<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:e="http://exslt.org/common"
@@ -31,6 +34,22 @@
</x:variable>
<x:variable name="langs" select="e:node-set($langs-rtf)/node()"/>
+ <x:variable name="link-names-rtf">
+ <link rel="prev" lang="it">Precendente</link> <link rel="prev" lang="en">Previous</link>
+ <link rel="next" lang="it">Successivo</link> <link rel="next" lang="en">Next</link>
+ <link rel="contents" lang="it">Indice</link> <link rel="contents" lang="en">Contents</link>
+ <link rel="index" lang="it">Indice</link> <link rel="index" lang="en">Index</link>
+ <link rel="glossary" lang="it">Glossario</link> <link rel="glossary" lang="en">Glossary</link>
+ <link rel="copyright" lang="it">Copyright</link> <link rel="copyright" lang="en">Copyright</link>
+ <link rel="start" lang="it">Inizio</link> <link rel="start" lang="en">Start</link>
+ <link rel="chapter" lang="it">Capitolo</link> <link rel="chapter" lang="en">Chapter</link>
+ <link rel="section" lang="it">Sezione</link> <link rel="section" lang="en">Section</link>
+ <link rel="subsection" lang="it">Sotto-sezione</link> <link rel="subsection" lang="en">Subsection</link>
+ <link rel="appendix" lang="it">Appetdice</link> <link rel="appendix" lang="en">Appendix</link>
+ <link rel="help" lang="it">Guida</link> <link rel="help" lang="en">Help</link>
+ </x:variable>
+ <x:variable name="link-names" select="e:node-set($link-names-rtf)/node()" />
+
<x:output method="html" encoding="utf-8"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
indent="yes"/>
@@ -97,15 +116,15 @@
<x:value-of select="." disable-output-escaping="yes" />
</style>
</x:for-each>
+ <x:apply-templates select="docinfo" mode="nav-links" />
</head>
<body>
<div id="content">
<h1><x:apply-templates select="title/node()"/></h1>
<x:apply-templates/>
</div>
- <div id="tags">
- <x:apply-templates select="wc:tagged()"/>
- </div>
+ <x:apply-templates select="docinfo" mode="tags" />
+ <x:apply-templates select="docinfo" mode="nav-block" />
<div id="dates">
<x:apply-templates select="wc:dates-for($language,$filename,'./')"/>
</div>
@@ -128,19 +147,24 @@
</x:template>
<x:template match="/wc:tags">
- <ul>
+ <dl>
<x:apply-templates/>
- </ul>
+ </dl>
</x:template>
<x:template match="wc:tag">
- <li>
+ <dt>
<span class="tag title">
<a href="{concat('/tags/',@name,'/')}">
<x:apply-templates select="wc:title-for($language,$filename,concat('/tags/',@name,'/'))"/>
</a>
</span>
- </li>
+ </dt>
+ <dd>
+ <ul>
+ <x:apply-templates/>
+ </ul>
+ </dd>
</x:template>
<x:template match="wc:doc">
@@ -164,4 +188,79 @@
<x:if test="following-sibling::wc:lang"> | </x:if>
</x:template>
+ <x:template match="docinfo" mode="tags">
+ <x:variable name="tags">
+ <x:apply-templates select="field" mode="tags"/>
+ </x:variable>
+ <x:if test="normalize-space($tags) != ''">
+ <div id="tags">
+ <ul>
+ <x:copy-of select="$tags" />
+ </ul>
+ </div>
+ </x:if>
+ </x:template>
+
+ <x:template match="field[field_name='tags']/field_body/*/list_item|field[field_name='tags']/field_body/paragraph" mode="tags">
+ <x:variable name="tag-name"><x:value-of select="normalize-space(.)"/></x:variable>
+ <li>
+ <span class="tag title">
+ <a href="{concat('/tags/',$tag-name,'/')}">
+ <x:apply-templates select="wc:title-for($language,$filename,concat('/tags/',$tag-name,'/'))"/>
+ </a>
+ </span>
+ </li>
+ </x:template>
+
+ <x:template match="field[field_name != 'tags']" mode="tags" priority="-1" />
+ <x:template match="field_name" mode="tags" priority="-1" />
+
+ <x:template match="docinfo" mode="nav-block">
+ <x:variable name="links">
+ <x:apply-templates select="field" mode="nav-block"/>
+ </x:variable>
+ <x:if test="normalize-space($links) != ''">
+ <div id="nav-links">
+ <dl>
+ <x:copy-of select="$links" />
+ </dl>
+ </div>
+ </x:if>
+ </x:template>
+
+ <x:template match="docinfo" mode="nav-block">
+ <div id="nav-links">
+ <x:apply-templates select="field" mode="nav-block"/>
+ </div>
+ </x:template>
+
+ <x:template match="&nav-fields;" mode="nav-block">
+ <x:variable name="rel"><x:value-of select="normalize-space(parent::field/field_name)" /></x:variable>
+ <x:variable name="label">
+ <x:copy-of select="$link-names[@rel=$rel and @lang=$language]/node()" />
+ </x:variable>
+ <dt class="nav-link nav-link-{$rel}">
+ <x:copy-of select="$label"/><x:text>: </x:text>
+ </dt>
+ <dd class="nav-link nav-link-{$rel}">
+ <a class="nav-link nav-link-{$rel}" href="{normalize-space(.)}">
+ <x:apply-templates select="wc:title-for($langs,ancestor::document/@source,normalize-space(.))"/>
+ </a>
+ </dd>
+ </x:template>
+
+ <x:template match="field/field_name|field/field_body" mode="nav-block" priority="-1" />
+
+ <x:template match="&nav-fields;" mode="nav-links">
+ <x:element name="link">
+ <x:attribute name="rel"><x:value-of select="normalize-space(parent::field/field_name)"/></x:attribute>
+ <x:attribute name="href"><x:value-of select="normalize-space(.)"/></x:attribute>
+ <x:attribute name="title">
+ <x:value-of select="normalize-space(wc:title-for($langs,ancestor::document/@source,normalize-space(.)))"/>
+ </x:attribute>
+ </x:element>
+ </x:template>
+
+ <x:template match="field/field_name|field/field_body" mode="nav-links" priority="-1" />
+
</x:stylesheet> \ No newline at end of file