vstup/makra/hg-verze.xsl
author František Kučera <franta-hg@frantovo.cz>
Thu, 05 Jul 2012 19:10:42 +0200
changeset 107 379a2a893fd1
child 108 8d9cab64c335
permissions -rw-r--r--
#20 Skriptování: Makra ve skriptech a Skripty v makrech + výpis verzí z Mercurialu.
franta-hg@107
     1
<?xml version="1.0" encoding="UTF-8"?>
franta-hg@107
     2
<xsl:stylesheet version="2.0"
franta-hg@107
     3
	xmlns="http://www.w3.org/1999/xhtml"
franta-hg@107
     4
	xmlns:h="http://www.w3.org/1999/xhtml"
franta-hg@107
     5
	xmlns:s="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana"
franta-hg@107
     6
	xmlns:k="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/konfigurace"
franta-hg@107
     7
	xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"
franta-hg@107
     8
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
franta-hg@107
     9
	xmlns:fn="http://www.w3.org/2005/xpath-functions"
franta-hg@107
    10
	xmlns:svg="http://www.w3.org/2000/svg"
franta-hg@107
    11
	xmlns:xs="http://www.w3.org/2001/XMLSchema"
franta-hg@107
    12
	exclude-result-prefixes="fn h s k m xs">
franta-hg@107
    13
franta-hg@107
    14
	<!-- Vypíše verze z verzovacího systému: -->
franta-hg@107
    15
	<xsl:template match="m:hg-verze">
franta-hg@107
    16
		<xsl:variable name="zadáníSkriptu">
franta-hg@107
    17
			<!--
franta-hg@107
    18
				TODO:
franta-hg@107
    19
				Zahazovat XML deklaraci bychom mohli v Javě u všech skriptů… 
franta-hg@107
    20
				Nicméně současná dohoda je taková, že skripty vracejí fragment, ne celý dokument,
franta-hg@107
    21
				což má výhodu v tom, že můžou vrátit kus textu a nějakou tu značku
franta-hg@107
    22
				a nemusí to být zabalené v kořenovém elementu.
franta-hg@107
    23
				
franta-hg@107
    24
			-->
franta-hg@107
    25
			<m:skript jazyk="bash" výstup="xml">hg log --style xml | awk '{if(NR&gt;1)print}';</m:skript>
franta-hg@107
    26
			<!--
franta-hg@107
    27
				Také bychom filtrování mohli provés ve skriptu…
franta-hg@107
    28
				hg log … | xpath -e "//logentry[tag[starts-with(., 'v')]]" 2>/dev/null
franta-hg@107
    29
				 …ale to by bylo trochu zbytečně pracné.
franta-hg@107
    30
			-->
franta-hg@107
    31
		</xsl:variable>
franta-hg@107
    32
franta-hg@107
    33
		<xsl:variable name="výstupSkriptu">
franta-hg@107
    34
			<xsl:apply-templates select="$zadáníSkriptu/*"/>
franta-hg@107
    35
		</xsl:variable>
franta-hg@107
    36
franta-hg@107
    37
		<table>
franta-hg@107
    38
			<thead>
franta-hg@107
    39
				<tr>
franta-hg@107
    40
					<td>Číslo verze</td>
franta-hg@107
    41
					<td>Datum vydání</td>
franta-hg@107
    42
				</tr>
franta-hg@107
    43
			</thead>
franta-hg@107
    44
			<tbody style="text-align: right;">
franta-hg@107
    45
				<!--
franta-hg@107
    46
					Výstup skriptu se bude nacházet v XHTML jmenném prostoru, což je obvykle v pořádku,
franta-hg@107
    47
					ale pro mezivýsledky to není úplně vhodné.
franta-hg@107
    48
				-->
franta-hg@107
    49
				<xsl:for-each select="$výstupSkriptu/h:log/h:logentry[h:tag[starts-with(text(), 'v')]]">
franta-hg@107
    50
					<tr>
franta-hg@107
    51
						<td><xsl:value-of select="substring(h:tag/text(), 2)"/></td>
franta-hg@107
    52
						<td><xsl:value-of select="format-dateTime(h:date, '[D]. [M]. [Y0001]')"/></td>
franta-hg@107
    53
					</tr>
franta-hg@107
    54
				</xsl:for-each>
franta-hg@107
    55
			</tbody>
franta-hg@107
    56
		</table>
franta-hg@107
    57
	</xsl:template>
franta-hg@107
    58
franta-hg@107
    59
</xsl:stylesheet>
franta-hg@107
    60