1.1 --- a/.hgignore Thu Jan 05 16:24:56 2012 +0100
1.2 +++ b/.hgignore Fri Jan 06 20:48:42 2012 +0100
1.3 @@ -1,6 +1,7 @@
1.4 temp/*
1.5 výstup/*
1.6 šablona/funkce/build/*
1.7 +šablona/.makra-seznam.xsl
1.8 vstup/.seznam.xml
1.9 analýza/princip.png
1.10 nbproject/private
2.1 --- a/build.xml Thu Jan 05 16:24:56 2012 +0100
2.2 +++ b/build.xml Fri Jan 06 20:48:42 2012 +0100
2.3 @@ -4,6 +4,7 @@
2.4 <property name="vstup" value="vstup"/>
2.5 <property name="výstup" value="výstup"/>
2.6 <property name="šablona" value="šablona"/>
2.7 + <property name="seznamMaker" value="${šablona}/.makra-seznam.xsl"/>
2.8 <property name="temp" value="temp"/>
2.9 <property name="funkce" value="${šablona}/funkce/build/classes"/>
2.10
2.11 @@ -13,7 +14,7 @@
2.12 <target name="generuj" description="Vygeneruje kompletní web." depends="agregace,stránky">
2.13 </target>
2.14
2.15 - <target name="stránky" description="Vygeneruje samotné XHTML webové stránky." depends="statický-obsah,syntaxe,kompiluj-funkce">
2.16 + <target name="stránky" description="Vygeneruje samotné XHTML webové stránky." depends="statický-obsah,syntaxe,kompiluj-funkce,makra">
2.17 <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">
2.18 <param name="konfigurák" expression="../${vstup}/"/>
2.19 <param name="podporaZaostalýchProhlížečů" expression="false"/>
2.20 @@ -37,6 +38,16 @@
2.21 </xslt>
2.22 </target>
2.23
2.24 + <target name="makra" description="Vygeneruje seznam maker podle souborů v příslušných složkách" depends="kompiluj-funkce">
2.25 + <xslt in="${vstup}/web.conf" out="${seznamMaker}" style="${šablona}/makra.xsl" processor="org.apache.tools.ant.taskdefs.optional.TraXLiaison">
2.26 + <classpath location="/usr/share/java/saxonb-9.0.jar"/>
2.27 + <classpath location="${funkce}"/>
2.28 + <factory name="net.sf.saxon.TransformerFactoryImpl">
2.29 + <attribute name="http://saxon.sf.net/feature/allow-external-functions" value="true"/>
2.30 + </factory>
2.31 + </xslt>
2.32 + </target>
2.33 +
2.34 <target name="agregace" description="Vytvoří agregované výstupy: RSS, Atom, Sitemap.xml." depends="kompiluj-funkce">
2.35 <!-- TODO: sloučit, zjednodušit, parametrizovat -->
2.36
2.37 @@ -99,6 +110,7 @@
2.38 <delete includeemptydirs="true">
2.39 <fileset dir="${výstup}" includes="**/*"/>
2.40 <fileset dir="${funkce}" includes="**/*"/>
2.41 + <fileset file="${seznamMaker}"/>
2.42 </delete>
2.43 </target>
2.44
3.1 --- a/vstup/makra.xsl Thu Jan 05 16:24:56 2012 +0100
3.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
3.3 @@ -1,33 +0,0 @@
3.4 -<?xml version="1.0" encoding="UTF-8"?>
3.5 -<xsl:stylesheet version="2.0"
3.6 - xmlns="http://www.w3.org/1999/xhtml"
3.7 - xmlns:h="http://www.w3.org/1999/xhtml"
3.8 - xmlns:s="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana"
3.9 - xmlns:k="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/konfigurace"
3.10 - xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
3.11 - xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3.12 - xmlns:fn="http://www.w3.org/2005/xpath-functions"
3.13 - xmlns:svg="http://www.w3.org/2000/svg"
3.14 - xmlns:xs="http://www.w3.org/2001/XMLSchema"
3.15 - exclude-result-prefixes="fn h s k m xs">
3.16 -
3.17 - <!-- Ukázka vlastního „makra“: -->
3.18 - <xsl:template match="m:měřák">
3.19 - <xsl:variable name="hodnota" select="number(@hodnota)"/>
3.20 - <xsl:variable name="šířkaGrafu" select="128"/>
3.21 - <xsl:choose>
3.22 - <xsl:when test="$hodnota >= 0 and $hodnota <= 100">
3.23 - <div style="border: 1px solid black; width: {$šířkaGrafu}px; height: 16px; padding: 0px; text-align: center; background-color: #cfc;">
3.24 - <div style="margin: 0px; background-color: #A4E666; width: {@hodnota*$šířkaGrafu div 100}px; height: 16px;"><xsl:call-template name="varováníRetardace"/></div>
3.25 - <p style="margin: 0px; font-size: 12px; position: relative; top: -15px;">
3.26 - <xsl:value-of select="@hodnota"/>/100
3.27 - </p>
3.28 - </div>
3.29 - </xsl:when>
3.30 - <xsl:otherwise>
3.31 - <xsl:message terminate="yes">Hodnota měřáku musí být nejméně 0 a nejvíce 100 (udává procenta).</xsl:message>
3.32 - </xsl:otherwise>
3.33 - </xsl:choose>
3.34 - </xsl:template>
3.35 -
3.36 -</xsl:stylesheet>
3.37 \ No newline at end of file
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4.2 +++ b/vstup/makra/měřák.xsl Fri Jan 06 20:48:42 2012 +0100
4.3 @@ -0,0 +1,33 @@
4.4 +<?xml version="1.0" encoding="UTF-8"?>
4.5 +<xsl:stylesheet version="2.0"
4.6 + xmlns="http://www.w3.org/1999/xhtml"
4.7 + xmlns:h="http://www.w3.org/1999/xhtml"
4.8 + xmlns:s="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana"
4.9 + xmlns:k="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/konfigurace"
4.10 + xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
4.11 + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4.12 + xmlns:fn="http://www.w3.org/2005/xpath-functions"
4.13 + xmlns:svg="http://www.w3.org/2000/svg"
4.14 + xmlns:xs="http://www.w3.org/2001/XMLSchema"
4.15 + exclude-result-prefixes="fn h s k m xs">
4.16 +
4.17 + <!-- Ukázka vlastního „makra“: -->
4.18 + <xsl:template match="m:měřák">
4.19 + <xsl:variable name="hodnota" select="number(@hodnota)"/>
4.20 + <xsl:variable name="šířkaGrafu" select="128"/>
4.21 + <xsl:choose>
4.22 + <xsl:when test="$hodnota >= 0 and $hodnota <= 100">
4.23 + <div style="border: 1px solid black; width: {$šířkaGrafu}px; height: 16px; padding: 0px; text-align: center; background-color: #cfc;">
4.24 + <div style="margin: 0px; background-color: #A4E666; width: {@hodnota*$šířkaGrafu div 100}px; height: 16px;"><xsl:call-template name="varováníRetardace"/></div>
4.25 + <p style="margin: 0px; font-size: 12px; position: relative; top: -15px;">
4.26 + <xsl:value-of select="@hodnota"/>/100
4.27 + </p>
4.28 + </div>
4.29 + </xsl:when>
4.30 + <xsl:otherwise>
4.31 + <xsl:message terminate="yes">Hodnota měřáku musí být nejméně 0 a nejvíce 100 (udává procenta).</xsl:message>
4.32 + </xsl:otherwise>
4.33 + </xsl:choose>
4.34 + </xsl:template>
4.35 +
4.36 +</xsl:stylesheet>
4.37 \ No newline at end of file
5.1 --- a/šablona/makra.xsl Thu Jan 05 16:24:56 2012 +0100
5.2 +++ b/šablona/makra.xsl Fri Jan 06 20:48:42 2012 +0100
5.3 @@ -1,1 +1,30 @@
5.4 -../vstup/makra.xsl
5.5 \ No newline at end of file
5.6 +<?xml version="1.0" encoding="UTF-8"?>
5.7 +<xsl:stylesheet version="2.0"
5.8 + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
5.9 + xmlns:XSL="http://example.com/XSL">
5.10 + <xsl:output method="xml" indent="yes" encoding="UTF-8" />
5.11 + <xsl:namespace-alias stylesheet-prefix="XSL" result-prefix="xsl"/>
5.12 +
5.13 + <xsl:template match="/">
5.14 + <XSL:stylesheet version="2.0">
5.15 + <xsl:text>
5.16 +</xsl:text>
5.17 + <xsl:comment>
5.18 + Tento seznam maker je automaticky generovaný.
5.19 + Neupravujte ho ručně – použijte příkaz „ant makra“.
5.20 +</xsl:comment>
5.21 + <xsl:text>
5.22 + </xsl:text>
5.23 + <!-- Makra dodávaná jako součást programu: -->
5.24 + <xsl:for-each select="collection('./makra/?select=*.xsl')">
5.25 + <XSL:include href="{document-uri(.)}"/>
5.26 + </xsl:for-each>
5.27 +
5.28 + <!-- Uživatelská makra -->
5.29 + <xsl:for-each select="collection('../vstup/makra/?select=*.xsl')">
5.30 + <XSL:include href="{document-uri(.)}"/>
5.31 + </xsl:for-each>
5.32 + </XSL:stylesheet>
5.33 + </xsl:template>
5.34 +
5.35 +</xsl:stylesheet>
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
6.2 +++ b/šablona/makra/diagramy.xsl Fri Jan 06 20:48:42 2012 +0100
6.3 @@ -0,0 +1,53 @@
6.4 +<?xml version="1.0" encoding="UTF-8"?>
6.5 +<xsl:stylesheet version="2.0"
6.6 + xmlns="http://www.w3.org/1999/xhtml"
6.7 + xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
6.8 + xmlns:j="java:cz.frantovo.xmlWebGenerator.Funkce"
6.9 + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
6.10 + exclude-result-prefixes="m j">
6.11 +
6.12 + <!--
6.13 + Diagramy/grafy
6.14 + **************
6.15 + Můžeme vložit diagram – obrázek.
6.16 + Pro jejich vykreslování se používá Graphviz – diagramy zadáváme v jeho syntaxi.
6.17 + *
6.18 + @orientace „vodorovně“ nebo „svisle“ (výchozí)
6.19 + @nadpis můžeme uvést název diagramu
6.20 + -->
6.21 + <xsl:template match="m:diagram">
6.22 + <!--
6.23 + TODO: umožnit vkládání diagramů ze souboru (@src)
6.24 + -->
6.25 + <xsl:variable name="souborDiagramu" select="j:vytvořDiagram(text(), @orientace = 'vodorovně')"/>
6.26 + <xsl:choose>
6.27 + <xsl:when test="$souborDiagramu">
6.28 + <div class="diagram">
6.29 + <a href="{$souborDiagramu}.svg">
6.30 + <img
6.31 + src="{$souborDiagramu}.svg"
6.32 + alt="Diagram {$souborDiagramu} | pokud nevidíte obrázek, váš prohlížeč stojí za starou bačkoru"
6.33 + title="{@nadpis} (klikněte pro zobrazení samotného diagramu)"/>
6.34 + </a>
6.35 + <!--
6.36 + TODO: SVG+PNG:
6.37 + <xsl:variable name="svgDiagramu" select="document(concat($výstup, $souborDiagramu, '.svg'))/svg:svg"/>
6.38 + <object
6.39 + data="{$souborDiagramu}.svg"
6.40 + type="image/svg+xml"
6.41 + style="width: {$svgDiagramu/@width}; height: {$svgDiagramu/@height}">
6.42 + <img src="{$souborDiagramu}.png" alt="Diagram {$souborDiagramu}"/>
6.43 + </object>
6.44 + -->
6.45 + <xsl:if test="@nadpis">
6.46 + <p class="nadpis"><xsl:value-of select="@nadpis"/></p>
6.47 + </xsl:if>
6.48 + </div>
6.49 + </xsl:when>
6.50 + <xsl:otherwise>
6.51 + <xsl:message terminate="yes">Při vytváření diagramu došlo k chybě.</xsl:message>
6.52 + </xsl:otherwise>
6.53 + </xsl:choose>
6.54 + </xsl:template>
6.55 +
6.56 +</xsl:stylesheet>
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7.2 +++ b/šablona/makra/odkazy.xsl Fri Jan 06 20:48:42 2012 +0100
7.3 @@ -0,0 +1,23 @@
7.4 +<?xml version="1.0" encoding="UTF-8"?>
7.5 +<xsl:stylesheet version="2.0"
7.6 + xmlns="http://www.w3.org/1999/xhtml"
7.7 + xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
7.8 + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
7.9 + exclude-result-prefixes="m">
7.10 +
7.11 + <!--
7.12 + Makro pro převod interních odkazů:
7.13 + - doplnění správné přípony
7.14 + - URL kódování znaků
7.15 + -->
7.16 + <xsl:template match="m:a">
7.17 + <a>
7.18 + <xsl:copy-of select="@*"/>
7.19 + <xsl:attribute name="href">
7.20 + <xsl:value-of select="encode-for-uri(concat(@href, $výstupníPřípona))"/>
7.21 + </xsl:attribute>
7.22 + <xsl:apply-templates/>
7.23 + </a>
7.24 + </xsl:template>
7.25 +
7.26 +</xsl:stylesheet>
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
8.2 +++ b/šablona/makra/tabulka.xsl Fri Jan 06 20:48:42 2012 +0100
8.3 @@ -0,0 +1,47 @@
8.4 +<?xml version="1.0" encoding="UTF-8"?>
8.5 +<xsl:stylesheet version="2.0"
8.6 + xmlns="http://www.w3.org/1999/xhtml"
8.7 + xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
8.8 + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
8.9 + exclude-result-prefixes="m">
8.10 +
8.11 + <!--
8.12 + Jednoduché tabulky
8.13 + ******************
8.14 + Data zadáváme do těla elementu.
8.15 + Sloupce oddělujeme tabulátorem (může jich být víc, minimálně však jeden, mezery nestačí).
8.16 + První řádek se považuje za záhlaví (nadpisy sloupců).
8.17 + *
8.18 + -->
8.19 + <xsl:template match="m:tabulka">
8.20 + <table>
8.21 + <xsl:variable name="data" select="replace(replace(text(), '^\s+', ''),'\s+$','')"/>
8.22 + <xsl:variable name="hlavička" select="substring-before($data, ' ')"/>
8.23 + <xsl:variable name="tělo" select="substring-after($data, ' ')"/>
8.24 + <thead>
8.25 + <tr>
8.26 + <xsl:for-each select="tokenize($hlavička, '\t+')">
8.27 + <xsl:if test="normalize-space(.)">
8.28 + <td><xsl:value-of select="normalize-space(.)"/></td>
8.29 + </xsl:if>
8.30 + </xsl:for-each>
8.31 + </tr>
8.32 + </thead>
8.33 + <tbody>
8.34 + <xsl:for-each select="tokenize($tělo, '\n')">
8.35 + <xsl:if test="normalize-space(.)">
8.36 + <tr>
8.37 + <xsl:for-each select="tokenize(., '\t+')">
8.38 + <xsl:if test="normalize-space(.)">
8.39 + <td><xsl:value-of select="normalize-space(.)"/></td>
8.40 + </xsl:if>
8.41 + </xsl:for-each>
8.42 + </tr>
8.43 + </xsl:if>
8.44 + </xsl:for-each>
8.45 + </tbody>
8.46 + </table>
8.47 + </xsl:template>
8.48 +
8.49 +</xsl:stylesheet>
8.50 +
9.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
9.2 +++ b/šablona/makra/vycpávka.xsl Fri Jan 06 20:48:42 2012 +0100
9.3 @@ -0,0 +1,26 @@
9.4 +<?xml version="1.0" encoding="UTF-8"?>
9.5 +<xsl:stylesheet version="2.0"
9.6 + xmlns="http://www.w3.org/1999/xhtml"
9.7 + xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
9.8 + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
9.9 + exclude-result-prefixes="m">
9.10 +
9.11 + <!--
9.12 + Vycpávkový text
9.13 + ***************
9.14 + Vkládá Lorem Ipsum.
9.15 + *
9.16 + @odstavců počet odstavců k vložení
9.17 + -->
9.18 + <xsl:template match="m:vycpávka">
9.19 + <!--
9.20 + TODO: stáhnout jen jednou, uložit do souboru a při dalších generováních brát z něj.
9.21 + -->
9.22 + <xsl:message>Stahuji vycpávkový text z http://lipsum.lipsum.com/</xsl:message>
9.23 + <xsl:variable name="prostýText" select="document(concat('http://lipsum.lipsum.com/feed/xml?amount=', @odstavců, '&what=paragraphs'))/feed/lipsum"/>
9.24 + <xsl:for-each select="tokenize($prostýText, '\n')">
9.25 + <p><xsl:value-of select="."/></p>
9.26 + </xsl:for-each>
9.27 + </xsl:template>
9.28 +
9.29 +</xsl:stylesheet>
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
10.2 +++ b/šablona/makra/wiki.xsl Fri Jan 06 20:48:42 2012 +0100
10.3 @@ -0,0 +1,28 @@
10.4 +<?xml version="1.0" encoding="UTF-8"?>
10.5 +<xsl:stylesheet version="2.0"
10.6 + xmlns="http://www.w3.org/1999/xhtml"
10.7 + xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
10.8 + xmlns:j="java:cz.frantovo.xmlWebGenerator.Funkce"
10.9 + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
10.10 + exclude-result-prefixes="m j">
10.11 +
10.12 + <!--
10.13 + Wiki syntaxe
10.14 + ************
10.15 + Text nemusíme vkládat v (X)HTML, ale můžeme ho uzavřít do této značky a používat „wiki“ syntaxi.
10.16 + *
10.17 + @syntaxe nepovinný atribut (zatím je podporován jen markdown procesor).
10.18 + -->
10.19 + <xsl:template match="m:wiki">
10.20 + <xsl:variable name="wikiXHTML" select="j:formátujWiki(text(), @syntaxe)"/>
10.21 + <xsl:choose>
10.22 + <xsl:when test="$wikiXHTML">
10.23 + <xsl:value-of select="$wikiXHTML" disable-output-escaping="yes"/>
10.24 + </xsl:when>
10.25 + <xsl:otherwise>
10.26 + <xsl:message terminate="yes">Při zpracování wiki syntaxe došlo k chybě.</xsl:message>
10.27 + </xsl:otherwise>
10.28 + </xsl:choose>
10.29 + </xsl:template>
10.30 +
10.31 +</xsl:stylesheet>
11.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
11.2 +++ b/šablona/makra/zvýraznění-syntaxe.xsl Fri Jan 06 20:48:42 2012 +0100
11.3 @@ -0,0 +1,50 @@
11.4 +<?xml version="1.0" encoding="UTF-8"?>
11.5 +<xsl:stylesheet version="2.0"
11.6 + xmlns="http://www.w3.org/1999/xhtml"
11.7 + xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
11.8 + xmlns:j="java:cz.frantovo.xmlWebGenerator.Funkce"
11.9 + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
11.10 + exclude-result-prefixes="m j">
11.11 +
11.12 + <!--
11.13 + Zvýraznění syntaxe zdrojového kódu
11.14 + **********************************
11.15 + Ukázky zdrojového kódu budou mít zvýrazněnou syntaxi pro větší přehlednost.
11.16 + *
11.17 + @jazyk programovací jazyk, ve kterém je daný zdrojový kód
11.18 + @src zdrojový kód nemusí být uvnitř elementu, ale můžeme se odkázat na externí soubor
11.19 + @odkaz nastavíme hodnotu „ano“, pokud chceme vložit odkaz na soubor je stažení
11.20 + -->
11.21 + <xsl:template match="m:pre">
11.22 + <xsl:call-template name="zvýrazniZdroják">
11.23 + <xsl:with-param name="zdroják" select="text()"/>
11.24 + </xsl:call-template>
11.25 + </xsl:template>
11.26 +
11.27 + <xsl:template match="m:pre[@src]">
11.28 + <xsl:call-template name="zvýrazniZdroják">
11.29 + <xsl:with-param name="zdroják" select="unparsed-text(concat('../', $vstup, @src))"/>
11.30 + </xsl:call-template>
11.31 + <xsl:if test="@odkaz = 'ano'">
11.32 + <p class="zdroják-ke-stažení">
11.33 + <span>Stáhnout: <a href="{encode-for-uri(@src)}"><xsl:value-of select="@src"/></a></span>
11.34 + </p>
11.35 + </xsl:if>
11.36 + </xsl:template>
11.37 +
11.38 + <xsl:template name="zvýrazniZdroják">
11.39 + <xsl:param name="zdroják"/>
11.40 + <xsl:variable name="zvýrazněnýZdroják" select="j:zvýrazniSyntaxi($zdroják, @jazyk)"/>
11.41 + <xsl:choose>
11.42 + <xsl:when test="$zvýrazněnýZdroják">
11.43 + <xsl:comment>Následující kód je v jazyce <xsl:value-of select="@jazyk"/></xsl:comment>
11.44 + <xsl:value-of disable-output-escaping="yes" select="$zvýrazněnýZdroják"/>
11.45 + </xsl:when>
11.46 + <xsl:otherwise>
11.47 + <xsl:message>Zvýraznění syntaxe se nezdařilo → bude vložen původní nezvýrazněný kód.</xsl:message>
11.48 + <pre><xsl:value-of select="$zdroják"/></pre>
11.49 + </xsl:otherwise>
11.50 + </xsl:choose>
11.51 + </xsl:template>
11.52 +
11.53 +</xsl:stylesheet>
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
12.2 +++ b/šablona/stránka-společné.xsl Fri Jan 06 20:48:42 2012 +0100
12.3 @@ -0,0 +1,56 @@
12.4 +<?xml version="1.0" encoding="UTF-8"?>
12.5 +<xsl:stylesheet version="2.0"
12.6 + xmlns="http://www.w3.org/1999/xhtml"
12.7 + xmlns:h="http://www.w3.org/1999/xhtml"
12.8 + xmlns:s="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana"
12.9 + xmlns:k="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/konfigurace"
12.10 + xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
12.11 + xmlns:j="java:cz.frantovo.xmlWebGenerator.Funkce"
12.12 + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
12.13 + xmlns:fn="http://www.w3.org/2005/xpath-functions"
12.14 + xmlns:svg="http://www.w3.org/2000/svg"
12.15 + xmlns:xs="http://www.w3.org/2001/XMLSchema"
12.16 + exclude-result-prefixes="fn h s k m j xs">
12.17 +
12.18 + <xsl:param name="vstup" select="'../vstup/'"/>
12.19 + <xsl:param name="výstup" select="'../výstup/'"/>
12.20 + <xsl:param name="vstupníPřípona" select="'.xml'"/>
12.21 + <xsl:param name="výstupníPřípona" select="'.xhtml'"/>
12.22 + <xsl:param name="vsuvkováPřípona" select="'.inc'"/>
12.23 + <xsl:param name="podporaZaostalýchProhlížečů" select="false()" as="xs:boolean"/>
12.24 +
12.25 + <xsl:variable name="konfigurace" select="document(concat($vstup, 'web.conf'))"/>
12.26 +
12.27 + <xsl:include href=".makra-seznam.xsl"/>
12.28 +
12.29 +
12.30 + <!-- Kopírujeme elementy, ale vynecháme nepoužité xmlns deklarace: -->
12.31 + <xsl:template match="*">
12.32 + <xsl:element name="{name()}">
12.33 + <xsl:copy-of select="@*"/>
12.34 + <xsl:apply-templates/>
12.35 + </xsl:element>
12.36 + </xsl:template>
12.37 +
12.38 + <!-- Varování pro případ, že jsme v režimu podpory pro zaostalé prohlížeče -->
12.39 + <xsl:template name="varováníRetardace">
12.40 + <xsl:if test="$podporaZaostalýchProhlížečů">
12.41 + <xsl:comment>
12.42 + Generátor byl spuštěn v režimu podpory zaostalých prohlížečů.
12.43 + Uživatelům doporučujeme upgrade na skutečný WWW prohlížeč,
12.44 + jako je např. Firefox nebo Chromium (případně Opera či Safari).
12.45 + </xsl:comment>
12.46 + </xsl:if>
12.47 + </xsl:template>
12.48 +
12.49 + <!-- Odkazy na JavaScript a kaskádové styly -->
12.50 + <xsl:template match="k:web/k:js">
12.51 + <script src="{text()}" type="text/javascript">
12.52 + <xsl:call-template name="varováníRetardace"/>
12.53 + </script>
12.54 + </xsl:template>
12.55 + <xsl:template match="k:web/k:css">
12.56 + <link href="{text()}" type="text/css" rel="StyleSheet" />
12.57 + </xsl:template>
12.58 +
12.59 +</xsl:stylesheet>
13.1 --- a/šablona/stránka.xsl Thu Jan 05 16:24:56 2012 +0100
13.2 +++ b/šablona/stránka.xsl Fri Jan 06 20:48:42 2012 +0100
13.3 @@ -17,19 +17,13 @@
13.4 encoding="UTF-8"
13.5 doctype-public="-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"
13.6 doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"/>
13.7 -
13.8 - <xsl:param name="vstup" select="'../vstup/'"/>
13.9 - <xsl:param name="výstup" select="'../výstup/'"/>
13.10 - <xsl:param name="vstupníPřípona" select="'.xml'"/>
13.11 - <xsl:param name="výstupníPřípona" select="'.xhtml'"/>
13.12 - <xsl:param name="vsuvkováPřípona" select="'.inc'"/>
13.13 - <xsl:param name="podporaZaostalýchProhlížečů" select="false()" as="xs:boolean"/>
13.14 + <xsl:include href="stránka-společné.xsl"/>
13.15
13.16 - <xsl:include href="makra.xsl"/>
13.17 -
13.18 - <!-- Celý dokument: -->
13.19 + <!--
13.20 + Šablona stránky
13.21 + ***************
13.22 + -->
13.23 <xsl:template match="/">
13.24 - <xsl:variable name="konfigurace" select="document(concat($vstup, 'web.conf'))"/>
13.25 <html>
13.26 <head>
13.27 <xsl:if test="$podporaZaostalýchProhlížečů">
13.28 @@ -39,7 +33,7 @@
13.29 <link title="Novinky (Atom)" href="atom.xml" type="application/atom+xml" rel="alternate"/>
13.30 <link title="Novinky (RSS)" href="rss.xml" type="application/rss+xml" rel="alternate"/>
13.31 <xsl:apply-templates select="$konfigurace/k:web/k:js"/>
13.32 - <xsl:apply-templates select="$konfigurace/k:web/k:css"/>
13.33 + <xsl:apply-templates select="$konfigurace/k:web/k:css"/>
13.34 </head>
13.35 <body>
13.36 <div id="tělo">
13.37 @@ -70,184 +64,5 @@
13.38 </body>
13.39 </html>
13.40 </xsl:template>
13.41 -
13.42 - <!-- Kopírujeme elementy, ale vynecháme nepoužité xmlns deklarace: -->
13.43 - <xsl:template match="*">
13.44 - <xsl:element name="{name()}">
13.45 - <xsl:copy-of select="@*"/>
13.46 - <xsl:apply-templates/>
13.47 - </xsl:element>
13.48 - </xsl:template>
13.49
13.50 - <!-- Varování pro případ, že jsme v režimu podpory pro zaostalé prohlížeče -->
13.51 - <xsl:template name="varováníRetardace">
13.52 - <xsl:if test="$podporaZaostalýchProhlížečů">
13.53 - <xsl:comment>
13.54 - Generátor byl spuštěn v režimu podpory zaostalých prohlížečů.
13.55 - Uživatelům doporučujeme upgrade na skutečný WWW prohlížeč,
13.56 - jako je např. Firefox nebo Chromium (případně Opera či Safari).
13.57 - </xsl:comment>
13.58 - </xsl:if>
13.59 - </xsl:template>
13.60 -
13.61 - <!-- Odkazy na JavaScript a kaskádové styly -->
13.62 - <xsl:template match="k:web/k:js">
13.63 - <script src="{text()}" type="text/javascript">
13.64 - <xsl:call-template name="varováníRetardace"/>
13.65 - </script>
13.66 - </xsl:template>
13.67 - <xsl:template match="k:web/k:css">
13.68 - <link href="{text()}" type="text/css" rel="StyleSheet" />
13.69 - </xsl:template>
13.70 -
13.71 - <!--
13.72 - TODO: makra vyčlenit do samostatných souborů
13.73 - -->
13.74 -
13.75 - <!--
13.76 - Makro pro převod interních odkazů:
13.77 - - doplnění správné přípony
13.78 - - URL kódování znaků
13.79 - -->
13.80 - <xsl:template match="m:a">
13.81 - <a>
13.82 - <xsl:copy-of select="@*"/>
13.83 - <xsl:attribute name="href">
13.84 - <xsl:value-of select="fn:encode-for-uri(concat(@href, $výstupníPřípona))"/>
13.85 - </xsl:attribute>
13.86 - <xsl:apply-templates/>
13.87 - </a>
13.88 - </xsl:template>
13.89 -
13.90 - <!--
13.91 - Makro pro zvýraznění syntaxe:
13.92 - -->
13.93 - <xsl:template match="m:pre">
13.94 - <xsl:call-template name="zvýrazniZdroják">
13.95 - <xsl:with-param name="zdroják" select="text()"/>
13.96 - </xsl:call-template>
13.97 - </xsl:template>
13.98 -
13.99 - <xsl:template match="m:pre[@src]">
13.100 - <xsl:call-template name="zvýrazniZdroják">
13.101 - <xsl:with-param name="zdroják" select="unparsed-text(concat($vstup, @src))"/>
13.102 - </xsl:call-template>
13.103 - <xsl:if test="@odkaz = 'ano'">
13.104 - <p class="zdroják-ke-stažení">
13.105 - <span>Stáhnout: <a href="{encode-for-uri(@src)}"><xsl:value-of select="@src"/></a></span>
13.106 - </p>
13.107 - </xsl:if>
13.108 - </xsl:template>
13.109 -
13.110 - <xsl:template name="zvýrazniZdroják">
13.111 - <xsl:param name="zdroják"/>
13.112 - <xsl:variable name="zvýrazněnýZdroják" select="j:zvýrazniSyntaxi($zdroják, @jazyk)"/>
13.113 - <xsl:choose>
13.114 - <xsl:when test="$zvýrazněnýZdroják">
13.115 - <xsl:comment>Následující kód je v jazyce <xsl:value-of select="@jazyk"/></xsl:comment>
13.116 - <xsl:value-of disable-output-escaping="yes" select="$zvýrazněnýZdroják"/>
13.117 - </xsl:when>
13.118 - <xsl:otherwise>
13.119 - <xsl:message>Zvýraznění syntaxe se nezdařilo → bude vložen původní nezvýrazněný kód.</xsl:message>
13.120 - <pre><xsl:value-of select="$zdroják"/></pre>
13.121 - </xsl:otherwise>
13.122 - </xsl:choose>
13.123 - </xsl:template>
13.124 -
13.125 - <!--
13.126 - Makro pro diagramy/grafy
13.127 - -->
13.128 - <xsl:template match="m:diagram">
13.129 - <xsl:variable name="souborDiagramu" select="j:vytvořDiagram(text(), @orientace = 'vodorovně')"/>
13.130 - <xsl:choose>
13.131 - <xsl:when test="$souborDiagramu">
13.132 - <div class="diagram">
13.133 - <a href="{$souborDiagramu}.svg">
13.134 - <img
13.135 - src="{$souborDiagramu}.svg"
13.136 - alt="Diagram {$souborDiagramu} | pokud nevidíte obrázek, váš prohlížeč stojí za starou bačkoru"
13.137 - title="{@nadpis} (klikněte pro zobrazení samotného diagramu)"/>
13.138 - </a>
13.139 - <!-- TODO: SVG+PNG
13.140 - <xsl:variable name="svgDiagramu" select="document(concat($výstup, $souborDiagramu, '.svg'))/svg:svg"/>
13.141 - <object
13.142 - data="{$souborDiagramu}.svg"
13.143 - type="image/svg+xml"
13.144 - style="width: {$svgDiagramu/@width}; height: {$svgDiagramu/@height}">
13.145 - <img src="{$souborDiagramu}.png" alt="Diagram {$souborDiagramu}"/>
13.146 - </object>
13.147 - -->
13.148 - <xsl:if test="@nadpis">
13.149 - <p class="nadpis"><xsl:value-of select="@nadpis"/></p>
13.150 - </xsl:if>
13.151 - </div>
13.152 - </xsl:when>
13.153 - <xsl:otherwise>
13.154 - <xsl:message terminate="yes">Při vytváření diagramu došlo k chybě.</xsl:message>
13.155 - </xsl:otherwise>
13.156 - </xsl:choose>
13.157 - </xsl:template>
13.158 -
13.159 - <!--
13.160 - Makro pro Wiki syntaxi
13.161 - -->
13.162 - <xsl:template match="m:wiki">
13.163 - <xsl:variable name="wikiXHTML" select="j:formátujWiki(text(), @syntaxe)"/>
13.164 - <xsl:choose>
13.165 - <xsl:when test="$wikiXHTML">
13.166 - <xsl:value-of select="$wikiXHTML" disable-output-escaping="yes"/>
13.167 - </xsl:when>
13.168 - <xsl:otherwise>
13.169 - <xsl:message terminate="yes">Při zpracování wiki syntaxe došlo k chybě.</xsl:message>
13.170 - </xsl:otherwise>
13.171 - </xsl:choose>
13.172 - </xsl:template>
13.173 -
13.174 - <!--
13.175 - Makro pro vycpávkový text
13.176 - -->
13.177 - <xsl:template match="m:vycpávka">
13.178 - <!--
13.179 - TODO: stáhnout jen jednou, uložit do souboru a při dalších generováních brát z něj.
13.180 - -->
13.181 - <xsl:message>Stahuji vycpávkový text z http://lipsum.lipsum.com/</xsl:message>
13.182 - <xsl:variable name="prostýText" select="document(concat('http://lipsum.lipsum.com/feed/xml?amount=', @odstavců, '&what=paragraphs'))/feed/lipsum"/>
13.183 - <xsl:for-each select="fn:tokenize($prostýText, '\n')">
13.184 - <p><xsl:value-of select="."/></p>
13.185 - </xsl:for-each>
13.186 - </xsl:template>
13.187 -
13.188 - <!--
13.189 - Makro pro jednoduché tabulky
13.190 - -->
13.191 - <xsl:template match="m:tabulka">
13.192 - <table>
13.193 - <xsl:variable name="data" select="replace(replace(text(), '^\s+', ''),'\s+$','')"/>
13.194 - <xsl:variable name="hlavička" select="substring-before($data, ' ')"/>
13.195 - <xsl:variable name="tělo" select="substring-after($data, ' ')"/>
13.196 - <thead>
13.197 - <tr>
13.198 - <xsl:for-each select="tokenize($hlavička, '\t+')">
13.199 - <xsl:if test="normalize-space(.)">
13.200 - <td><xsl:value-of select="normalize-space(.)"/></td>
13.201 - </xsl:if>
13.202 - </xsl:for-each>
13.203 - </tr>
13.204 - </thead>
13.205 - <tbody>
13.206 - <xsl:for-each select="tokenize($tělo, '\n')">
13.207 - <xsl:if test="normalize-space(.)">
13.208 - <tr>
13.209 - <xsl:for-each select="tokenize(., '\t+')">
13.210 - <xsl:if test="normalize-space(.)">
13.211 - <td><xsl:value-of select="normalize-space(.)"/></td>
13.212 - </xsl:if>
13.213 - </xsl:for-each>
13.214 - </tr>
13.215 - </xsl:if>
13.216 - </xsl:for-each>
13.217 - </tbody>
13.218 - </table>
13.219 - </xsl:template>
13.220 -
13.221 </xsl:stylesheet>