build.xml
author František Kučera <franta-hg@frantovo.cz>
Fri, 06 Jan 2012 20:48:42 +0100
changeset 51 df1f942f7b69
parent 31 da6ae32853cb
child 60 6e574058ef56
permissions -rw-r--r--
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
→ nová makra není potřeba nikde registrovat, prostě vytvoříme nový soubor v adresáři
šablona/makra nebo
vstup/makra
a spustíme „ant makra“ – vygenruje se „šablona/.makra-seznam.xsl“ který se vloží do šablony stránky.
     1 <project name="xhtml-web" basedir="." default="generuj">
     2 
     3 	<!-- Používané adresáře – např. zde můžete vstup a výstup nasměrovat do jiného verzovaného úložiště -->
     4 	<property name="vstup" value="vstup"/>
     5 	<property name="výstup" value="výstup"/>
     6 	<property name="šablona" value="šablona"/>
     7 	<property name="seznamMaker" value="${šablona}/.makra-seznam.xsl"/>
     8 	<property name="temp" value="temp"/>
     9 	<property name="funkce" value="${šablona}/funkce/build/classes"/>
    10 	
    11 	<property name="vstupníPřípona" value=".xml"/>
    12 	<property name="výstupníPřípona" value=".xhtml"/>
    13 	
    14 	<target	name="generuj" description="Vygeneruje kompletní web." depends="agregace,stránky">
    15 	</target>
    16 	
    17 	<target name="stránky" description="Vygeneruje samotné XHTML webové stránky." depends="statický-obsah,syntaxe,kompiluj-funkce,makra">		
    18 		<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">
    19 			<param name="konfigurák" expression="../${vstup}/"/>		
    20 			<param name="podporaZaostalýchProhlížečů" expression="false"/>
    21 			<param name="vstupníPřípona" expression="${vstupníPřípona}"/>
    22 			<param name="výstupníPřípona" expression="${výstupníPřípona}"/>
    23 			<classpath location="/usr/share/java/saxonb-9.0.jar"/>
    24 			<classpath location="${funkce}"/>
    25 			<factory name="net.sf.saxon.TransformerFactoryImpl">
    26 				<attribute name="http://saxon.sf.net/feature/allow-external-functions" value="true"/>				
    27 			</factory>
    28 		</xslt>
    29 	</target>
    30 	
    31 	<target name="syntaxe" description="Vygeneruje CSS styl pro zvýrazňování syntaxe" depends="kompiluj-funkce">
    32 		<xslt in="${vstup}/web.conf" out="${výstup}/css/syntaxe.css" style="${šablona}/syntaxe.xsl" processor="org.apache.tools.ant.taskdefs.optional.TraXLiaison">
    33 			<classpath location="/usr/share/java/saxonb-9.0.jar"/>
    34 			<classpath location="${funkce}"/>
    35 			<factory name="net.sf.saxon.TransformerFactoryImpl">
    36 				<attribute name="http://saxon.sf.net/feature/allow-external-functions" value="true"/>				
    37 			</factory>
    38 		</xslt>
    39 	</target>
    40 	
    41 	<target name="makra" description="Vygeneruje seznam maker podle souborů v příslušných složkách" depends="kompiluj-funkce">
    42 		<xslt in="${vstup}/web.conf" out="${seznamMaker}" style="${šablona}/makra.xsl" processor="org.apache.tools.ant.taskdefs.optional.TraXLiaison">
    43 			<classpath location="/usr/share/java/saxonb-9.0.jar"/>
    44 			<classpath location="${funkce}"/>
    45 			<factory name="net.sf.saxon.TransformerFactoryImpl">
    46 				<attribute name="http://saxon.sf.net/feature/allow-external-functions" value="true"/>				
    47 			</factory>
    48 		</xslt>
    49 	</target>
    50 	
    51 	<target name="agregace" description="Vytvoří agregované výstupy: RSS, Atom, Sitemap.xml." depends="kompiluj-funkce">
    52 		<!-- TODO: sloučit, zjednodušit, parametrizovat -->
    53 	
    54 		<!-- Atom -->
    55 		<xslt in="${vstup}/web.conf" out="${výstup}/atom.xml" style="${šablona}/atom.xsl" processor="org.apache.tools.ant.taskdefs.optional.TraXLiaison">
    56 			<param name="vstupníPřípona" expression="${vstupníPřípona}"/>
    57 			<param name="výstupníPřípona" expression="${výstupníPřípona}"/>
    58 			<classpath location="/usr/share/java/saxonb-9.0.jar"/>
    59 			<classpath location="${funkce}"/>
    60 			<factory name="net.sf.saxon.TransformerFactoryImpl">
    61 				<attribute name="http://saxon.sf.net/feature/allow-external-functions" value="true"/>				
    62 			</factory>
    63 		</xslt>
    64 		
    65 		<!-- RSS --> 
    66 		<xslt in="${výstup}/atom.xml" out="${výstup}/rss.xml" style="${šablona}/rss.xsl"  processor="org.apache.tools.ant.taskdefs.optional.TraXLiaison">			
    67 			<classpath location="/usr/share/java/saxonb-9.0.jar"/>
    68 			<classpath location="${funkce}"/>
    69 			<factory name="net.sf.saxon.TransformerFactoryImpl">
    70 				<attribute name="http://saxon.sf.net/feature/allow-external-functions" value="true"/>				
    71 			</factory>
    72 		</xslt>
    73 		
    74 		<!-- Sitemap.xml -->
    75 		<xslt in="${výstup}/atom.xml" out="${výstup}/sitemap.xml" style="${šablona}/sitemap.xsl"  processor="org.apache.tools.ant.taskdefs.optional.TraXLiaison">			
    76 			<classpath location="/usr/share/java/saxonb-9.0.jar"/>
    77 			<classpath location="${funkce}"/>
    78 			<factory name="net.sf.saxon.TransformerFactoryImpl">
    79 				<attribute name="http://saxon.sf.net/feature/allow-external-functions" value="true"/>				
    80 			</factory>
    81 		</xslt>
    82 		
    83 		<!-- Seznam stránek --> 
    84 		<xslt in="${výstup}/atom.xml" out="${vstup}/.seznam.xml" style="${šablona}/seznam.xsl"  processor="org.apache.tools.ant.taskdefs.optional.TraXLiaison">			
    85 			<classpath location="/usr/share/java/saxonb-9.0.jar"/>
    86 			<classpath location="${funkce}"/>
    87 			<factory name="net.sf.saxon.TransformerFactoryImpl">
    88 				<attribute name="http://saxon.sf.net/feature/allow-external-functions" value="true"/>				
    89 			</factory>
    90 		</xslt>
    91 		
    92 	</target>
    93 	
    94 	<target name="kompiluj-funkce" description="Přeloží funkce napsané v Javě.">		
    95 		<mkdir dir="${funkce}"/>
    96 		<javac
    97 			srcdir="${šablona}/funkce/src"
    98 			destdir="${funkce}"			
    99 			includeAntRuntime="no">
   100 		</javac>
   101 	</target>
   102 	
   103 	<target name="statický-obsah" description="Kopíruje JS, CSS, obrázky atd.">
   104 		<copy todir="${výstup}">
   105 			<fileset dir="${vstup}" excludes="*.xml,makra.xsl,*.inc,web.conf"/>
   106 		</copy>
   107 	</target>
   108 	
   109 	<target name="čisti" description="Smaže vygenerovaný obsah.">
   110 		<delete includeemptydirs="true">
   111 			<fileset dir="${výstup}" includes="**/*"/>
   112 			<fileset dir="${funkce}" includes="**/*"/>
   113 			<fileset file="${seznamMaker}"/>
   114 		</delete>
   115 	</target>
   116 	
   117 </project>