aboutsummaryrefslogtreecommitdiff
path: root/xsl
diff options
context:
space:
mode:
Diffstat (limited to 'xsl')
-rw-r--r--xsl/active.xsl23
-rw-r--r--xsl/anime-old.xsl76
-rw-r--r--xsl/anime.xsl131
-rw-r--r--xsl/deep.xsl35
-rw-r--r--xsl/diary.xsl74
-rw-r--r--xsl/disclaimer.xsl43
-rw-r--r--xsl/front.xsl43
-rw-r--r--xsl/i18n.xsl115
-rw-r--r--xsl/identity.xsl10
-rw-r--r--xsl/langfilter.xsl28
-rw-r--r--xsl/layout.xsl48
-rw-r--r--xsl/links.xsl22
-rw-r--r--xsl/news.xsl38
-rw-r--r--xsl/normal.xsl45
-rw-r--r--xsl/racconto.xsl20
-rw-r--r--xsl/report.xsl72
-rw-r--r--xsl/resolver.xsl122
-rw-r--r--xsl/thumbed.xsl31
18 files changed, 976 insertions, 0 deletions
diff --git a/xsl/active.xsl b/xsl/active.xsl
new file mode 100644
index 0000000..40ddde1
--- /dev/null
+++ b/xsl/active.xsl
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+ <xsl:template name="is-active">
+ <xsl:param name="sitemap"/>
+ <xsl:param name="page"/>
+ <xsl:param name="root"/>
+ <xsl:choose>
+ <xsl:when test="generate-id($root)=generate-id(document($page/@href,$map))">active</xsl:when>
+ <xsl:otherwise>no</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="name-active">
+ <xsl:param name="sitemap"/>
+ <xsl:param name="set"/>
+ <xsl:param name="root"/>
+ <xsl:for-each select="$set">
+ <xsl:variable name="a"><xsl:call-template name="is-active"><xsl:with-param name="page" select="."/><xsl:with-param name="sitemap" select="$sitemap"/><xsl:with-param name="root" select="$root"/></xsl:call-template></xsl:variable>
+ <xsl:if test="$a='active'"><xsl:value-of select="@name"/></xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/xsl/anime-old.xsl b/xsl/anime-old.xsl
new file mode 100644
index 0000000..14e6407
--- /dev/null
+++ b/xsl/anime-old.xsl
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="xml"/>
+<xsl:include href="identity.xsl"/>
+<xsl:include href="i18n.xsl"/>
+
+<xsl:variable name="lang" select="/html/@xml:lang"/>
+<xsl:variable name="dateref" select="/html//basedate/node()"/>
+
+<xsl:template match="//proiezione[position()=1]">
+ <xsl:choose>
+ <xsl:when test="$lang='it'">
+ <h2>Questa settimana:</h2>
+ <p>
+ <xsl:call-template name="datestring-d">
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="date" select="data"/>
+ </xsl:call-template>: <xsl:copy-of select="titolo/node()"/></p>
+ <xsl:if test="manifesto">
+ <p><a href="{manifesto/@href}">manifesto</a></p>
+ </xsl:if>
+ <dl>
+ <xsl:if test="regia"><dt>Regia:</dt><dd><xsl:value-of select="regia"/></dd></xsl:if>
+ <xsl:if test="produzione"><dt>Produzione:</dt><dd><xsl:value-of select="produzione"/></dd></xsl:if>
+ <xsl:if test="durata"><dt>Durata:</dt><dd><xsl:value-of select="durata"/></dd></xsl:if>
+ <xsl:if test="lingua"><dt>Lingua:</dt><dd><xsl:value-of select="lingua"/></dd></xsl:if>
+ <xsl:if test="supporto"><dt>Supporto:</dt><dd><xsl:value-of select="supporto"/></dd></xsl:if>
+ <xsl:if test="note"><dt>Note:</dt><dd><xsl:copy-of select="note/node()"/></dd></xsl:if>
+ </dl>
+ <h2>Proiezioni precedenti:</h2>
+ </xsl:when>
+ <xsl:when test="$lang='en'">
+ <h2>This week:</h2>
+ <p>
+ <xsl:call-template name="datestring-d">
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="date" select="data"/>
+ </xsl:call-template>: <xsl:copy-of select="titolo/node()"/></p>
+ <xsl:if test="manifesto">
+ <p><a href="{manifesto/@href}">poster</a></p>
+ </xsl:if>
+ <dl>
+ <xsl:if test="regia"><dt>Director:</dt><dd><xsl:value-of select="regia"/></dd></xsl:if>
+ <xsl:if test="produzione"><dt>Production:</dt><dd><xsl:value-of select="produzione"/></dd></xsl:if>
+ <xsl:if test="durata"><dt>Runtime:</dt><dd><xsl:value-of select="durata"/></dd></xsl:if>
+ <xsl:if test="lingua"><dt>Language:</dt><dd><xsl:value-of select="lingua"/></dd></xsl:if>
+ <xsl:if test="supporto"><dt>Support:</dt><dd><xsl:value-of select="supporto"/></dd></xsl:if>
+ <xsl:if test="note"><dt>Notes:</dt><dd><xsl:copy-of select="note/node()"/></dd></xsl:if>
+ </dl>
+ <h2>Previous showings:</h2>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="//proiezione[position()>1]">
+ <p><xsl:copy-of select="titolo/node()"/>
+ <xsl:choose>
+ <xsl:when test="manifesto">
+ (<a href="{manifesto/@href}">
+ <xsl:choose>
+ <xsl:when test="$lang='it'">manifesto</xsl:when>
+ <xsl:when test="$lang='en'">poster</xsl:when>
+ </xsl:choose>
+ </a>)
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$lang='it'">(niente manifesto)</xsl:when>
+ <xsl:when test="$lang='en'">(no poster)</xsl:when>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </p>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xsl/anime.xsl b/xsl/anime.xsl
new file mode 100644
index 0000000..0f1344f
--- /dev/null
+++ b/xsl/anime.xsl
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="xml"/>
+<xsl:include href="identity.xsl"/>
+<xsl:include href="i18n.xsl"/>
+
+<xsl:variable name="lang" select="/html/@xml_lang"/>
+
+<xsl:template match="/html/body/proiezioni">
+ <h2><xsl:choose><xsl:when test="$lang='it'">Questa settimana:</xsl:when><xsl:when test="$lang='en'">This week:</xsl:when></xsl:choose></h2>
+ <xsl:for-each select="/html/presenttime/following-sibling::proiezione[position()=1]">
+ <xsl:call-template name="present"/>
+ </xsl:for-each>
+ <h2><xsl:choose><xsl:when test="$lang='it'">Prossime proiezioni:</xsl:when><xsl:when test="$lang='en'">Future showings:</xsl:when></xsl:choose></h2>
+ <xsl:for-each select="/html/presenttime/preceding-sibling::proiezione">
+ <xsl:sort select="data" data-type="number" order="ascending"/>
+ <xsl:call-template name="future"/>
+ </xsl:for-each>
+ <h2><xsl:choose><xsl:when test="$lang='it'">Proiezioni passate:</xsl:when><xsl:when test="$lang='en'">Past showings:</xsl:when></xsl:choose></h2>
+ <xsl:for-each select="/html/presenttime/following-sibling::proiezione[position()>1]">
+ <xsl:sort select="data" data-type="number" order="descending"/>
+ <xsl:if test="not(preceding-sibling::proiezione[titolo/node() = current()/titolo/node()])">
+ <xsl:call-template name="past"/>
+ </xsl:if>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="present">
+ <xsl:choose>
+ <xsl:when test="$lang='it'">
+ <p>
+ <xsl:call-template name="datestring-d">
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="date" select="data"/>
+ </xsl:call-template>: <xsl:copy-of select="titolo/node()"/></p>
+ <xsl:if test="manifesto">
+ <p><a href="{manifesto/@href}">manifesto</a></p>
+ </xsl:if>
+ <dl>
+ <xsl:if test="regia"><dt>Regia:</dt><dd><xsl:value-of select="regia"/></dd></xsl:if>
+ <xsl:if test="produzione"><dt>Produzione:</dt><dd><xsl:value-of select="produzione"/></dd></xsl:if>
+ <xsl:if test="durata"><dt>Durata:</dt><dd><xsl:value-of select="durata"/></dd></xsl:if>
+ <xsl:if test="lingua"><dt>Lingua:</dt><dd><xsl:value-of select="lingua"/></dd></xsl:if>
+ <xsl:if test="supporto"><dt>Supporto:</dt><dd><xsl:value-of select="supporto"/></dd></xsl:if>
+ <xsl:if test="note"><dt>Note:</dt><dd><xsl:copy-of select="note/node()"/></dd></xsl:if>
+ </dl>
+ </xsl:when>
+ <xsl:when test="$lang='en'">
+ <p>
+ <xsl:call-template name="datestring-d">
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="date" select="data"/>
+ </xsl:call-template>: <xsl:copy-of select="titolo/node()"/></p>
+ <xsl:if test="manifesto">
+ <p><a href="{manifesto/@href}">poster</a></p>
+ </xsl:if>
+ <dl>
+ <xsl:if test="regia"><dt>Director:</dt><dd><xsl:value-of select="regia"/></dd></xsl:if>
+ <xsl:if test="produzione"><dt>Production:</dt><dd><xsl:value-of select="produzione"/></dd></xsl:if>
+ <xsl:if test="durata"><dt>Runtime:</dt><dd><xsl:value-of select="durata"/></dd></xsl:if>
+ <xsl:if test="lingua"><dt>Language:</dt><dd><xsl:value-of select="lingua"/></dd></xsl:if>
+ <xsl:if test="supporto"><dt>Support:</dt><dd><xsl:value-of select="supporto"/></dd></xsl:if>
+ <xsl:if test="note"><dt>Notes:</dt><dd><xsl:copy-of select="note/node()"/></dd></xsl:if>
+ </dl>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="future">
+ <xsl:choose>
+ <xsl:when test="$lang='it'">
+ <p>
+ <xsl:call-template name="datestring-d">
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="date" select="data"/>
+ </xsl:call-template>: <xsl:copy-of select="titolo/node()"/></p>
+ <xsl:if test="manifesto">
+ <p><a href="{manifesto/@href}">manifesto</a></p>
+ </xsl:if>
+ <dl>
+ <xsl:if test="regia"><dt>Regia:</dt><dd><xsl:value-of select="regia"/></dd></xsl:if>
+ <xsl:if test="produzione"><dt>Produzione:</dt><dd><xsl:value-of select="produzione"/></dd></xsl:if>
+ <xsl:if test="durata"><dt>Durata:</dt><dd><xsl:value-of select="durata"/></dd></xsl:if>
+ <xsl:if test="lingua"><dt>Lingua:</dt><dd><xsl:value-of select="lingua"/></dd></xsl:if>
+ <xsl:if test="supporto"><dt>Supporto:</dt><dd><xsl:value-of select="supporto"/></dd></xsl:if>
+ <xsl:if test="note"><dt>Note:</dt><dd><xsl:copy-of select="note/node()"/></dd></xsl:if>
+ </dl>
+ </xsl:when>
+ <xsl:when test="$lang='en'">
+ <p>
+ <xsl:call-template name="datestring-d">
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="date" select="data"/>
+ </xsl:call-template>: <xsl:copy-of select="titolo/node()"/></p>
+ <xsl:if test="manifesto">
+ <p><a href="{manifesto/@href}">poster</a></p>
+ </xsl:if>
+ <dl>
+ <xsl:if test="regia"><dt>Director:</dt><dd><xsl:value-of select="regia"/></dd></xsl:if>
+ <xsl:if test="produzione"><dt>Production:</dt><dd><xsl:value-of select="produzione"/></dd></xsl:if>
+ <xsl:if test="durata"><dt>Runtime:</dt><dd><xsl:value-of select="durata"/></dd></xsl:if>
+ <xsl:if test="lingua"><dt>Language:</dt><dd><xsl:value-of select="lingua"/></dd></xsl:if>
+ <xsl:if test="supporto"><dt>Support:</dt><dd><xsl:value-of select="supporto"/></dd></xsl:if>
+ <xsl:if test="note"><dt>Notes:</dt><dd><xsl:copy-of select="note/node()"/></dd></xsl:if>
+ </dl>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="past">
+ <p><xsl:copy-of select="titolo/node()"/>
+ <xsl:choose>
+ <xsl:when test="manifesto">
+ (<a href="{manifesto/@href}">
+ <xsl:choose>
+ <xsl:when test="$lang='it'">manifesto</xsl:when>
+ <xsl:when test="$lang='en'">poster</xsl:when>
+ </xsl:choose>
+ </a>)
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$lang='it'">(niente manifesto)</xsl:when>
+ <xsl:when test="$lang='en'">(no poster)</xsl:when>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </p>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xsl/deep.xsl b/xsl/deep.xsl
new file mode 100644
index 0000000..670c28b
--- /dev/null
+++ b/xsl/deep.xsl
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:dyn="http://exslt.org/dynamic"
+ extension-element-prefixes="dyn"
+>
+<xsl:output method="xml"/>
+<xsl:include href="identity.xsl"/>
+
+<xsl:param name="sitemapuri"/>
+<xsl:variable name="nav" select="document($sitemapuri,document(''))"/>
+<xsl:param name="active"/>
+<xsl:variable name="activenode" select="dyn:evaluate(concat('$nav',$active))"/>
+
+<xsl:variable name="lang" select="/html/@xml_lang"/>
+
+<xsl:template match="/">
+ <html>
+ <xsl:copy-of select="html/@*"/>
+ <xsl:apply-templates select="/html/head"/>
+ <xsl:apply-templates select="/html/body"/>
+ <navigation>
+ <xsl:for-each select="$nav/sitemap/section[@name=$lang]/section">
+ <xsl:if test="count($activenode|.//main|.//page)=count(.//main|.//page)">
+ <link rel="same" href="resolve:{main/@name}" text="{@name}"/>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select="$nav/sitemap/section[@name and @title]">
+ <xsl:variable name="this" select="$activenode/@name"/>
+ <link rel="lang" href="{concat('resolve:',@name,':',$this)}" text="{@title}"/>
+ </xsl:for-each>
+ </navigation>
+ </html>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xsl/diary.xsl b/xsl/diary.xsl
new file mode 100644
index 0000000..49ad3e9
--- /dev/null
+++ b/xsl/diary.xsl
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:dyn="http://exslt.org/dynamic"
+ extension-element-prefixes="dyn"
+>
+<xsl:output method="xml"/>
+<xsl:include href="identity.xsl"/>
+
+<xsl:param name="sitemapuri"/>
+<xsl:variable name="nav" select="document($sitemapuri,document(''))"/>
+<xsl:param name="active"/>
+<xsl:variable name="activenode" select="dyn:evaluate(concat('$nav',$active))"/>
+<xsl:variable name="lang" select="/html/@xml_lang"/>
+<!--
+<xsl:template match="head">
+ <head>
+ <xsl:apply-templates/>
+ <link rel="stylesheet" type="text/css" href="resolve:diary-s"/>
+ </head>
+</xsl:template>
+-->
+<xsl:template match="/">
+ <html>
+ <xsl:apply-templates select="/html/head"/>
+ <xsl:apply-templates select="/html/body"/>
+ <navigation>
+ <xsl:choose>
+ <xsl:when test="$lang='it'">
+ <link rel="up" href="resolve:{$nav/sitemap/section[@name=$lang]//page[@name='daily']/@name}" text="Indice dei giorni"/>
+ </xsl:when>
+ <xsl:when test="$lang='en'">
+ <link rel="up" href="resolve:{$nav/sitemap/section[@name=$lang]//page[@name='daily']/@name}" text="Daily index"/>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:variable name="number" select="substring(string($activenode/@name),4)"/>
+ <xsl:if test="$number>1">
+ <xsl:choose>
+ <xsl:when test="$lang='it'">
+ <link rel="same" href="resolve:{$nav/sitemap//page[@name=concat('day',string($number - 1))]/@name}" text="Giorno precedente"/>
+ </xsl:when>
+ <xsl:when test="$lang='en'">
+ <link rel="same" href="resolve:{$nav/sitemap//page[@name=concat('day',string($number - 1))]/@name}" text="Previous day"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="$nav/sitemap//page[@name=concat('day',string($number + 1))]">
+ <xsl:choose>
+ <xsl:when test="$lang='it'">
+ <link rel="same" href="resolve:{$nav/sitemap//page[@name=concat('day',string($number + 1))]/@name}" text="Giorno successivo"/>
+ </xsl:when>
+ <xsl:when test="$lang='en'">
+ <link rel="same" href="resolve:{$nav/sitemap//page[@name=concat('day',string($number + 1))]/@name}" text="Next day"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ </navigation>
+ </html>
+</xsl:template>
+<!--
+<xsl:template match="img">
+ <div class="picture">
+
+ <xsl:choose>
+ <xsl:when test="@thumb">
+ <a href="{@src}"><img src="{@thumb}"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img src="{@src}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <br/><p><xsl:value-of select="@caption"/></p></div>
+</xsl:template>
+-->
+</xsl:stylesheet>
diff --git a/xsl/disclaimer.xsl b/xsl/disclaimer.xsl
new file mode 100644
index 0000000..e94e49f
--- /dev/null
+++ b/xsl/disclaimer.xsl
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:dyn="http://exslt.org/dynamic"
+ extension-element-prefixes="dyn"
+>
+<xsl:output method="html" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html40/strict.dtd" indent="yes"/>
+
+<xsl:include href="identity.xsl"/>
+
+<xsl:param name="sitemapuri"/>
+<xsl:variable name="nav" select="document($sitemapuri,document(''))"/>
+<xsl:param name="active"/>
+<xsl:variable name="activenode" select="dyn:evaluate(concat('$nav',$active))"/>
+<xsl:variable name="lang" select="/html/@xml_lang"/>
+
+<xsl:template match="/">
+ <html>
+ <xsl:copy-of select="html/@*"/>
+ <xsl:apply-templates select="/html/head"/>
+ <xsl:apply-templates select="/html/body"/>
+ <navigation>
+ <xsl:for-each select="$nav/sitemap/section[@name=$lang]/section">
+ <xsl:if test="count($activenode|.//main|.//page)=count(.//main|.//page)">
+ <link rel="same" href="resolve:{main/@name}" text="{@name}"/>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select="//link[@rel='patch']">
+ <link rel="same" href="{@href}" text="{@text}"/>
+ </xsl:for-each>
+ <xsl:for-each select="//link[@rel='outlink']">
+ <link rel="same" href="{@href}" text="{@text}"/>
+ </xsl:for-each>
+ <xsl:for-each select="$nav/sitemap/section[@name and @title]">
+ <xsl:variable name="this" select="$activenode/@name"/>
+ <link rel="lang" href="{concat('resolve:',@name,':',$this)}" text="{@title}"/>
+ </xsl:for-each>
+ </navigation>
+ </html>
+</xsl:template>
+
+<xsl:template match="link[@rel='patch' or @rel='outlink']"/>
+
+</xsl:stylesheet>
diff --git a/xsl/front.xsl b/xsl/front.xsl
new file mode 100644
index 0000000..de768e3
--- /dev/null
+++ b/xsl/front.xsl
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:dyn="http://exslt.org/dynamic"
+ extension-element-prefixes="dyn"
+>
+<xsl:output method="xml"/>
+<xsl:include href="identity.xsl"/>
+<xsl:include href="active.xsl"/>
+
+<xsl:param name="sitemapuri"/>
+<xsl:variable name="nav" select="document($sitemapuri,document(''))"/>
+<xsl:param name="active"/>
+<xsl:variable name="activenode" select="dyn:evaluate(concat('$nav',$active))"/>
+
+<xsl:variable name="lang" select="/html/@xml_lang"/>
+
+<xsl:template match="/">
+ <html>
+ <xsl:copy-of select="html/@*"/>
+ <xsl:apply-templates select="/html/head"/>
+ <xsl:apply-templates select="/html/body"/>
+ <navigation>
+ <xsl:choose>
+ <xsl:when test="$lang='it'">
+ <link rel="up" href="resolve:{$nav/sitemap/section[@name=$lang]/main[@name='front']/@name}" text="Inizio"/>
+ </xsl:when>
+ <xsl:when test="$lang='en'">
+ <link rel="up" href="resolve:{$nav/sitemap/section[@name=$lang]/main[@name='front']/@name}" text="Start"/>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:for-each select="$nav/sitemap/section[@name=$lang]/section">
+ <link rel="same" href="resolve:{main/@name}" text="{@name}"/>
+ </xsl:for-each>
+
+ <xsl:for-each select="$nav/sitemap/section[@name and @title]">
+ <xsl:variable name="this" select="$activenode/@name"/>
+ <link rel="lang" href="{concat('resolve:',@name,':',$this)}" text="{@title}"/>
+ </xsl:for-each>
+ </navigation>
+ </html>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xsl/i18n.xsl b/xsl/i18n.xsl
new file mode 100644
index 0000000..ccb8242
--- /dev/null
+++ b/xsl/i18n.xsl
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="xml"/>
+<xsl:template name="datestring-d">
+ <xsl:param name="lang"/>
+ <xsl:param name="date"/>
+ <xsl:if test="contains($date,'.')">
+ <xsl:variable name="dn" select="substring-after($date,'.')"/>
+ <xsl:call-template name="day-name">
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="number" select="$dn"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$lang='en'"><xsl:value-of select="','"/></xsl:if>
+ <xsl:value-of select="' '"/>
+ <xsl:call-template name="datestring">
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="date" select="$date"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="datestring">
+ <xsl:param name="lang"/>
+ <xsl:param name="date"/>
+ <xsl:variable name="year" select="substring($date,1,4)"/>
+ <xsl:variable name="month" select="substring($date,5,2)"/>
+ <xsl:variable name="day" select="substring($date,7,2)"/>
+ <xsl:if test="$lang='it'">
+ <xsl:value-of select="concat(number($day),' ')"/>
+ </xsl:if>
+ <xsl:call-template name="month-name">
+ <xsl:with-param name="number" select="$month"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ </xsl:call-template>
+ <xsl:if test="$lang='en'">
+ <xsl:value-of select="concat(' ',number($day))"/>
+ </xsl:if>
+ <xsl:value-of select="concat(' ',$year)"/>
+</xsl:template>
+
+<xsl:template name="month-name">
+ <xsl:param name="number"/>
+ <xsl:param name="lang"/>
+ <xsl:choose>
+ <xsl:when test="$lang = 'it'">
+ <xsl:choose>
+ <xsl:when test="$number = 1">Gennaio</xsl:when>
+ <xsl:when test="$number = 2">Febbraio</xsl:when>
+ <xsl:when test="$number = 3">Marzo</xsl:when>
+ <xsl:when test="$number = 4">Aprile</xsl:when>
+ <xsl:when test="$number = 5">Maggio</xsl:when>
+ <xsl:when test="$number = 6">Giugno</xsl:when>
+ <xsl:when test="$number = 7">Luglio</xsl:when>
+ <xsl:when test="$number = 8">Agosto</xsl:when>
+ <xsl:when test="$number = 9">Settembre</xsl:when>
+ <xsl:when test="$number =10">Ottobre</xsl:when>
+ <xsl:when test="$number =11">Novembre</xsl:when>
+ <xsl:when test="$number =12">Dicembre</xsl:when>
+ <xsl:otherwise>???</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$lang = 'en'">
+ <xsl:choose>
+ <xsl:when test="$number = 1">January</xsl:when>
+ <xsl:when test="$number = 2">February</xsl:when>
+ <xsl:when test="$number = 3">March</xsl:when>
+ <xsl:when test="$number = 4">April</xsl:when>
+ <xsl:when test="$number = 5">May</xsl:when>
+ <xsl:when test="$number = 6">June</xsl:when>
+ <xsl:when test="$number = 7">July</xsl:when>
+ <xsl:when test="$number = 8">August</xsl:when>
+ <xsl:when test="$number = 9">September</xsl:when>
+ <xsl:when test="$number =10">October</xsl:when>
+ <xsl:when test="$number =11">November</xsl:when>
+ <xsl:when test="$number =12">December</xsl:when>
+ <xsl:otherwise>???</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="day-name">
+ <xsl:param name="number"/>
+ <xsl:param name="lang"/>
+ <xsl:choose>
+ <xsl:when test="$lang = 'it'">
+ <xsl:choose>
+ <xsl:when test="$number = 0">Domenica</xsl:when>
+ <xsl:when test="$number = 1">Lunedi</xsl:when>
+ <xsl:when test="$number = 2">Martedi</xsl:when>
+ <xsl:when test="$number = 3">Mercoledi</xsl:when>
+ <xsl:when test="$number = 4">Giovedi</xsl:when>
+ <xsl:when test="$number = 5">Venerdi</xsl:when>
+ <xsl:when test="$number = 6">Sabato</xsl:when>
+ <xsl:when test="$number = 7">Domenica</xsl:when>
+ <xsl:otherwise>???</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$lang = 'en'">
+ <xsl:choose>
+ <xsl:when test="$number = 0">Sunday</xsl:when>
+ <xsl:when test="$number = 1">Monday</xsl:when>
+ <xsl:when test="$number = 2">Tuesday</xsl:when>
+ <xsl:when test="$number = 3">Wednesday</xsl:when>
+ <xsl:when test="$number = 4">Thursday</xsl:when>
+ <xsl:when test="$number = 5">Friday</xsl:when>
+ <xsl:when test="$number = 6">Saturday</xsl:when>
+ <xsl:when test="$number = 7">Sunday</xsl:when>
+ <xsl:otherwise>???</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xsl/identity.xsl b/xsl/identity.xsl
new file mode 100644
index 0000000..04a0bd4
--- /dev/null
+++ b/xsl/identity.xsl
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="xml"/>
+<xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xsl/langfilter.xsl b/xsl/langfilter.xsl
new file mode 100644
index 0000000..827b15f
--- /dev/null
+++ b/xsl/langfilter.xsl
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="xml"/>
+<xsl:param name="lang"/>
+
+<xsl:template match="/html">
+ <xsl:copy>
+ <xsl:attribute name="xml_lang"><xsl:value-of select="$lang"/></xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="*">
+ <xsl:choose>
+ <xsl:when test="lang($lang) or not(ancestor-or-self::*[@xml:lang])">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="@*|text()">
+ <xsl:copy/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xsl/layout.xsl b/xsl/layout.xsl
new file mode 100644
index 0000000..6b4b15f
--- /dev/null
+++ b/xsl/layout.xsl
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html [
+ <!ENTITY nbsp "&#160;">
+]>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="xml" indent="yes"/>
+
+<xsl:template match="/html">
+ <html>
+ <xsl:copy-of select="@*"/>
+ <head>
+ <xsl:copy-of select="head/node()"/>
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+ <link href="resolve:screen-s" title="Gianni" rel="stylesheet" type="text/css" media="screen"/>
+ <link href="resolve:print-s" title="Gianni" rel="stylesheet" type="text/css" media="print"/>
+ </head>
+ <body>
+ <table id="flowtable" cellpadding="0" cellspacing="0">
+ <col id="firstcol"/><col id="secondcol"/>
+ <tr><td id="orizzontale"><h1><xsl:value-of select="body/h1[1]"/></h1></td><td id="angolo">&nbsp;</td></tr>
+ <tr><td id="contenuto">
+ <xsl:copy-of select="body/*[position()>1]"/>
+ </td>
+ <td id="navbar">
+ <xsl:apply-templates select="navigation"/>
+ </td></tr>
+ </table>
+ </body></html>
+</xsl:template>
+
+<xsl:template match="navigation">
+ <xsl:apply-templates select="link[@rel='up' or @rel='same']"/>
+ <p><xsl:apply-templates select="link[@rel='lang']"/></p>
+</xsl:template>
+
+<xsl:template match="navigation/link[@rel='up']">
+ <p class="sep"><a href="{@href}"><xsl:value-of select="@text"/></a></p>
+</xsl:template>
+
+<xsl:template match="navigation/link[@rel='same']">
+ <p><a href="{@href}"><xsl:value-of select="@text"/></a></p>
+</xsl:template>
+
+<xsl:template match="navigation/link[@rel='lang']">
+ [<a href="{@href}"><xsl:value-of select="@text"/></a>]
+</xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/xsl/links.xsl b/xsl/links.xsl
new file mode 100644
index 0000000..f2d0bfb
--- /dev/null
+++ b/xsl/links.xsl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="xml"/>
+<xsl:include href="identity.xsl"/>
+
+<xsl:template match="body//links">
+ <dl>
+ <xsl:apply-templates/>
+ </dl>
+</xsl:template>
+
+<xsl:template match="body//links/link[@href!='']">
+ <dt><a><xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute>
+ <xsl:copy-of select="./name/node()"/></a>
+ </dt>
+ <dd xml:lang="it"><xsl:copy-of select="./it/node()"/></dd>
+ <dd xml:lang="en"><xsl:copy-of select="./en/node()"/></dd>
+</xsl:template>
+
+<xsl:template match="body//links/link[@href='']"/>
+
+</xsl:stylesheet>
diff --git a/xsl/news.xsl b/xsl/news.xsl
new file mode 100644
index 0000000..7d41a2b
--- /dev/null
+++ b/xsl/news.xsl
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="xml"/>
+<xsl:include href="identity.xsl"/>
+<xsl:include href="i18n.xsl"/>
+
+<xsl:variable name="lang" select="/html/@xml_lang"/>
+
+<xsl:template match="body">
+ <body>
+ <xsl:choose>
+ <xsl:when test="$lang = 'it'">
+ <h1>La storia di questo sito</h1>
+ </xsl:when>
+ <xsl:when test="$lang = 'en'">
+ <h1>Website history</h1>
+ </xsl:when>
+ </xsl:choose>
+ <dl>
+ <xsl:for-each select="item">
+ <xsl:sort select="date" data-type="number" order="descending"/>
+ <dt>
+ <xsl:call-template name="datestring">
+ <xsl:with-param name="lang" select="$lang"/>
+ <xsl:with-param name="date" select="date"/>
+ </xsl:call-template>
+ </dt>
+ <dd><xsl:apply-templates select="text"/></dd>
+ </xsl:for-each>
+ </dl>
+ </body>
+</xsl:template>
+
+<xsl:template match="text">
+ <xsl:copy-of select="./node()"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xsl/normal.xsl b/xsl/normal.xsl
new file mode 100644
index 0000000..75c9d6b
--- /dev/null
+++ b/xsl/normal.xsl
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:dyn="http://exslt.org/dynamic"
+ extension-element-prefixes="dyn"
+>
+<xsl:output method="xml"/>
+<xsl:include href="identity.xsl"/>
+
+<xsl:param name="sitemapuri"/>
+<xsl:variable name="nav" select="document($sitemapuri,document(''))"/>
+<xsl:param name="active"/>
+<xsl:variable name="activenode" select="dyn:evaluate(concat('$nav',$active))"/>
+
+<xsl:variable name="lang" select="/html/@xml_lang"/>
+
+<xsl:template match="/">
+ <html>
+ <xsl:copy-of select="html/@*"/>
+ <xsl:apply-templates select="/html/head"/>
+ <xsl:apply-templates select="/html/body"/>
+ <navigation>
+ <xsl:choose>
+ <xsl:when test="$lang='it'">
+ <link rel="up" href="resolve:{$nav/sitemap/section[@name=$lang]/main[@name='front']/@name}" text="Inizio"/>
+ </xsl:when>
+ <xsl:when test="$lang='en'">
+ <link rel="up" href="resolve:{$nav/sitemap/section[@name=$lang]/main[@name='front']/@name}" text="Start"/>
+ </xsl:when>
+ </xsl:choose>
+
+ <xsl:for-each select="$nav/sitemap/section[@name=$lang]/section">
+ <xsl:if test="main/@name != $activenode/@name">
+ <link rel="same" href="resolve:{main/@name}" text="{@name}"/>
+ </xsl:if>
+ </xsl:for-each>
+
+ <xsl:for-each select="$nav/sitemap/section[@name and @title]">
+ <xsl:variable name="this" select="$activenode/@name"/>
+ <link rel="lang" href="{concat('resolve:',@name,':',$this)}" text="{@title}"/>
+ </xsl:for-each>
+ </navigation>
+ </html>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xsl/racconto.xsl b/xsl/racconto.xsl
new file mode 100644
index 0000000..ebe87f5
--- /dev/null
+++ b/xsl/racconto.xsl
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="xml"/>
+<xsl:include href="identity.xsl"/>
+
+<xsl:template match="/">
+ <html>
+ <xsl:apply-templates select="/html/head"/>
+ <xsl:apply-templates select="/html/body"/>
+ <navigation>
+ <xsl:for-each select="/html/section/section">
+ <xsl:if test=".//homepage/@active or .//entry/@active or .//file/@active">
+ <link rel="same" href="{homepage/@src}" text="{@name}"/>
+ </xsl:if>
+ </xsl:for-each>
+ </navigation>
+ </html>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xsl/report.xsl b/xsl/report.xsl
new file mode 100644
index 0000000..5bb956c
--- /dev/null
+++ b/xsl/report.xsl
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="xml"/>
+ <xsl:include href="identity.xsl"/>
+ <xsl:include href="i18n.xsl"/>
+
+ <xsl:template match="/html/head">
+ <head>
+ <xsl:apply-templates/>
+ <link rel="stylesheet" type="text/css" href="resolve:report-s"/>
+ </head>
+ </xsl:template>
+
+ <xsl:template match="proj">
+ <div class="proj">
+ <h3><xsl:choose>
+ <xsl:when test=".//head">
+ <xsl:value-of select=".//head"/>
+ </xsl:when>
+ <xsl:when test="count(.//tit) &lt; 4">
+ <xsl:for-each select=".//tit">
+ <xsl:if test="position() &gt; 1">, </xsl:if><xsl:value-of select="."/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="./descendant::tit[position() &lt; 4]">
+ <xsl:if test="position() &gt; 1">, </xsl:if><xsl:value-of select="."/>
+ </xsl:for-each>
+ , ...
+ </xsl:otherwise>
+ </xsl:choose></h3>
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="tit">
+ "<xsl:apply-templates/>"
+ </xsl:template>
+
+ <xsl:template match="loc">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="giorno">
+ <div class="giorno">
+ <h2><xsl:value-of select="@data"/></h2>
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="nota">
+ <div class="nota">
+ <xsl:if test="titolo"><h3><xsl:apply-templates select="titolo"/></h3></xsl:if>
+ <xsl:apply-templates select="node()[name()!='titolo']"/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="callout">
+ <div class="callout">
+ <xsl:if test="titolo"><h3><xsl:apply-templates select="titolo"/></h3></xsl:if>
+ <xsl:apply-templates select="node()[name()!='titolo']"/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="finale">
+ <span style="font-size: x-small">(seleziona per leggere il finale)</span>
+ <span class="hide">
+ <xsl:apply-templates/>
+ </span>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/xsl/resolver.xsl b/xsl/resolver.xsl
new file mode 100644
index 0000000..87dc543
--- /dev/null
+++ b/xsl/resolver.xsl
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:dyn="http://exslt.org/dynamic"
+ extension-element-prefixes="dyn"
+>
+ <xsl:output method="html" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html40/strict.dtd" indent="yes"/>
+
+ <xsl:include href="identity.xsl"/>
+
+ <xsl:param name="sitemapuri"/>
+ <xsl:variable name="map" select="document($sitemapuri,document(''))"/>
+ <xsl:param name="active"/>
+ <xsl:variable name="activenode" select="dyn:evaluate(concat('$map',$active))"/>
+
+ <xsl:variable name="lang" select="/html/@xml_lang"/>
+
+ <!-- bisogna fare così, perché è un errore aggiungere attributi dopo i nodi figli, quindi bisogna forzare l'ordine. -->
+ <xsl:template match="*[@href|@src]">
+ <xsl:copy>
+ <xsl:apply-templates select="@*"/>
+ <xsl:apply-templates select="*|text()"/>
+ </xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="@href|@src">
+
+ <xsl:attribute name="{name()}">
+
+ <xsl:choose>
+ <xsl:when test="$lang and starts-with(string(),'resolve:')">
+ <xsl:variable name="sub" select="substring-after(string(),':')"/>
+ <xsl:choose>
+ <xsl:when test="contains($sub,':')">
+ <xsl:call-template name="resolve">
+ <xsl:with-param name="ref"><xsl:value-of select="concat('resolve:',substring-after($sub,':'))"/></xsl:with-param>
+ <xsl:with-param name="nav" select="$map/sitemap/section[@name=substring-before($sub,':')]"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="resolve">
+ <xsl:with-param name="ref"><xsl:value-of select="."/></xsl:with-param>
+ <xsl:with-param name="nav" select="$map/sitemap/section[@name=$lang]"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="resolve">
+ <xsl:with-param name="ref"><xsl:value-of select="."/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template name="getpath">
+ <xsl:param name="dest"/>
+ <xsl:choose>
+ <xsl:when test="count($dest|$map/sitemap)=1">
+ <xsl:value-of select="$dest/@baseURL"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="getpath"><xsl:with-param name="dest" select="$dest/parent::*"/></xsl:call-template><xsl:if test="$dest/@dest"><xsl:value-of select="concat('/',$dest/@dest)"/></xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="resolve">
+ <xsl:param name="ref"/>
+ <xsl:param name="nav" select="$map/sitemap"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($ref,'resolve:')">
+ <xsl:variable name="rif" select="substring-after($ref,':')"/>
+ <xsl:choose>
+ <xsl:when test="contains($rif,'#')">
+ <xsl:variable name="refname" select="substring-before($rif,'#')"/>
+ <xsl:variable name="fragment" select="substring-after($ref,'#')"/>
+ <xsl:choose>
+ <xsl:when test="$nav//*[@name=$refname]">
+ <xsl:call-template name="getpath">
+ <xsl:with-param name="dest" select="$nav//*[@name=$refname]"/>
+ </xsl:call-template>
+ <xsl:value-of select="concat('#',$fragment)"/>
+ </xsl:when>
+ <xsl:when test="$map/sitemap//*[@name=$refname]">
+ <xsl:call-template name="getpath">
+ <xsl:with-param name="dest" select="$map/sitemap//*[@name=$refname][1]"/>
+ </xsl:call-template>
+ <xsl:value-of select="concat('#',$fragment)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>WRONG REF:</xsl:text><xsl:value-of select="$ref"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$nav//*[@name=$rif]">
+ <xsl:call-template name="getpath">
+ <xsl:with-param name="dest" select="$nav//*[@name=$rif]"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$map/sitemap//*[@name=$rif]">
+ <xsl:call-template name="getpath">
+ <xsl:with-param name="dest" select="$map/sitemap//*[@name=$rif][1]"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>WRONG REF:</xsl:text><xsl:value-of select="$ref"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$ref"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/xsl/thumbed.xsl b/xsl/thumbed.xsl
new file mode 100644
index 0000000..b5a7169
--- /dev/null
+++ b/xsl/thumbed.xsl
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:dyn="http://exslt.org/dynamic"
+ extension-element-prefixes="dyn"
+ >
+ <xsl:output method="xml"/>
+ <xsl:include href="identity.xsl"/>
+
+ <xsl:template match="head">
+ <head>
+ <xsl:apply-templates/>
+ <link rel="stylesheet" type="text/css" href="resolve:thumbs-s"/>
+ </head>
+ </xsl:template>
+
+ <xsl:template match="img">
+ <div class="picture">
+
+ <xsl:choose>
+ <xsl:when test="@thumb">
+ <a href="{@src}"><img src="{@thumb}"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img src="{@src}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@caption"><br/><p><xsl:value-of select="@caption"/></p></xsl:if>
+ </div>
+ </xsl:template>
+
+</xsl:stylesheet>