Changeset 10:4e70453a027f

Show
Ignore:
Timestamp:
04/03/11 20:12:33 (13 years ago)
Author:
František Kučera <franta-hg@…>
Branch:
default
Message:

Ukázka uživatelského „makra“ a vkládání odkazů na CSS a JS soubory.

Files:
4 modified

Legend:

Unmodified
Added
Removed
  • build.xml

    r9 r10  
    1313        <target name="stránky" description="Vygeneruje XHTML webové stránky.">           
    1414                <xslt basedir="${vstup}" destdir="${výstup}" includes="*.xml" extension=".xhtml" style="${šablona}/stránka.xsl"> 
     15                        <param name="konfigurák" expression="../${vstup}/web.conf"/> 
    1516                        <classpath location="/usr/share/java/saxonb-9.0.jar"/> 
    1617                        <classpath location="${funkce}"/> 
  • vstup/produkty.xml

    r4 r10  
    1 <stránka xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/prostor"> 
     1<stránka 
     2        xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/prostor" 
     3        xmlns:g="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/prostor"> 
    24        <nadpis>Produkty</nadpis> 
    35        <perex>Co vyrábíme.</perex> 
     
    810                    naše produkty… 
    911                </p> 
     12                 
     13                <p>Vhodnost zvířete do domácnosti:</p> 
     14                <g:měřák hodnota="80"/> 
    1015    </text> 
    1116 
  • vstup/web.conf

    r6 r10  
    66                <email>nereknu_nechci_spam@example.com</email> 
    77        </autor> 
     8         
     9        <!-- TODO: XML Schéma a popisy v něm--> 
     10         
     11        <!-- Základní URL našeho webu, mělo by končit pomlčkou – pro generování RSS/Atom --> 
    812        <url>https://trac.frantovo.cz/xml-web-generator/</url> 
     13         
     14        <!-- ID našeho webu (každý by si měl vygenerovat svoje) – pro Atom --> 
    915        <uuid>399a714c-956e-444c-a8f4-afe8f0df802a</uuid> 
     16         
     17        <!-- Kód našeho webu, použije se jako součást identifikátoru položek v RSS/Atomu --> 
    1018        <kod>PokusnyWeb123</kod> 
    1119         
     20        <!-- 
     21                Odkazy na JavaScripty a kaskádové styly, které se vloží do hlavičky každé stránky. 
     22                Můžeme jich uvést libovolné množství. 
     23        --> 
     24        <css>css/styl.css</css> 
     25        <js>js/skript.js</js> 
     26         
    1227</web> 
  • šablona/stránka.xsl

    r8 r10  
    1414                doctype-public="-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"  
    1515                doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"/> 
     16                 
     17        <xsl:param name="konfigurák"/> 
    1618         
    1719        <!-- Celý dokument: --> 
    1820        <xsl:template match="/"> 
     21                <xsl:variable name="konfigurace" select="document($konfigurák)"/> 
    1922                <html> 
    2023                        <head> 
    2124                                <title><xsl:value-of select="g:stránka/g:nadpis"/></title> 
    2225                                <link title="Novinky (Atom)" href="atom.xml" type="application/atom+xml" rel="alternate"/> 
    23                                 <link title="Novinky (RSS)"  href="rss.xml"  type="application/rss+xml"  rel="alternate"/>                               
     26                                <link title="Novinky (RSS)"  href="rss.xml"  type="application/rss+xml"  rel="alternate"/> 
     27                                <xsl:apply-templates select="$konfigurace/g:web/g:js"/> 
     28                                <xsl:apply-templates select="$konfigurace/g:web/g:css"/>                                 
    2429                        </head> 
    2530                        <body> 
     
    5055                </xsl:element> 
    5156    </xsl:template> 
     57     
     58    <xsl:template match="g:web/g:js"> 
     59        <script src="{text()}" type="text/javascript" /> 
     60    </xsl:template> 
     61    <xsl:template match="g:web/g:css"> 
     62        <link href="{text()}" type="text/css" rel="StyleSheet" /> 
     63    </xsl:template> 
     64     
     65    <!-- Ukázka vlastního „makra“: --> 
     66    <xsl:template match="g:měřák"> 
     67        <xsl:variable name="hodnota" select="number(@hodnota)"/> 
     68        <xsl:variable name="šířkaGrafu" select="128"/> 
     69                <xsl:choose>                     
     70                        <xsl:when test="$hodnota &gt;= 0 and $hodnota &lt;= 100">                                
     71                                <div style="border: 1px solid black; width: {$šířkaGrafu}px; height: 16px; padding: 0px; text-align: center; background-color: #cfc;">                   
     72                                        <div style="margin: 0px; background-color: #A4E666; width: {@hodnota*$šířkaGrafu div 100}px; height: 16px;"/> 
     73                                        <p style="margin: 0px; font-size: 12px; position: relative; top: -15px;"> 
     74                                                <xsl:value-of select="@hodnota"/>/100 
     75                                        </p>     
     76                                </div> 
     77                        </xsl:when> 
     78                        <xsl:otherwise> 
     79                                <xsl:message terminate="yes">Hodnota měřáku musí být nejméně 0 a nejvíce 100 (udává procenta).</xsl:message> 
     80                        </xsl:otherwise> 
     81                </xsl:choose> 
     82        </xsl:template> 
    5283 
    5384</xsl:stylesheet>