šablona/stránka.xsl
changeset 51 df1f942f7b69
parent 50 ae8222d2c903
child 61 9503eb8377f1
--- a/šablona/stránka.xsl	Thu Jan 05 16:24:56 2012 +0100
+++ b/šablona/stránka.xsl	Fri Jan 06 20:48:42 2012 +0100
@@ -17,19 +17,13 @@
 		encoding="UTF-8"		
 		doctype-public="-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" 
 		doctype-system="http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"/>
-		
-	<xsl:param name="vstup" select="'../vstup/'"/>
-	<xsl:param name="výstup" select="'../výstup/'"/>
-	<xsl:param name="vstupníPřípona" select="'.xml'"/>
-	<xsl:param name="výstupníPřípona" select="'.xhtml'"/>
-	<xsl:param name="vsuvkováPřípona" select="'.inc'"/>
-	<xsl:param name="podporaZaostalýchProhlížečů" select="false()" as="xs:boolean"/>
+	<xsl:include href="stránka-společné.xsl"/>
 	
-	<xsl:include href="makra.xsl"/>
-	
-	<!-- Celý dokument: -->
+	<!-- 
+		Šablona stránky
+		***************
+	-->
 	<xsl:template match="/">
-		<xsl:variable name="konfigurace" select="document(concat($vstup, 'web.conf'))"/>
 		<html>
 			<head>
 				<xsl:if test="$podporaZaostalýchProhlížečů">
@@ -39,7 +33,7 @@
 				<link title="Novinky (Atom)" href="atom.xml" type="application/atom+xml" rel="alternate"/>
 				<link title="Novinky (RSS)"  href="rss.xml"  type="application/rss+xml"  rel="alternate"/>
 				<xsl:apply-templates select="$konfigurace/k:web/k:js"/>
-				<xsl:apply-templates select="$konfigurace/k:web/k:css"/>				
+				<xsl:apply-templates select="$konfigurace/k:web/k:css"/>
 			</head>
 			<body>
 				<div id="tělo">
@@ -70,184 +64,5 @@
 			</body>
 		</html>
 	</xsl:template>
-	
-	<!-- Kopírujeme elementy, ale vynecháme nepoužité xmlns deklarace: -->
-	<xsl:template match="*">
-		<xsl:element name="{name()}">
-			<xsl:copy-of select="@*"/>
-			<xsl:apply-templates/>
-		</xsl:element>
-    </xsl:template>
     
-    <!-- Varování pro případ, že jsme v režimu podpory pro zaostalé prohlížeče -->
-    <xsl:template name="varováníRetardace">
-    	<xsl:if test="$podporaZaostalýchProhlížečů">
-			<xsl:comment>
-				Generátor byl spuštěn v režimu podpory zaostalých prohlížečů.
-				Uživatelům doporučujeme upgrade na skutečný WWW prohlížeč,
-				jako je např. Firefox nebo Chromium (případně Opera či Safari).
-			</xsl:comment>
-    	</xsl:if>
-    </xsl:template>
-
-    <!-- Odkazy na JavaScript a kaskádové styly -->    
-    <xsl:template match="k:web/k:js">    	
-    	<script src="{text()}" type="text/javascript">
-    		<xsl:call-template name="varováníRetardace"/>
-    	</script>
-    </xsl:template>
-    <xsl:template match="k:web/k:css">
-    	<link href="{text()}" type="text/css" rel="StyleSheet" />
-    </xsl:template>
-    
-    <!--
-    	TODO: makra vyčlenit do samostatných souborů
-    -->
-   
-    <!--
-    	Makro pro převod interních odkazů:
-    		- doplnění správné přípony
-    		- URL kódování znaků
-    -->
-    <xsl:template match="m:a">
-    	<a>
-    		<xsl:copy-of select="@*"/>
-    		<xsl:attribute name="href">
-    			<xsl:value-of select="fn:encode-for-uri(concat(@href, $výstupníPřípona))"/>
-    		</xsl:attribute>
-    		<xsl:apply-templates/>
-    	</a>
-    </xsl:template>
-    
-    <!--
-    	Makro pro zvýraznění syntaxe:
-    -->    
-    <xsl:template match="m:pre">
-    	<xsl:call-template name="zvýrazniZdroják">
-    		<xsl:with-param name="zdroják" select="text()"/>
-    	</xsl:call-template>
-    </xsl:template>
-    
-    <xsl:template match="m:pre[@src]">
-    	<xsl:call-template name="zvýrazniZdroják">
-    		<xsl:with-param name="zdroják" select="unparsed-text(concat($vstup, @src))"/>
-    	</xsl:call-template>
-		<xsl:if test="@odkaz = 'ano'">
-			<p class="zdroják-ke-stažení">
-				<span>Stáhnout: <a href="{encode-for-uri(@src)}"><xsl:value-of select="@src"/></a></span>
-			</p>
-		</xsl:if>
-    </xsl:template>
-    
-    <xsl:template name="zvýrazniZdroják">
-    	<xsl:param name="zdroják"/>
-    	<xsl:variable name="zvýrazněnýZdroják" select="j:zvýrazniSyntaxi($zdroják, @jazyk)"/>
-    	<xsl:choose>
-    		<xsl:when test="$zvýrazněnýZdroják">
-    			<xsl:comment>Následující kód je v jazyce <xsl:value-of select="@jazyk"/></xsl:comment>
-    			<xsl:value-of disable-output-escaping="yes" select="$zvýrazněnýZdroják"/>
-    		</xsl:when>
-    		<xsl:otherwise>
-    			<xsl:message>Zvýraznění syntaxe se nezdařilo → bude vložen původní nezvýrazněný kód.</xsl:message>
-    			<pre><xsl:value-of select="$zdroják"/></pre>
-    		</xsl:otherwise>
-    	</xsl:choose>    	
-    </xsl:template>
-    
-    <!--
-    	Makro pro diagramy/grafy
-    -->
-    <xsl:template match="m:diagram">
-    	<xsl:variable name="souborDiagramu" select="j:vytvořDiagram(text(), @orientace = 'vodorovně')"/>
-    	<xsl:choose>
-			<xsl:when test="$souborDiagramu">
-				<div class="diagram">
-					<a href="{$souborDiagramu}.svg">
-						<img
-							src="{$souborDiagramu}.svg" 
-							alt="Diagram {$souborDiagramu} | pokud nevidíte obrázek, váš prohlížeč stojí za starou bačkoru"
-							title="{@nadpis} (klikněte pro zobrazení samotného diagramu)"/>
-					</a>
-					<!-- TODO: SVG+PNG
-					<xsl:variable name="svgDiagramu" select="document(concat($výstup, $souborDiagramu, '.svg'))/svg:svg"/>
-					<object
-						data="{$souborDiagramu}.svg"
-						type="image/svg+xml"
-						style="width: {$svgDiagramu/@width}; height: {$svgDiagramu/@height}">
-							<img src="{$souborDiagramu}.png" alt="Diagram {$souborDiagramu}"/>
-					</object>
-					-->
-					<xsl:if test="@nadpis">
-						<p class="nadpis"><xsl:value-of select="@nadpis"/></p>
-					</xsl:if>
-				</div>
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:message terminate="yes">Při vytváření diagramu došlo k chybě.</xsl:message>
-			</xsl:otherwise>
-    	</xsl:choose>
-    </xsl:template>
-    
-    <!--
-    	Makro pro Wiki syntaxi
-    -->
-    <xsl:template match="m:wiki">
-    	<xsl:variable name="wikiXHTML" select="j:formátujWiki(text(), @syntaxe)"/>
-    	<xsl:choose>
-			<xsl:when test="$wikiXHTML">
-				<xsl:value-of select="$wikiXHTML" disable-output-escaping="yes"/>
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:message terminate="yes">Při zpracování wiki syntaxe došlo k chybě.</xsl:message>
-			</xsl:otherwise>
-		</xsl:choose>
-    </xsl:template>
-    
-    <!-- 
-    	Makro pro vycpávkový text
-    -->
-    <xsl:template match="m:vycpávka">
-    	<!-- 
-    		TODO: stáhnout jen jednou, uložit do souboru a při dalších generováních brát z něj.
-    	-->
-    	<xsl:message>Stahuji vycpávkový text z http://lipsum.lipsum.com/</xsl:message>
-    	<xsl:variable name="prostýText" select="document(concat('http://lipsum.lipsum.com/feed/xml?amount=', @odstavců, '&amp;what=paragraphs'))/feed/lipsum"/>
-    	<xsl:for-each select="fn:tokenize($prostýText, '\n')">
-    		<p><xsl:value-of select="."/></p>
-    	</xsl:for-each>
-    </xsl:template>
-    
-    <!--
-    	Makro pro jednoduché tabulky
-    -->
-    <xsl:template match="m:tabulka">
-    	<table>
-    		<xsl:variable name="data" select="replace(replace(text(), '^\s+', ''),'\s+$','')"/>
-    		<xsl:variable name="hlavička" select="substring-before($data, '&#10;')"/>
-    		<xsl:variable name="tělo" select="substring-after($data, '&#10;')"/>
-    		<thead>
-    			<tr>
-    				<xsl:for-each select="tokenize($hlavička, '\t+')">
-    					<xsl:if test="normalize-space(.)">
-							<td><xsl:value-of select="normalize-space(.)"/></td>
-						</xsl:if>
-					</xsl:for-each>
-    			</tr>
-    		</thead>
-    		<tbody>
-				<xsl:for-each select="tokenize($tělo, '\n')">
-					<xsl:if test="normalize-space(.)">
-						<tr>
-							<xsl:for-each select="tokenize(., '\t+')">
-								<xsl:if test="normalize-space(.)">
-									<td><xsl:value-of select="normalize-space(.)"/></td>
-								</xsl:if>
-							</xsl:for-each>
-						</tr>
-					</xsl:if>
-				</xsl:for-each>
-    		</tbody>
-    	</table>    
-    </xsl:template>
-
 </xsl:stylesheet>