diff options
Diffstat (limited to 'xsl')
-rw-r--r-- | xsl/active.xsl | 23 | ||||
-rw-r--r-- | xsl/anime-old.xsl | 76 | ||||
-rw-r--r-- | xsl/anime.xsl | 131 | ||||
-rw-r--r-- | xsl/deep.xsl | 35 | ||||
-rw-r--r-- | xsl/diary.xsl | 74 | ||||
-rw-r--r-- | xsl/disclaimer.xsl | 43 | ||||
-rw-r--r-- | xsl/front.xsl | 43 | ||||
-rw-r--r-- | xsl/i18n.xsl | 115 | ||||
-rw-r--r-- | xsl/identity.xsl | 10 | ||||
-rw-r--r-- | xsl/langfilter.xsl | 28 | ||||
-rw-r--r-- | xsl/layout.xsl | 48 | ||||
-rw-r--r-- | xsl/links.xsl | 22 | ||||
-rw-r--r-- | xsl/news.xsl | 38 | ||||
-rw-r--r-- | xsl/normal.xsl | 45 | ||||
-rw-r--r-- | xsl/racconto.xsl | 20 | ||||
-rw-r--r-- | xsl/report.xsl | 72 | ||||
-rw-r--r-- | xsl/resolver.xsl | 122 | ||||
-rw-r--r-- | xsl/thumbed.xsl | 31 |
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 " "> +]> +<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"> </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) < 4"> + <xsl:for-each select=".//tit"> + <xsl:if test="position() > 1">, </xsl:if><xsl:value-of select="."/> + </xsl:for-each> + </xsl:when> + <xsl:otherwise> + <xsl:for-each select="./descendant::tit[position() < 4]"> + <xsl:if test="position() > 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> |