templates/ssm.xhtml.xsl
branchv_0
changeset 81 47717a4ed4bb
parent 78 b877c9f81953
--- a/templates/ssm.xhtml.xsl	Thu May 09 23:35:47 2024 +0200
+++ b/templates/ssm.xhtml.xsl	Thu May 09 23:47:53 2024 +0200
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 	Sane software manifesto helper tools
-	Copyright © 2019 František Kučera (Frantovo.cz, GlobalCode.info)
+	Copyright © 2019-2024 František Kučera (Frantovo.cz, GlobalCode.info)
 
 	This program is free software: you can redistribute it and/or modify
 	it under the terms of the GNU General Public License as published by
@@ -15,31 +15,31 @@
 	You should have received a copy of the GNU General Public License
 	along with this program.  If not, see <https://www.gnu.org/licenses/>.
 -->
-<xsl:stylesheet 
+<xsl:stylesheet
 	version="1.0"
 	xmlns="http://www.w3.org/1999/xhtml"
 	xmlns:h="http://www.w3.org/1999/xhtml"
 	xmlns:m="tag:globalcode.info,2019:sane-software/manifesto"
 	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 	xmlns:fn="http://www.w3.org/2005/xpath-functions"
-	xmlns:svg="http://www.w3.org/2000/svg"
 	xmlns:xs="http://www.w3.org/2001/XMLSchema"
 	exclude-result-prefixes="fn h m xs">
-	
+
 	<xsl:import href="common.xsl"/>
-	
+
 	<xsl:param name="versionTag"/>
 	<xsl:param name="versionDistance"/>
 	<xsl:param name="versionHash"/>
 	<xsl:param name="versionChangedFiles"/>
-	
-	<xsl:output 
-		method="xml" 
-		indent="yes" 
-		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:output
+		method="xml"
+		indent="yes"
+		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:template match="/m:manifesto">
 		<html>
 			<head>
@@ -53,49 +53,59 @@
 					<h1>
 						<xsl:value-of select="m:title"/>
 					</h1>
-				
-					<p style="text-align: center">
-						<xsl:call-template name="version">
-							<xsl:with-param name="tag" select="$versionTag"/>
-							<xsl:with-param name="distance" select="$versionDistance"/>
-							<xsl:with-param name="hash" select="$versionHash"/>
-							<xsl:with-param name="changedFiles" select="$versionChangedFiles"/>
-						</xsl:call-template>
-					</p>
-				
+
+					<xsl:call-template name="versionParagraph"/>
+
 					<p>
 						<xsl:value-of select="m:preamble"/>
 					</p>
-				
+
 					<xsl:apply-templates select="m:chapter"/>
-				
-					<hr/>
-					<p class="footer">
-						<a href="{m:url}">
-							<xsl:value-of select="m:title"/>
-						</a>
-						(<a href="https://hg.globalcode.info/sane-software/sane-software-manifesto/">sources</a>)
-						other formats:
-						<a href="ssm.en.pdf">PDF</a>,
-						<a href="ssm.en.txt">TXT</a>
-						<br/>
-						Copyright © <xsl:value-of select="m:license/m:year"/>
-						<xsl:text> </xsl:text>
-						<xsl:value-of select="m:author"/>
-						<br/>
-						<xsl:value-of select="m:license/m:prefix"/> 
-						<a href="{m:license/m:url}">
-							<xsl:value-of select="m:license/m:name"/>
-						</a>
-						<xsl:value-of select="m:license/m:suffix"/>
-					</p>
+
+					<xsl:call-template name="footer"/>
 
 				</div>
 			</body>
 		</html>
 	</xsl:template>
-	
-	
+
+	<xsl:template name="versionParagraph">
+		<p style="text-align: center">
+			<xsl:call-template name="version">
+				<xsl:with-param name="tag" select="$versionTag"/>
+				<xsl:with-param name="distance" select="$versionDistance"/>
+				<xsl:with-param name="hash" select="$versionHash"/>
+				<xsl:with-param name="changedFiles" select="$versionChangedFiles"/>
+			</xsl:call-template>
+		</p>
+	</xsl:template>
+
+	<xsl:template name="footer">
+		<xsl:param name="otherFormatsURL"/>
+		<hr/>
+		<p class="footer">
+			<a href="{/m:manifesto/m:url}">
+				<xsl:value-of select="/m:manifesto/m:title"/>
+			</a>
+			(<a href="https://hg.globalcode.info/sane-software/sane-software-manifesto/">sources</a>)
+			other formats:
+			<a href="{normalize-space($otherFormatsURL)}ssm.en.pdf">PDF</a>,
+			<a href="{normalize-space($otherFormatsURL)}ssm.en.txt">TXT</a>,
+			<a href="{normalize-space($otherFormatsURL)}ssm.en.epub">EPUB</a>
+			<br/>
+			Copyright © <xsl:value-of select="/m:manifesto/m:license/m:year"/>
+			<xsl:text> </xsl:text>
+			<xsl:value-of select="/m:manifesto/m:author"/>
+			<br/>
+			<xsl:value-of select="/m:manifesto/m:license/m:prefix"/>
+			<a href="{/m:manifesto/m:license/m:url}">
+				<xsl:value-of select="/m:manifesto/m:license/m:name"/>
+			</a>
+			<xsl:value-of select="/m:manifesto/m:license/m:suffix"/>
+		</p>
+	</xsl:template>
+
+
 	<xsl:template match="m:chapter">
 		<div id="{m:id}" class="chapter">
 			<h2>
@@ -108,8 +118,8 @@
 			</ul>
 		</div>
 	</xsl:template>
-	
-	
+
+
 	<xsl:template match="m:item">
 		<li id="{m:id}" class="{m:type}">
 			<xsl:apply-templates select="m:text"/>
@@ -122,7 +132,7 @@
 			</xsl:if>
 		</li>
 	</xsl:template>
-	
+
 	<xsl:template match="m:text">
 		<xsl:apply-templates/>
 		<xsl:text>&#10;</xsl:text>