diff options
Diffstat (limited to 'templates')
-rw-r--r-- | templates/du2html.xsl | 113 |
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 |