diff options
-rw-r--r-- | Makefile.bootstrap | 3 | ||||
-rw-r--r-- | compile.xsl | 89 | ||||
-rw-r--r-- | sitemap.dtd | 41 | ||||
-rw-r--r-- | sitemap.xml | 452 | ||||
-rw-r--r-- | x2s.xsl | 95 | ||||
-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 |
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"/> $<</xsl:when><xsl:otherwise>|xsltproc <xsl:call-template name="params"/> <xsl:value-of select="@href"/> -</xsl:otherwise></xsl:choose></xsl:for-each> > $@ + +</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> @@ -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 " "> +]> +<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> |