root/vstup/makra/hg-verze.xsl @ 107:379a2a893fd1

Revision 107:379a2a893fd1, 2.1 KB (checked in by František Kučera <franta-hg@…>, 12 years ago)

#20 Skriptování: Makra ve skriptech a Skripty v makrech + výpis verzí z Mercurialu.

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