vstup/makra/hg-verze.xsl
changeset 107 379a2a893fd1
child 108 8d9cab64c335
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/vstup/makra/hg-verze.xsl	Thu Jul 05 19:10:42 2012 +0200
     1.3 @@ -0,0 +1,60 @@
     1.4 +<?xml version="1.0" encoding="UTF-8"?>
     1.5 +<xsl:stylesheet version="2.0"
     1.6 +	xmlns="http://www.w3.org/1999/xhtml"
     1.7 +	xmlns:h="http://www.w3.org/1999/xhtml"
     1.8 +	xmlns:s="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana"
     1.9 +	xmlns:k="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/konfigurace"
    1.10 +	xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
    1.11 +	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    1.12 +	xmlns:fn="http://www.w3.org/2005/xpath-functions"
    1.13 +	xmlns:svg="http://www.w3.org/2000/svg"
    1.14 +	xmlns:xs="http://www.w3.org/2001/XMLSchema"
    1.15 +	exclude-result-prefixes="fn h s k m xs">
    1.16 +
    1.17 +	<!-- Vypíše verze z verzovacího systému: -->
    1.18 +	<xsl:template match="m:hg-verze">
    1.19 +		<xsl:variable name="zadáníSkriptu">
    1.20 +			<!--
    1.21 +				TODO:
    1.22 +				Zahazovat XML deklaraci bychom mohli v Javě u všech skriptů… 
    1.23 +				Nicméně současná dohoda je taková, že skripty vracejí fragment, ne celý dokument,
    1.24 +				což má výhodu v tom, že můžou vrátit kus textu a nějakou tu značku
    1.25 +				a nemusí to být zabalené v kořenovém elementu.
    1.26 +				
    1.27 +			-->
    1.28 +			<m:skript jazyk="bash" výstup="xml">hg log --style xml | awk '{if(NR&gt;1)print}';</m:skript>
    1.29 +			<!--
    1.30 +				Také bychom filtrování mohli provés ve skriptu…
    1.31 +				hg log … | xpath -e "//logentry[tag[starts-with(., 'v')]]" 2>/dev/null
    1.32 +				 …ale to by bylo trochu zbytečně pracné.
    1.33 +			-->
    1.34 +		</xsl:variable>
    1.35 +
    1.36 +		<xsl:variable name="výstupSkriptu">
    1.37 +			<xsl:apply-templates select="$zadáníSkriptu/*"/>
    1.38 +		</xsl:variable>
    1.39 +
    1.40 +		<table>
    1.41 +			<thead>
    1.42 +				<tr>
    1.43 +					<td>Číslo verze</td>
    1.44 +					<td>Datum vydání</td>
    1.45 +				</tr>
    1.46 +			</thead>
    1.47 +			<tbody style="text-align: right;">
    1.48 +				<!--
    1.49 +					Výstup skriptu se bude nacházet v XHTML jmenném prostoru, což je obvykle v pořádku,
    1.50 +					ale pro mezivýsledky to není úplně vhodné.
    1.51 +				-->
    1.52 +				<xsl:for-each select="$výstupSkriptu/h:log/h:logentry[h:tag[starts-with(text(), 'v')]]">
    1.53 +					<tr>
    1.54 +						<td><xsl:value-of select="substring(h:tag/text(), 2)"/></td>
    1.55 +						<td><xsl:value-of select="format-dateTime(h:date, '[D]. [M]. [Y0001]')"/></td>
    1.56 +					</tr>
    1.57 +				</xsl:for-each>
    1.58 +			</tbody>
    1.59 +		</table>
    1.60 +	</xsl:template>
    1.61 +
    1.62 +</xsl:stylesheet>
    1.63 +