author | František Kučera <franta-hg@frantovo.cz> |
Sat, 12 Sep 2020 13:20:21 +0200 | |
branch | v_0 |
changeset 315 | d4c2968a391f |
parent 111 | d59023a42d4b |
permissions | -rw-r--r-- |
51
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
61
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
2 |
<!-- |
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
3 |
XML Web generátor – program na generování webových stránek |
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
4 |
Copyright © 2012 František Kučera (frantovo.cz) |
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
5 |
|
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
6 |
This program is free software: you can redistribute it and/or modify |
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
7 |
it under the terms of the GNU General Public License as published by |
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
8 |
the Free Software Foundation, either version 3 of the License, or |
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
9 |
(at your option) any later version. |
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
10 |
|
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
11 |
This program is distributed in the hope that it will be useful, |
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
12 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
13 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
14 |
GNU General Public License for more details. |
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
15 |
|
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
16 |
You should have received a copy of the GNU General Public License |
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
17 |
along with this program. If not, see <http://www.gnu.org/licenses/>. |
9503eb8377f1
Licence: informace o licenci v každém souboru.
František Kučera <franta-hg@frantovo.cz>
parents:
51
diff
changeset
|
18 |
--> |
51
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
19 |
<xsl:stylesheet version="2.0" |
71
895757141bff
Funkce pro načítání textových souborů ze vstupního adresáře (vhodné pro @src).
František Kučera <franta-hg@frantovo.cz>
parents:
70
diff
changeset
|
20 |
xmlns="http://www.w3.org/1999/xhtml" |
895757141bff
Funkce pro načítání textových souborů ze vstupního adresáře (vhodné pro @src).
František Kučera <franta-hg@frantovo.cz>
parents:
70
diff
changeset
|
21 |
xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro" |
895757141bff
Funkce pro načítání textových souborů ze vstupního adresáře (vhodné pro @src).
František Kučera <franta-hg@frantovo.cz>
parents:
70
diff
changeset
|
22 |
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
895757141bff
Funkce pro načítání textových souborů ze vstupního adresáře (vhodné pro @src).
František Kučera <franta-hg@frantovo.cz>
parents:
70
diff
changeset
|
23 |
exclude-result-prefixes="m"> |
70
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
24 |
|
51
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
25 |
<!-- |
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
26 |
Jednoduché tabulky |
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
27 |
****************** |
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
28 |
Data zadáváme do těla elementu. |
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
29 |
Sloupce oddělujeme tabulátorem (může jich být víc, minimálně však jeden, mezery nestačí). |
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
30 |
První řádek se považuje za záhlaví (nadpisy sloupců). |
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
31 |
* |
70
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
32 |
@src volitelně můžeme data tabulky načítat ze souboru |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
33 |
@oddělovač regulární výraz, který odděluje sloupce – např. „\t+“ pro tabulátory (výchozí pro tabulky vložené přímo do stránky) nebo „;“ pro středník (výchozí pro tabulky načítané ze souboru) |
51
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
34 |
--> |
70
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
35 |
<xsl:template match="m:tabulka"> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
36 |
<xsl:call-template name="vykresliTabulku"> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
37 |
<xsl:with-param name="zadání" select="text()"/> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
38 |
<xsl:with-param name="oddělovač" select="(@oddělovač, '\t+')[1]"/> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
39 |
</xsl:call-template> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
40 |
</xsl:template> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
41 |
|
111
d59023a42d4b
#20 Skriptování: vnořování maker – zadání tabulky nebo diagramu může být generované skriptem.
František Kučera <franta-hg@frantovo.cz>
parents:
90
diff
changeset
|
42 |
<!-- Skript je potřeba interpretovat ještě před tabulkou – ostatní makra budou interpretovat uvnitř buněk --> |
d59023a42d4b
#20 Skriptování: vnořování maker – zadání tabulky nebo diagramu může být generované skriptem.
František Kučera <franta-hg@frantovo.cz>
parents:
90
diff
changeset
|
43 |
<xsl:template match="m:tabulka[m:skript]"> |
d59023a42d4b
#20 Skriptování: vnořování maker – zadání tabulky nebo diagramu může být generované skriptem.
František Kučera <franta-hg@frantovo.cz>
parents:
90
diff
changeset
|
44 |
<xsl:variable name="zadání"> |
d59023a42d4b
#20 Skriptování: vnořování maker – zadání tabulky nebo diagramu může být generované skriptem.
František Kučera <franta-hg@frantovo.cz>
parents:
90
diff
changeset
|
45 |
<xsl:apply-templates select="*"/> |
d59023a42d4b
#20 Skriptování: vnořování maker – zadání tabulky nebo diagramu může být generované skriptem.
František Kučera <franta-hg@frantovo.cz>
parents:
90
diff
changeset
|
46 |
</xsl:variable> |
d59023a42d4b
#20 Skriptování: vnořování maker – zadání tabulky nebo diagramu může být generované skriptem.
František Kučera <franta-hg@frantovo.cz>
parents:
90
diff
changeset
|
47 |
<xsl:call-template name="vykresliTabulku"> |
d59023a42d4b
#20 Skriptování: vnořování maker – zadání tabulky nebo diagramu může být generované skriptem.
František Kučera <franta-hg@frantovo.cz>
parents:
90
diff
changeset
|
48 |
<xsl:with-param name="zadání" select="$zadání"/> |
d59023a42d4b
#20 Skriptování: vnořování maker – zadání tabulky nebo diagramu může být generované skriptem.
František Kučera <franta-hg@frantovo.cz>
parents:
90
diff
changeset
|
49 |
<xsl:with-param name="oddělovač" select="(@oddělovač, '\t+')[1]"/> |
d59023a42d4b
#20 Skriptování: vnořování maker – zadání tabulky nebo diagramu může být generované skriptem.
František Kučera <franta-hg@frantovo.cz>
parents:
90
diff
changeset
|
50 |
</xsl:call-template> |
d59023a42d4b
#20 Skriptování: vnořování maker – zadání tabulky nebo diagramu může být generované skriptem.
František Kučera <franta-hg@frantovo.cz>
parents:
90
diff
changeset
|
51 |
</xsl:template> |
d59023a42d4b
#20 Skriptování: vnořování maker – zadání tabulky nebo diagramu může být generované skriptem.
František Kučera <franta-hg@frantovo.cz>
parents:
90
diff
changeset
|
52 |
|
d59023a42d4b
#20 Skriptování: vnořování maker – zadání tabulky nebo diagramu může být generované skriptem.
František Kučera <franta-hg@frantovo.cz>
parents:
90
diff
changeset
|
53 |
<!-- Tabulka načítaná ze souboru: --> |
70
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
54 |
<xsl:template match="m:tabulka[@src]"> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
55 |
<xsl:call-template name="vykresliTabulku"> |
71
895757141bff
Funkce pro načítání textových souborů ze vstupního adresáře (vhodné pro @src).
František Kučera <franta-hg@frantovo.cz>
parents:
70
diff
changeset
|
56 |
<xsl:with-param name="zadání" select="m:načti-textový-soubor(@src)"/> |
70
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
57 |
<xsl:with-param name="oddělovač" select="(@oddělovač, ';')[1]"/> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
58 |
</xsl:call-template> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
59 |
</xsl:template> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
60 |
|
111
d59023a42d4b
#20 Skriptování: vnořování maker – zadání tabulky nebo diagramu může být generované skriptem.
František Kučera <franta-hg@frantovo.cz>
parents:
90
diff
changeset
|
61 |
<!-- TODO: Umožnit použití maker a značek uvnitř buněk tabulky. --> |
70
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
62 |
<xsl:template name="vykresliTabulku"> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
63 |
<xsl:param name="zadání"/> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
64 |
<xsl:param name="oddělovač"/> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
65 |
<table> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
66 |
<xsl:variable name="data" select="replace(replace($zadání, '^\s+', ''),'\s+$','')"/> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
67 |
<xsl:variable name="hlavička" select="substring-before($data, ' ')"/> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
68 |
<xsl:variable name="tělo" select="substring-after($data, ' ')"/> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
69 |
<thead> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
70 |
<tr> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
71 |
<xsl:for-each select="tokenize($hlavička, $oddělovač)"> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
72 |
<xsl:if test="normalize-space(.)"> |
51
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
73 |
<td><xsl:value-of select="normalize-space(.)"/></td> |
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
74 |
</xsl:if> |
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
75 |
</xsl:for-each> |
70
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
76 |
</tr> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
77 |
</thead> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
78 |
<tbody> |
51
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
79 |
<xsl:for-each select="tokenize($tělo, '\n')"> |
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
80 |
<xsl:if test="normalize-space(.)"> |
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
81 |
<tr> |
70
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
82 |
<xsl:for-each select="tokenize(., $oddělovač)"> |
51
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
83 |
<xsl:if test="normalize-space(.)"> |
90
ae439159d833
#15 Tabulky: čísla budou zarovnaná doprava
František Kučera <franta-hg@frantovo.cz>
parents:
71
diff
changeset
|
84 |
<xsl:element name="td"> |
ae439159d833
#15 Tabulky: čísla budou zarovnaná doprava
František Kučera <franta-hg@frantovo.cz>
parents:
71
diff
changeset
|
85 |
<xsl:if test="number(normalize-space(.))"> |
ae439159d833
#15 Tabulky: čísla budou zarovnaná doprava
František Kučera <franta-hg@frantovo.cz>
parents:
71
diff
changeset
|
86 |
<xsl:attribute name="class">číslo</xsl:attribute> |
ae439159d833
#15 Tabulky: čísla budou zarovnaná doprava
František Kučera <franta-hg@frantovo.cz>
parents:
71
diff
changeset
|
87 |
</xsl:if> |
ae439159d833
#15 Tabulky: čísla budou zarovnaná doprava
František Kučera <franta-hg@frantovo.cz>
parents:
71
diff
changeset
|
88 |
<xsl:value-of select="normalize-space(.)"/> |
ae439159d833
#15 Tabulky: čísla budou zarovnaná doprava
František Kučera <franta-hg@frantovo.cz>
parents:
71
diff
changeset
|
89 |
</xsl:element> |
51
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
90 |
</xsl:if> |
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
91 |
</xsl:for-each> |
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
92 |
</tr> |
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
93 |
</xsl:if> |
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
94 |
</xsl:for-each> |
70
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
95 |
</tbody> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
96 |
</table> |
032c62852ef1
Tabulky #15: data tabulky můžeme načítat i ze souboru + můžeme určit oddělovač.
František Kučera <franta-hg@frantovo.cz>
parents:
61
diff
changeset
|
97 |
</xsl:template> |
51
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
98 |
|
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
99 |
</xsl:stylesheet> |
df1f942f7b69
Přesun maker do samostatných souborů #8 + automatické generování seznamu maker
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
100 |