<project name="xhtml-web" basedir="." default="generuj">
<!-- Používané adresáře – např. zde můžete vstup a výstup nasměrovat do jiného verzovaného úložiště -->
<property name="vstup" value="vstup"/>
<property name="výstup" value="výstup"/>
<property name="šablona" value="šablona"/>
<property name="seznamMaker" value="${šablona}/.makra-seznam.xsl"/>
<property name="temp" value="temp"/>
<property name="funkce" value="${šablona}/funkce/build/classes"/>
<property name="vstupníPřípona" value=".xml"/>
<property name="výstupníPřípona" value=".xhtml"/>
<target name="generuj" description="Vygeneruje kompletní web." depends="agregace,stránky">
</target>
<target name="stránky" description="Vygeneruje samotné XHTML webové stránky." depends="statický-obsah,syntaxe,kompiluj-funkce,makra">
<xslt basedir="${vstup}" destdir="${výstup}" includes="*${vstupníPřípona}" extension="${výstupníPřípona}" style="${šablona}/stránka.xsl" processor="org.apache.tools.ant.taskdefs.optional.TraXLiaison">
<param name="konfigurák" expression="../${vstup}/"/>
<param name="podporaZaostalýchProhlížečů" expression="false"/>
<param name="vstupníPřípona" expression="${vstupníPřípona}"/>
<param name="výstupníPřípona" expression="${výstupníPřípona}"/>
<classpath location="/usr/share/java/saxonb-9.0.jar"/>
<classpath location="${funkce}"/>
<factory name="net.sf.saxon.TransformerFactoryImpl">
<attribute name="http://saxon.sf.net/feature/allow-external-functions" value="true"/>
</factory>
</xslt>
</target>
<target name="syntaxe" description="Vygeneruje CSS styl pro zvýrazňování syntaxe" depends="kompiluj-funkce">
<xslt in="${vstup}/web.conf" out="${výstup}/css/syntaxe.css" style="${šablona}/syntaxe.xsl" processor="org.apache.tools.ant.taskdefs.optional.TraXLiaison">
<classpath location="/usr/share/java/saxonb-9.0.jar"/>
<classpath location="${funkce}"/>
<factory name="net.sf.saxon.TransformerFactoryImpl">
<attribute name="http://saxon.sf.net/feature/allow-external-functions" value="true"/>
</factory>
</xslt>
</target>
<target name="makra" description="Vygeneruje seznam maker podle souborů v příslušných složkách" depends="kompiluj-funkce">
<xslt in="${vstup}/web.conf" out="${seznamMaker}" style="${šablona}/makra.xsl" processor="org.apache.tools.ant.taskdefs.optional.TraXLiaison">
<classpath location="/usr/share/java/saxonb-9.0.jar"/>
<classpath location="${funkce}"/>
<factory name="net.sf.saxon.TransformerFactoryImpl">
<attribute name="http://saxon.sf.net/feature/allow-external-functions" value="true"/>
</factory>
</xslt>
</target>
<target name="agregace" description="Vytvoří agregované výstupy: RSS, Atom, Sitemap.xml." depends="kompiluj-funkce">
<!-- TODO: sloučit, zjednodušit, parametrizovat -->
<!-- Atom -->
<xslt in="${vstup}/web.conf" out="${výstup}/atom.xml" style="${šablona}/atom.xsl" processor="org.apache.tools.ant.taskdefs.optional.TraXLiaison">
<param name="vstupníPřípona" expression="${vstupníPřípona}"/>
<param name="výstupníPřípona" expression="${výstupníPřípona}"/>
<classpath location="/usr/share/java/saxonb-9.0.jar"/>
<classpath location="${funkce}"/>
<factory name="net.sf.saxon.TransformerFactoryImpl">
<attribute name="http://saxon.sf.net/feature/allow-external-functions" value="true"/>
</factory>
</xslt>
<!-- RSS -->
<xslt in="${výstup}/atom.xml" out="${výstup}/rss.xml" style="${šablona}/rss.xsl" processor="org.apache.tools.ant.taskdefs.optional.TraXLiaison">
<classpath location="/usr/share/java/saxonb-9.0.jar"/>
<classpath location="${funkce}"/>
<factory name="net.sf.saxon.TransformerFactoryImpl">
<attribute name="http://saxon.sf.net/feature/allow-external-functions" value="true"/>
</factory>
</xslt>
<!-- Sitemap.xml -->
<xslt in="${výstup}/atom.xml" out="${výstup}/sitemap.xml" style="${šablona}/sitemap.xsl" processor="org.apache.tools.ant.taskdefs.optional.TraXLiaison">
<classpath location="/usr/share/java/saxonb-9.0.jar"/>
<classpath location="${funkce}"/>
<factory name="net.sf.saxon.TransformerFactoryImpl">
<attribute name="http://saxon.sf.net/feature/allow-external-functions" value="true"/>
</factory>
</xslt>
<!-- Seznam stránek -->
<xslt in="${výstup}/atom.xml" out="${vstup}/.seznam.xml" style="${šablona}/seznam.xsl" processor="org.apache.tools.ant.taskdefs.optional.TraXLiaison">
<classpath location="/usr/share/java/saxonb-9.0.jar"/>
<classpath location="${funkce}"/>
<factory name="net.sf.saxon.TransformerFactoryImpl">
<attribute name="http://saxon.sf.net/feature/allow-external-functions" value="true"/>
</factory>
</xslt>
</target>
<target name="kompiluj-funkce" description="Přeloží funkce napsané v Javě.">
<mkdir dir="${funkce}"/>
<javac
srcdir="${šablona}/funkce/src"
destdir="${funkce}"
includeAntRuntime="no">
</javac>
</target>
<target name="statický-obsah" description="Kopíruje JS, CSS, obrázky atd.">
<copy todir="${výstup}">
<fileset dir="${vstup}" excludes="*.xml,makra.xsl,*.inc,web.conf"/>
</copy>
</target>
<target name="čisti" description="Smaže vygenerovaný obsah.">
<delete includeemptydirs="true">
<fileset dir="${výstup}" includes="**/*"/>
<fileset dir="${funkce}" includes="**/*"/>
<fileset file="${seznamMaker}"/>
</delete>
</target>
</project>