Ověřování uživatelů: uživatele budeme mít jako objekt, ne jen jako String/boolean – aby šel rozšiřovat o případné další informace.
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:xsl="http://www.w3.org/1999/XSL/Transform"
6 xmlns:fn="http://www.w3.org/2005/xpath-functions"
7 xmlns:svg="http://www.w3.org/2000/svg"
8 xmlns:xs="http://www.w3.org/2001/XMLSchema"
9 exclude-result-prefixes="fn h xs">
14 doctype-public="-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"/><!--
15 doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"/>-->
18 <xsl:param name="title"/>
19 <xsl:param name="headComment"/>
20 <xsl:param name="isRoot"/>
21 <xsl:param name="urlBase"/>
22 <xsl:param name="wwwRead"/>
23 <xsl:param name="wwwPost"/>
26 <!-- Celý dokument -->
27 <xsl:template match="/">
30 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
31 <xsl:if test="$urlBase">
32 <base href="{$urlBase}"/>
34 <xsl:if test="$title">
35 <title><xsl:value-of select="$title"/></title>
37 <xsl:if test="$headComment">
38 <xsl:comment><xsl:value-of select="$headComment"/></xsl:comment>
40 <style type="text/css">
42 font-family: sans-serif;
47 border-top: 2px solid grey;
53 background-color: #eee;
57 border-left: 3px solid silver;
61 background-color: #eee;
64 border-left: 3px solid #a00;
77 <xsl:if test="$title and $isRoot">
78 <h1><xsl:value-of select="$title"/></h1>
81 <xsl:apply-templates select="h:html/h:body"/>
83 <xsl:if test="$wwwRead or $wwwPost">
84 <div class="wwwLinks">
85 <p>Přístup přes síť www:</p>
87 <xsl:if test="$wwwRead"><li><a href="{$wwwRead}">číst tento příspěvek</a></li></xsl:if>
88 <xsl:if test="$wwwPost"><li><a href="{$wwwPost}">odpovědět na tento příspěvek</a></li></xsl:if>
98 <xsl:template match="h:a">
99 <xsl:element name="a">
100 <xsl:if test="@href"><xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute></xsl:if>
101 <xsl:if test="@title"><xsl:attribute name="title"><xsl:value-of select="@title"/></xsl:attribute></xsl:if>
102 <xsl:if test="@id"><xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute></xsl:if>
103 <xsl:apply-templates select="node()"/>
109 <xsl:template match="h:img">
110 <xsl:element name="img">
111 <xsl:if test="@src"><xsl:attribute name="src"><xsl:value-of select="@src"/></xsl:attribute></xsl:if>
112 <xsl:if test="@title"><xsl:attribute name="title"><xsl:value-of select="@title"/></xsl:attribute></xsl:if>
113 <xsl:if test="@alt"><xsl:attribute name="alt"><xsl:value-of select="@alt"/></xsl:attribute></xsl:if>
119 <xsl:template match="h:abbr">
120 <abbr title="{@title}"><xsl:apply-templates/></abbr>
125 <xsl:template match="h:blockquote[not(h:p)]">
128 <xsl:copy-of select="node()"/>
134 <xsl:template match="h:b">
136 <xsl:apply-templates select="node()"/>
140 <!-- Skloněné písmo -->
141 <xsl:template match="h:i">
143 <xsl:apply-templates select="node()"/>
149 Další povolené značky (jejich případné atributy zahodíme).
150 Ostatní elementy odfiltrujeme (zbude z nich jen text).
152 <xsl:template match="*">
176 name() = 'blockquote'">
177 <xsl:element name="{name()}">
178 <xsl:apply-templates select="node()"/>
182 <xsl:apply-templates/>