#20 Skriptování: Makra ve skriptech a Skripty v makrech + výpis verzí z Mercurialu.
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">
14 <!-- Vypíše verze z verzovacího systému: -->
15 <xsl:template match="m:hg-verze">
16 <xsl:variable name="zadáníSkriptu">
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.
25 <m:skript jazyk="bash" výstup="xml">hg log --style xml | awk '{if(NR>1)print}';</m:skript>
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é.
33 <xsl:variable name="výstupSkriptu">
34 <xsl:apply-templates select="$zadáníSkriptu/*"/>
44 <tbody style="text-align: right;">
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é.
49 <xsl:for-each select="$výstupSkriptu/h:log/h:logentry[h:tag[starts-with(text(), 'v')]]">
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>