aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2009-08-18 13:24:38 +0200
committerdakkar <dakkar@thenautilus.net>2009-08-18 13:24:38 +0200
commit67feec7f67b5de0ebc0c028f18172e348104cd65 (patch)
treedb8574f48fa19586f51d07d0108520eeb92625ea
downloadsitemake-master.tar.gz
sitemake-master.tar.bz2
sitemake-master.zip
import from the old websiteHEADmaster
-rw-r--r--Makefile.bootstrap3
-rw-r--r--compile.xsl89
-rw-r--r--sitemap.dtd41
-rw-r--r--sitemap.xml452
-rw-r--r--x2s.xsl95
-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
23 files changed, 1656 insertions, 0 deletions
diff --git a/Makefile.bootstrap b/Makefile.bootstrap
new file mode 100644
index 0000000..a5aa181
--- /dev/null
+++ b/Makefile.bootstrap
@@ -0,0 +1,3 @@
+
+Makefile: sitemap.xml compile.xsl
+ xsltproc -o Makefile compile.xsl sitemap.xml
diff --git a/compile.xsl b/compile.xsl
new file mode 100644
index 0000000..656ee94
--- /dev/null
+++ b/compile.xsl
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="text"/>
+
+ <xsl:template match="/sitemap">
+# Makefile generato automaticamente via XSLT
+
+all: Makefile <xsl:for-each select=".//main|.//page" xml:space="preserve"><xsl:call-template name="abs"><xsl:with-param name="attr" select="'dest'"/></xsl:call-template> </xsl:for-each>
+
+Makefile: sitemap.xml compile.xsl
+ xsltproc -o Makefile compile.xsl sitemap.xml
+
+<xsl:for-each select="type">
+<xsl:apply-templates select="."/>
+</xsl:for-each>
+
+<xsl:for-each select=".//main|.//page" xml:space="preserve">
+<xsl:apply-templates select="."/>
+</xsl:for-each>
+</xsl:template>
+
+ <xsl:template match="main|page">
+<xsl:call-template name="abs"><xsl:with-param name="attr" select="'dest'"/></xsl:call-template> : _ACTIVE_ELEM='<xsl:call-template name="xpathfor"/>'
+<xsl:call-template name="abs"><xsl:with-param name="attr" select="'dest'"/></xsl:call-template> : <xsl:call-template name="abs"><xsl:with-param name="attr" select="'src'"/></xsl:call-template> $(_<xsl:value-of select="@type"/>_PREQ)
+ $(_<xsl:value-of select="@type"/>_CMD)
+</xsl:template>
+
+<!-- chiamato con ctx-node un elemento main|page, restituisce un espressione XPath che lo individua -->
+ <xsl:template name="xpathfor">
+ <xsl:param name="cnode" select="."/>
+ <xsl:choose>
+ <xsl:when test="$cnode = /sitemap">/sitemap</xsl:when>
+ <xsl:otherwise><xsl:call-template name="xpathfor"><xsl:with-param name="cnode" select="$cnode/parent::node()"/></xsl:call-template>/<xsl:value-of select="name($cnode)"/>[@name="<xsl:value-of select="$cnode/@name"/>"]</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+<!-- chiamato con ctx-node un elemento main|page, deve restituire il percorso completo della pagina relativo alla sitemap, ottenuto concatenando gli attributi @src o @dest degli elementi padre -->
+ <xsl:template name="abs">
+ <xsl:param name="cnode" select="."/>
+ <xsl:param name="attr"/>
+ <xsl:choose>
+ <xsl:when test="$cnode = /sitemap">
+ <xsl:value-of select="$cnode/attribute::*[name()=$attr]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="prev"><xsl:call-template name="abs"><xsl:with-param name="cnode" select="$cnode/parent::node()"/><xsl:with-param name="attr" select="$attr"/></xsl:call-template></xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$cnode/attribute::*[name()=$attr]">
+ <xsl:value-of select="$prev"/>/<xsl:value-of select="$cnode/attribute::*[name()=$attr]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$prev"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+<!-- chiamato con ctx-node pari ad un elemento type/xslt, deve ritornare il percorso completo della sitemap relativo allo stylesheet -->
+ <xsl:template name="rel">
+ <xsl:param name="href" select="@href"/>
+ <xsl:choose>
+ <xsl:when test="contains($href,'/')">../<xsl:call-template name="rel"><xsl:with-param name="href" select="substring-after($href,'/')"/></xsl:call-template></xsl:when>
+ <xsl:otherwise>sitemap.xml</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="params">
+ <xsl:for-each select="param" xml:space="preserve">--stringparam <xsl:value-of select="@name"/> <xsl:value-of select="text()"/> </xsl:for-each>
+ <xsl:text xml:space="preserve">--stringparam sitemapuri </xsl:text><xsl:call-template name="rel"/>
+ <xsl:text xml:space="preserve"> --stringparam active $(_ACTIVE_ELEM)</xsl:text> <!-- questo sarà un'espressione XPath che indica il nodo relativo alla pagina che stiamo elaborando. xsltproc interpreta i parametri con ctx-node pari alla radice del file xml da trasformare -->
+ </xsl:template>
+
+ <xsl:template match="type[child::xslt]" xml:space="preserve">
+_<xsl:value-of select="@name"/>_PREQ = <xsl:for-each select="xslt" xml:space="preserve"><xsl:value-of select="@href"/> </xsl:for-each>
+_<xsl:value-of select="@name"/>_CMD = mkdir -p `dirname $@`;<xsl:for-each select="xslt"><xsl:choose><xsl:when test="position()=1">xsltproc <xsl:call-template name="params"/> <xsl:value-of select="@href"/> $&lt;</xsl:when><xsl:otherwise>|xsltproc <xsl:call-template name="params"/> <xsl:value-of select="@href"/> -</xsl:otherwise></xsl:choose></xsl:for-each> &gt; $@
+
+</xsl:template>
+
+ <xsl:template match="type[child::command]">
+_<xsl:value-of select="@name"/>_PREQ =
+define _<xsl:value-of select="@name"/>_CMD
+<xsl:for-each select="command">
+<xsl:value-of select="."/>
+</xsl:for-each>
+endef
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/sitemap.dtd b/sitemap.dtd
new file mode 100644
index 0000000..a08dc8e
--- /dev/null
+++ b/sitemap.dtd
@@ -0,0 +1,41 @@
+<!ELEMENT sitemap (section+,type+)>
+<!ATTLIST sitemap
+ baseURL CDATA "/"
+ src CDATA #IMPLIED
+ dest CDATA #IMPLIED>
+
+<!ELEMENT section (main,(section|page)*)>
+<!ATTLIST section
+ name CDATA #REQUIRED
+ src CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ type IDREF #IMPLIED>
+
+<!ELEMENT main EMPTY>
+<!ATTLIST main
+ name CDATA #REQUIRED
+ src CDATA #REQUIRED
+ dest CDATA #REQUIRED
+ type IDREF #IMPLIED>
+
+<!ELEMENT page EMPTY>
+<!ATTLIST page
+ name CDATA #REQUIRED
+ visible (yes|no) "yes"
+ src CDATA #REQUIRED
+ dest CDATA #REQUIRED
+ type IDREF #IMPLIED>
+
+<!ELEMENT type (command+|xslt+)>
+<!ATTLIST type
+ name ID #REQUIRED>
+
+<!ELEMENT command (#PCDATA)>
+
+<!ELEMENT xslt (param*)>
+<!ATTLIST xslt
+ href CDATA #REQUIRED>
+
+<!ELEMENT param (#PCDATA)>
+<!ATTLIST param
+ name CDATA #REQUIRED>
diff --git a/sitemap.xml b/sitemap.xml
new file mode 100644
index 0000000..aed2e83
--- /dev/null
+++ b/sitemap.xml
@@ -0,0 +1,452 @@
+<?xml version="1.0"?>
+<sitemap src="source" dest="output">
+ <section name="it" title="Italiano">
+ <main name="front" src="index.xml" dest="index.it.html" type="frontpage-it"/>
+ <page name="news" src="news.xml" dest="news.it.html" type="news-it"/>
+ <section name="Curriculum">
+ <main name="cv" src="cv.xml" dest="cv.it.html" type="normal-it"/>
+ </section>
+ <section name="Software">
+ <main name="soft" src="software.xml" dest="software.it.html" type="normal-it"/>
+ <page name="kanatrain" src="kanatrain.xml" dest="kanatrain.it.html" type="deep-it"/>
+ <page name="sitemethod" src="sitemake.xml" dest="sitemake.it.html" type="deep-it"/>
+ <page name="qtopia-dev" src="qtopia-dev.xml" dest="qtopia-dev.it.html" type="deep-it"/>
+ <section name="Keyboard Layout" src="kblayout" dest="kblayout">
+ <main name="kbl" src="index.xml" dest="index.it.html" type="deep-it"/>
+ </section>
+ </section>
+ <section name="Hardware" src="HW" dest="HW">
+ <main name="hw" src="hardware.xml" dest="hardware.it.html" type="normal-it"/>
+ <page name="newton-7110" src="newton-7110.xml" dest="newton-7110.it.html" type="deep-it"/>
+ <page name="zaurus-hw" src="zaurus.xml" dest="zaurus.it.html" type="deep-it"/>
+ <page name="newt-setup" src="newt-setup.xml" dest="newt-setup.it.html" type="deep-it"/>
+ </section>
+ <section name="Racconti" src="racconti" dest="racconti">
+ <main name="racc" src="racconti.xml" dest="racconti.it.html" type="normal-it"/>
+ <page name="amd" src="a_mala_debellata.xml" dest="a_mala_debellata.it.html" type="racconto"/>
+ <page name="cim" src="contro_i_materialisti.xml" dest="contro_i_materialisti.it.html" type="racconto"/>
+ </section>
+ <section name="Club di Animazione">
+ <main name="anime" src="anime.xml" dest="anime.it.html" type="anime-it"/>
+ </section>
+ <section name="Modelli">
+ <main name="modelli" src="modelli/index.xml" dest="modelli/index.it.html" type="normal-it"/>
+ <page name="getter" src="modelli/getter.xml" dest="modelli/getter.it.html" type="thumbed-it"/>
+ </section>
+ <section name="Viaggi">
+ <main name="viaggi" src="viaggi.xml" dest="viaggi.it.html" type="normal-it"/>
+ <page name="daily" src="AU/daily-index.xml" dest="AU/daily-index.it.html" type="deep-it"/>
+ <page name="gbdaily" src="GB/daily.xml" dest="GB/daily.it.html" type="report-it"/>
+ <page name="fff2003" src="fff2003.xml" dest="fff2003.it.html" type="report-it"/>
+ </section>
+ <section name="Links">
+ <main name="links" src="links.xml" dest="links.it.html" type="links-it"/>
+ </section>
+ </section>
+ <section name="en" title="English">
+ <main name="front" src="index.xml" dest="index.en.html" type="frontpage-en"/>
+ <page name="news" src="news.xml" dest="news.en.html" type="news-en"/>
+ <section name="Curriculum">
+ <main name="cv" src="cv.xml" dest="cv.en.html" type="normal-en"/>
+ </section>
+ <section name="Software">
+ <main name="soft" src="software.xml" dest="software.en.html" type="normal-en"/>
+ <page name="kanatrain" src="kanatrain.xml" dest="kanatrain.en.html" type="deep-en"/>
+ <page name="sitemethod" src="sitemake.xml" dest="sitemake.en.html" type="deep-en"/>
+ <page name="qtopia-dev" src="qtopia-dev.xml" dest="qtopia-dev.en.html" type="deep-en"/>
+ <section name="Keyboard Layout" src="kblayout" dest="kblayout">
+ <main name="kbl" src="index.xml" dest="index.en.html" type="deep-en"/>
+ </section>
+ </section>
+ <section name="Hardware" src="HW" dest="HW">
+ <main name="hw" src="hardware.xml" dest="hardware.en.html" type="normal-en"/>
+ <page name="newton-7110" src="newton-7110.xml" dest="newton-7110.en.html" type="deep-en"/>
+ <page name="zaurus-hw" src="zaurus.xml" dest="zaurus.en.html" type="deep-en"/>
+ <page name="newt-setup" src="newt-setup.xml" dest="newt-setup.en.html" type="deep-en"/>
+ </section>
+ <section name="Anime Club">
+ <main name="anime" src="anime.xml" dest="anime.en.html" type="anime-en"/>
+ </section>
+ <section name="Models">
+ <main name="modelli" src="modelli/index.xml" dest="modelli/index.en.html" type="normal-en"/>
+ <page name="getter" src="modelli/getter.xml" dest="modelli/getter.en.html" type="thumbed-en"/>
+ </section>
+ <section name="Travels">
+ <main name="viaggi" src="viaggi.xml" dest="viaggi.en.html" type="normal-en"/>
+ <page name="daily" src="AU/daily-index.xml" dest="AU/daily-index.en.html" type="deep-en"/>
+ </section>
+ <section name="Links">
+ <main name="links" src="links.xml" dest="links.en.html" type="links-en"/>
+ </section>
+ </section>
+ <section name="AU" src="AU" dest="AU">
+ <page name="bh_35" src="brokenhill.xml" dest="brokenhill.html" type="diary-it"/>
+ <page name="jap38" src="japanime.xml" dest="japanime.html" type="diary-it"/>
+ <page name="day1" src="day1.xml" dest="day1.html" type="diary-en"/>
+ <page name="day2" src="day2.xml" dest="day2.html" type="diary-en"/>
+ <page name="day3" src="day3.xml" dest="day3.html" type="diary-en"/>
+ <page name="day4" src="day4.xml" dest="day4.html" type="diary-en"/>
+ <page name="day5" src="day5.xml" dest="day5.html" type="diary-en"/>
+ <page name="day6" src="day6.xml" dest="day6.html" type="diary-en"/>
+ <page name="day7" src="day7.xml" dest="day7.html" type="diary-en"/>
+ <page name="day8" src="day8.xml" dest="day8.html" type="diary-en"/>
+ <page name="day9" src="day9.xml" dest="day9.html" type="diary-en"/>
+ <page name="day10" src="day10.xml" dest="day10.html" type="diary-en"/>
+ <page name="day11" src="day11.xml" dest="day11.html" type="diary-en"/>
+ <page name="day12" src="day12.xml" dest="day12.html" type="diary-en"/>
+ <page name="day13" src="day13.xml" dest="day13.html" type="diary-en"/>
+ <page name="day14" src="day14.xml" dest="day14.html" type="diary-en"/>
+ <page name="day15" src="day15.xml" dest="day15.html" type="diary-en"/>
+ <page name="day16" src="day16.xml" dest="day16.html" type="diary-en"/>
+ <page name="day17" src="day17.xml" dest="day17.html" type="diary-en"/>
+ <page name="day18" src="day18.xml" dest="day18.html" type="diary-en"/>
+ <page name="day19" src="day19.xml" dest="day19.html" type="diary-en"/>
+ <page name="day20" src="day20.xml" dest="day20.html" type="diary-en"/>
+ <page name="day21" src="day21.xml" dest="day21.html" type="diary-en"/>
+ <page name="day22" src="day22.xml" dest="day22.html" type="diary-en"/>
+ <page name="day23" src="day23.xml" dest="day23.html" type="diary-en"/>
+ <page name="day24" src="day24.xml" dest="day24.html" type="diary-en"/>
+ <page name="day25" src="day25.xml" dest="day25.html" type="diary-en"/>
+ <page name="day26" src="day26.xml" dest="day26.html" type="diary-en"/>
+ <page name="day27" src="day27.xml" dest="day27.html" type="diary-en"/>
+ <page name="day28" src="day28.xml" dest="day28.html" type="diary-en"/>
+ <page name="day29" src="day29.xml" dest="day29.html" type="diary-en"/>
+ <page name="day30" src="day30.xml" dest="day30.html" type="diary-en"/>
+ <page name="day31" src="day31.xml" dest="day31.html" type="diary-en"/>
+ <page name="day32" src="day32.xml" dest="day32.html" type="diary-en"/>
+ <page name="day33" src="day33.xml" dest="day33.html" type="diary-en"/>
+ <page name="day34" src="day34.xml" dest="day34.html" type="diary-en"/>
+ <page name="day35" src="day35.xml" dest="day35.html" type="diary-en"/>
+ <page name="day36" src="day36.xml" dest="day36.html" type="diary-en"/>
+ <page name="day37" src="day37.xml" dest="day37.html" type="diary-en"/>
+ <page name="day38" src="day38.xml" dest="day38.html" type="diary-en"/>
+ <page name="day39" src="day39.xml" dest="day39.html" type="diary-en"/>
+ <page name="day40" src="day40.xml" dest="day40.html" type="diary-en"/>
+ <page name="day41" src="day41.xml" dest="day41.html" type="diary-en"/>
+ <page name="day42" src="day42.xml" dest="day42.html" type="diary-en"/>
+ <page name="day43" src="day43.xml" dest="day43.html" type="diary-en"/>
+ <page name="day44" src="day44.xml" dest="day44.html" type="diary-en"/>
+ <page name="day45" src="day45.xml" dest="day45.html" type="diary-en"/>
+ <page name="day46" src="day46.xml" dest="day46.html" type="diary-en"/>
+ </section>
+ <section name="" src="legal" dest="legal">
+ <page name="GPL" src="GPL.txt" dest="GPL.txt" type="copy" visible="no"/>
+ </section>
+ <section name="src" src="src" dest="src">
+ <page name="freq" src="freq.pl" dest="freq.pl" type="copy" visible="no"/>
+ <page name="freqdump" src="freqdump.pl" dest="freqdump.pl" type="copy" visible="no"/>
+ <page name="opt" src="optkeyb.pl" dest="optkeyb.pl" type="copy" visible="no"/>
+ <page name="kanatrain.pl" src="kana-train.pl" dest="kana-train.pl" type="copy" visible="no"/>
+ <section name="patches" src="patches" dest="patches">
+ <page name="ijb-p" src="ijb20-21.patch" dest="ijb20-21.patch" type="copy" visible="no"/>
+ <page name="xosv-p" src="xosview-1.7.1-lm-patch" dest="xosview-1.7.1-lm-patch" type="copy" visible="no"/>
+ </section>
+ </section>
+ <page name="site-source" src="" dest="src/site-source-make.tar.gz" type="sitesource" visible="no"/>
+ <section name="css" src="css" dest="css">
+ <page name="screen-s" src="cecca-screen.css" dest="cecca-screen.css" type="copy" visible="no"/>
+ <page name="print-s" src="cecca-print.css" dest="cecca-print.css" type="copy" visible="no"/>
+ <page name="cv-s" src="cecca-cv.css" dest="cecca-cv.css" type="copy" visible="no"/>
+ <page name="carte-s" src="cecca-carte.css" dest="cecca-carte.css" type="copy" visible="no"/>
+ <page name="calendario-s" src="cecca-calendario.css" dest="cecca-calendario.css" type="copy" visible="no"/>
+ <page name="telefono-s" src="telefono.css" dest="telefono.css" type="copy" visible="no"/>
+ <page name="thumbs-s" src="thumbs.css" dest="thumbs.css" type="copy" visible="no"/>
+ <page name="report-s" src="report.css" dest="report.css" type="copy" visible="no"/>
+ </section>
+ <section name="img" src="images" dest="images">
+ <page name="" src="angolo.png" dest="angolo.png" type="copy" visible="no"/>
+ <page name="" src="orizzontale.png" dest="orizzontale.png" type="copy" visible="no"/>
+ <page name="" src="verticale.png" dest="verticale.png" type="copy" visible="no"/>
+ <page name="inet-setup" src="inet-setup.png" dest="inet-setup.png" type="copy" visible="no"/>
+ <page name="modem-setup-1" src="modem-setup1.png" dest="modem-setup1.png" type="copy" visible="no"/>
+ <page name="modem-setup-2" src="modem-setup2.png" dest="modem-setup2.png" type="copy" visible="no"/>
+ <page name="modem-setup-3" src="modem-setup3.png" dest="modem-setup3.png" type="copy" visible="no"/>
+ <page name="modem-setup-4" src="modem-setup4.png" dest="modem-setup4.png" type="copy" visible="no"/>
+ <page name="minicom-at" src="minicom-at.png" dest="minicom-at.png" type="copy" visible="no"/>
+ <page name="pt100-at" src="pt100-at.png" dest="pt100-at.png" type="copy" visible="no"/>
+ <page name="rs232" src="rs232-dsub9.gif" dest="rs232-dsub9.gif" type="copy" visible="no"/>
+ <page name="rs422" src="rs422-mdin8.gif" dest="rs422-mdin8.gif" type="copy" visible="no"/>
+ <section name="" src="manifesti" dest="manifesti">
+ <page name="jinroh-manif" src="jinroh.png" dest="jinroh.png" type="copy" visible="no"/>
+ <page name="yamada-manif" src="yamada-kun.jpg" dest="yamada-kun.jpg" type="copy" visible="no"/>
+ <page name="slayers-manif" src="slayers.jpg" dest="slayers.jpg" type="copy" visible="no"/>
+ <page name="porco-rosso-manif" src="porco-rosso.jpg" dest="porco-rosso.jpg" type="copy" visible="no"/>
+ <page name="flcl-manif" src="flcl.jpg" dest="flcl.jpg" type="copy" visible="no"/>
+ <page name="cowboy-bebop-manif" src="cowboy-bebop.jpg" dest="cowboy-bebop.jpg" type="copy" visible="no"/>
+ </section>
+ <section name="" src="AU" dest="AU">
+ <page name="china-bbq" src="china_bbq.jpg" dest="china_bbq.jpg" type="copy" visible="no"/>
+ <page name="china-group" src="china_group.jpg" dest="china_group.jpg" type="copy" visible="no"/>
+ <page name="woronora-pan" src="woronora_pan.jpg" dest="woronora_pan.jpg" type="copy" visible="no"/>
+ <page name="china-bbq-t" src="china_bbq.jpg" dest="china_bbq-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="china-group-t" src="china_group.jpg" dest="china_group-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="woronora-pan-t" src="woronora_pan.jpg" dest="woronora_pan-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="canguro-1" src="canguro_1.jpg" dest="canguro_1.jpg" type="copy" visible="no"/>
+ <page name="canguro-2" src="canguro_2.jpg" dest="canguro_2.jpg" type="copy" visible="no"/>
+ <page name="canguro-3" src="canguro_3.jpg" dest="canguro_3.jpg" type="copy" visible="no"/>
+ <page name="emu" src="emu_1.jpg" dest="emu_1.jpg" type="copy" visible="no"/>
+ <page name="ostrich" src="ostrich_1.jpg" dest="ostrich_1.jpg" type="copy" visible="no"/>
+ <page name="koala-1" src="koala_1.jpg" dest="koala_1.jpg" type="copy" visible="no"/>
+ <page name="koala-2" src="koala_2.jpg" dest="koala_2.jpg" type="copy" visible="no"/>
+ <page name="canguro-1-t" src="canguro_1.jpg" dest="canguro_1-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="canguro-2-t" src="canguro_2.jpg" dest="canguro_2-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="canguro-3-t" src="canguro_3.jpg" dest="canguro_3-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="emu-t" src="emu_1.jpg" dest="emu_1-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="ostrich-t" src="ostrich_1.jpg" dest="ostrich_1-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="koala-1-t" src="koala_1.jpg" dest="koala_1-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="koala-2-t" src="koala_2.jpg" dest="koala_2-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="shore" src="shore_1.jpg" dest="shore_1.jpg" type="copy" visible="no"/>
+ <page name="shore-t" src="shore_1.jpg" dest="shore_1-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="parrots" src="parrots.jpg" dest="parrots.jpg" type="copy" visible="no"/>
+ <page name="BH-clouds" src="BH_clouds.jpg" dest="BH_clouds.jpg" type="copy" visible="no"/>
+ <page name="BH-ld-1" src="BH_ld_1.jpg" dest="BH_ld_1.jpg" type="copy" visible="no"/>
+ <page name="BH-ld-2" src="BH_ld_2.jpg" dest="BH_ld_2.jpg" type="copy" visible="no"/>
+ <page name="BH-lizard" src="BH_lizard.jpg" dest="BH_lizard.jpg" type="copy" visible="no"/>
+ <page name="BH-machinery" src="BH_machinery.jpg" dest="BH_machinery.jpg" type="copy" visible="no"/>
+ <page name="BH-pan" src="BH_pan_1.jpg" dest="BH_pan_1.jpg" type="copy" visible="no"/>
+ <page name="BH-picnic" src="BH_picnic.jpg" dest="BH_picnic.jpg" type="copy" visible="no"/>
+ <page name="BH-sfx" src="BH_sfx.jpg" dest="BH_sfx.jpg" type="copy" visible="no"/>
+ <page name="BH-stone" src="BH_stone.jpg" dest="BH_stone.jpg" type="copy" visible="no"/>
+ <page name="BH-veg-1" src="BH_veg_1.jpg" dest="BH_veg_1.jpg" type="copy" visible="no"/>
+ <page name="BH-veg-2" src="BH_veg_2.jpg" dest="BH_veg_2.jpg" type="copy" visible="no"/>
+ <page name="BH-clouds-t" src="BH_clouds.jpg" dest="BH_clouds-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="BH-ld-1-t" src="BH_ld_1.jpg" dest="BH_ld_1-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="BH-ld-2-t" src="BH_ld_2.jpg" dest="BH_ld_2-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="BH-lizard-t" src="BH_lizard.jpg" dest="BH_lizard-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="BH-machinery-t" src="BH_machinery.jpg" dest="BH_machinery-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="BH-pan-t" src="BH_pan_1.jpg" dest="BH_pan_1-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="BH-picnic-t" src="BH_picnic.jpg" dest="BH_picnic-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="BH-sfx-t" src="BH_sfx.jpg" dest="BH_sfx-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="BH-stone-t" src="BH_stone.jpg" dest="BH_stone-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="BH-veg-1-t" src="BH_veg_1.jpg" dest="BH_veg_1-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="BH-veg-2-t" src="BH_veg_2.jpg" dest="BH_veg_2-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="opera-house" src="opera_house.jpg" dest="opera_house.jpg" type="copy" visible="no"/>
+ <page name="opera-house-t" src="opera_house.jpg" dest="opera_house-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="BM-fall-1" src="BM_fall_1.jpg" dest="BM_fall_1.jpg" type="copy" visible="no"/>
+ <page name="BM-fall-2" src="BM_fall_2.jpg" dest="BM_fall_2.jpg" type="copy" visible="no"/>
+ <page name="BM-fall-3" src="BM_fall_3.jpg" dest="BM_fall_3.jpg" type="copy" visible="no"/>
+ <page name="three-sis" src="three_sis.jpg" dest="three_sis.jpg" type="copy" visible="no"/>
+ <page name="BM-fall-1-t" src="BM_fall_1.jpg" dest="BM_fall_1-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="BM-fall-2-t" src="BM_fall_2.jpg" dest="BM_fall_2-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="BM-fall-3-t" src="BM_fall_3.jpg" dest="BM_fall_3-thumb.jpg" type="thumbnail" visible="no"/>
+ <page name="three-sis-t" src="three_sis.jpg" dest="three_sis-thumb.jpg" type="thumbnail" visible="no"/>
+ </section>
+ <section name="" src="modelli" dest="modelli">
+ <page name="eagle-left" src="eagle-left.jpg" dest="eagle-left.jpg" type="copy" visible="no"/>
+ <page name="eagle-right" src="eagle-right.jpg" dest="eagle-right.jpg" type="copy" visible="no"/>
+ <page name="eagle-trans1" src="eagle-trans1.jpg" dest="eagle-trans1.jpg" type="copy" visible="no"/>
+ <page name="eagle-trans2" src="eagle-trans2.jpg" dest="eagle-trans2.jpg" type="copy" visible="no"/>
+ <page name="eagle-trans3" src="eagle-trans3.jpg" dest="eagle-trans3.jpg" type="copy" visible="no"/>
+ <page name="jaguar-left" src="jaguar-left.jpg" dest="jaguar-left.jpg" type="copy" visible="no"/>
+ <page name="jaguar-right" src="jaguar-right.jpg" dest="jaguar-right.jpg" type="copy" visible="no"/>
+ <page name="jaguar-trans1" src="jaguar-trans1.jpg" dest="jaguar-trans1.jpg" type="copy" visible="no"/>
+ <page name="jaguar-trans2" src="jaguar-trans2.jpg" dest="jaguar-trans2.jpg" type="copy" visible="no"/>
+ <page name="jaguar-trans3" src="jaguar-trans3.jpg" dest="jaguar-trans3.jpg" type="copy" visible="no"/>
+ <page name="bear-left" src="bear-left.jpg" dest="bear-left.jpg" type="copy" visible="no"/>
+ <page name="bear-right" src="bear-right.jpg" dest="bear-right.jpg" type="copy" visible="no"/>
+ <page name="bear-trans1" src="bear-trans1.jpg" dest="bear-trans1.jpg" type="copy" visible="no"/>
+ <page name="bear-trans2" src="bear-trans2.jpg" dest="bear-trans2.jpg" type="copy" visible="no"/>
+ <page name="bear-trans3" src="bear-trans3.jpg" dest="bear-trans3.jpg" type="copy" visible="no"/>
+ <page name="join1" src="join1.jpg" dest="join1.jpg" type="copy" visible="no"/>
+ <page name="join2" src="join2.jpg" dest="join2.jpg" type="copy" visible="no"/>
+ <page name="cape" src="cape.jpg" dest="cape.jpg" type="copy" visible="no"/>
+ <page name="tomahawks" src="tomahawks.jpg" dest="tomahawks.jpg" type="copy" visible="no"/>
+ <page name="eagle-left-t" src="eagle-left.jpg" dest="eagle-left-t.jpg" type="thumbnail" visible="no"/>
+ <page name="eagle-right-t" src="eagle-right.jpg" dest="eagle-right-t.jpg" type="thumbnail" visible="no"/>
+ <page name="eagle-trans1-t" src="eagle-trans1.jpg" dest="eagle-trans1-t.jpg" type="thumbnail" visible="no"/>
+ <page name="eagle-trans2-t" src="eagle-trans2.jpg" dest="eagle-trans2-t.jpg" type="thumbnail" visible="no"/>
+ <page name="eagle-trans3-t" src="eagle-trans3.jpg" dest="eagle-trans3-t.jpg" type="thumbnail" visible="no"/>
+ <page name="jaguar-left-t" src="jaguar-left.jpg" dest="jaguar-left-t.jpg" type="thumbnail" visible="no"/>
+ <page name="jaguar-right-t" src="jaguar-right.jpg" dest="jaguar-right-t.jpg" type="thumbnail" visible="no"/>
+ <page name="jaguar-trans1-t" src="jaguar-trans1.jpg" dest="jaguar-trans1-t.jpg" type="thumbnail" visible="no"/>
+ <page name="jaguar-trans2-t" src="jaguar-trans2.jpg" dest="jaguar-trans2-t.jpg" type="thumbnail" visible="no"/>
+ <page name="jaguar-trans3-t" src="jaguar-trans3.jpg" dest="jaguar-trans3-t.jpg" type="thumbnail" visible="no"/>
+ <page name="bear-left-t" src="bear-left.jpg" dest="bear-left-t.jpg" type="thumbnail" visible="no"/>
+ <page name="bear-right-t" src="bear-right.jpg" dest="bear-right-t.jpg" type="thumbnail" visible="no"/>
+ <page name="bear-trans1-t" src="bear-trans1.jpg" dest="bear-trans1-t.jpg" type="thumbnail" visible="no"/>
+ <page name="bear-trans2-t" src="bear-trans2.jpg" dest="bear-trans2-t.jpg" type="thumbnail" visible="no"/>
+ <page name="bear-trans3-t" src="bear-trans3.jpg" dest="bear-trans3-t.jpg" type="thumbnail" visible="no"/>
+ <page name="join1-t" src="join1.jpg" dest="join1-t.jpg" type="thumbnail" visible="no"/>
+ <page name="join2-t" src="join2.jpg" dest="join2-t.jpg" type="thumbnail" visible="no"/>
+ <page name="cape-t" src="cape.jpg" dest="cape-t.jpg" type="thumbnail" visible="no"/>
+ <page name="tomahawks-t" src="tomahawks.jpg" dest="tomahawks-t.jpg" type="thumbnail" visible="no"/>
+ </section>
+ </section>
+ <type name="copy">
+ <command>mkdir -p `dirname $@`;cp $^ $@</command>
+ </type>
+ <type name="normal-it">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">it</param>
+ </xslt>
+ <xslt href="xsl/normal.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="deep-it">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">it</param>
+ </xslt>
+ <xslt href="xsl/deep.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="frontpage-it">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">it</param>
+ </xslt>
+ <xslt href="xsl/front.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="news-it">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">it</param>
+ </xslt>
+ <xslt href="xsl/news.xsl"/>
+ <xslt href="xsl/normal.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="disclaimer-it">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">it</param>
+ </xslt>
+ <xslt href="xsl/disclaimer.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="anime-it">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">it</param>
+ </xslt>
+ <xslt href="xsl/anime.xsl"/>
+ <xslt href="xsl/normal.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="links-it">
+ <xslt href="xsl/links.xsl"/>
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">it</param>
+ </xslt>
+ <xslt href="xsl/normal.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="diary-it">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">it</param>
+ </xslt>
+ <xslt href="xsl/thumbed.xsl"/>
+ <xslt href="xsl/diary.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="thumbed-it">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">it</param>
+ </xslt>
+ <xslt href="xsl/thumbed.xsl"/>
+ <xslt href="xsl/deep.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="report-it">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">it</param>
+ </xslt>
+ <xslt href="xsl/report.xsl"/>
+ <xslt href="xsl/deep.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="normal-en">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">en</param>
+ </xslt>
+ <xslt href="xsl/normal.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="deep-en">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">en</param>
+ </xslt>
+ <xslt href="xsl/deep.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="frontpage-en">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">en</param>
+ </xslt>
+ <xslt href="xsl/front.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="news-en">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">en</param>
+ </xslt>
+ <xslt href="xsl/news.xsl"/>
+ <xslt href="xsl/normal.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="disclaimer-en">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">en</param>
+ </xslt>
+ <xslt href="xsl/disclaimer.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="anime-en">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">en</param>
+ </xslt>
+ <xslt href="xsl/anime.xsl"/>
+ <xslt href="xsl/normal.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="links-en">
+ <xslt href="xsl/links.xsl"/>
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">en</param>
+ </xslt>
+ <xslt href="xsl/normal.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="diary-en">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">en</param>
+ </xslt>
+ <xslt href="xsl/thumbed.xsl"/>
+ <xslt href="xsl/diary.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="thumbed-en">
+ <xslt href="xsl/langfilter.xsl">
+ <param name="lang">en</param>
+ </xslt>
+ <xslt href="xsl/thumbed.xsl"/>
+ <xslt href="xsl/deep.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="racconto">
+ <xslt href="xsl/racconto.xsl"/>
+ <xslt href="xsl/layout.xsl"/>
+ <xslt href="xsl/resolver.xsl"/>
+ </type>
+ <type name="thumbnail">
+ <command>makethumb 100 100 $^ $@</command>
+ </type>
+ <type name="sitesource">
+ <command>tar zcvf $@ . --exclude CVS --exclude output --exclude \*~ --exclude images --exclude proj --exclude .passfile</command>
+ </type>
+</sitemap>
diff --git a/x2s.xsl b/x2s.xsl
new file mode 100644
index 0000000..a1633c6
--- /dev/null
+++ b/x2s.xsl
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:regexp="http://exslt.org/regular-expressions"
+ extension-element-prefixes="regexp"
+>
+ <xsl:output method="xml" indent="yes"/>
+
+ <xsl:template match="/website">
+ <sitemap src="{@sourceDir}" dest="{@targetDir}">
+ <xsl:apply-templates select="structure/section/*"/>
+ <xsl:apply-templates select="layout/documentStyle"/>
+ </sitemap>
+ </xsl:template>
+
+ <xsl:template match="section">
+ <section name="{@name}">
+ <xsl:if test="@title"><xsl:attribute name="title"><xsl:value-of select="@title"/></xsl:attribute></xsl:if>
+ <xsl:if test="@sourceDir"><xsl:attribute name="src"><xsl:value-of select="@sourceDir"/></xsl:attribute></xsl:if>
+ <xsl:if test="@targetDir"><xsl:attribute name="dest"><xsl:value-of select="@targetDir"/></xsl:attribute></xsl:if>
+ <xsl:apply-templates select="*"/>
+ </section>
+ </xsl:template>
+
+ <xsl:template match="directory">
+ <section name="{@id}">
+ <xsl:if test="@title"><xsl:attribute name="title"><xsl:value-of select="@title"/></xsl:attribute></xsl:if>
+ <xsl:if test="@sourceDir"><xsl:attribute name="src"><xsl:value-of select="@sourceDir"/></xsl:attribute></xsl:if>
+ <xsl:if test="@targetDir"><xsl:attribute name="dest"><xsl:value-of select="@targetDir"/></xsl:attribute></xsl:if>
+ <xsl:apply-templates select="*"/>
+ </section>
+ </xsl:template>
+
+ <xsl:template match="homepage">
+ <main name="{@name}" src="{@sourceFile}" dest="{@targetFile}" type="{@type}" />
+ </xsl:template>
+ <xsl:template match="entry">
+ <page name="{@name}" src="{@sourceFile}" dest="{@targetFile}" type="{@type}" />
+ </xsl:template>
+ <xsl:template match="file">
+ <page name="{@id}" src="{@sourceFile}" dest="{@targetFile}" type="{@type}" visible="no"/>
+ </xsl:template>
+
+ <xsl:template match="documentStyle[child::xsl]">
+ <type name="{@type}">
+ <xsl:apply-templates select="xsl"/>
+ </type>
+ </xsl:template>
+ <xsl:template match="xsl">
+ <xsl:apply-templates select="child::xsl"/>
+ <xslt href="{@stylesheet}">
+ <xsl:for-each select="parameter"><param name="{@name}"><xsl:value-of select="@value"/></param></xsl:for-each>
+ </xslt>
+ </xsl:template>
+
+ <xsl:template match="documentStyle[child::copy]">
+ <type name="{@type}">
+ <command>mkdir -p `dirname $@`;cp $^ $@</command>
+ </type>
+ </xsl:template>
+
+ <xsl:template name="str-subst">
+ <xsl:param name="text"/>
+ <xsl:param name="replace"/>
+ <xsl:param name="with"/>
+
+ <xsl:choose>
+ <xsl:when test="string-length($replace) = 0">
+ <xsl:value-of select="$text"/>
+ </xsl:when>
+ <xsl:when test="contains($text, $replace)">
+
+ <xsl:variable name="before" select="substring-before($text, $replace)"/>
+ <xsl:variable name="after" select="substring-after($text, $replace)"/>
+
+ <xsl:value-of select="$before"/>
+ <xsl:value-of select="$with"/>
+ <xsl:call-template name="str-subst">
+ <xsl:with-param name="text" select="$after"/>
+ <xsl:with-param name="replace" select="$replace"/>
+ <xsl:with-param name="with" select="$with"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$text"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="documentStyle[child::programCall]">
+ <type name="{@type}">
+ <xsl:for-each select="programCall"><command><xsl:call-template name="str-subst"><xsl:with-param name="text"><xsl:call-template name="str-subst"><xsl:with-param name="text" select="@command"/><xsl:with-param name="replace" select="'%s'"/><xsl:with-param name="with" select="'$^'"/></xsl:call-template></xsl:with-param><xsl:with-param name="replace" select="'%d'"/><xsl:with-param name="with" select="'$@'"/></xsl:call-template></command></xsl:for-each>
+ </type>
+ </xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
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>