lxml update
[librarian.git] / src / librarian / fb2 / footnotes.xslt
1 <?xml version="1.0" encoding="utf-8"?>
2 <!--
3
4         This file is part of Librarian, licensed under GNU Affero GPLv3 or later.
5         Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
6
7 -->
8 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
9         xmlns:wl="http://wolnelektury.pl/functions"
10         xmlns:dc="http://purl.org/dc/elements/1.1/"
11         xmlns="http://www.gribuser.ru/xml/fictionbook/2.0"
12         xmlns:l="http://www.w3.org/1999/xlink">
13
14         <!-- footnote body mode -->
15         <xsl:template match="pa|pe|pr|pt" mode="footnotes">
16                 <!-- we number them absolutely -->
17                 <xsl:variable name="n" select="count(preceding::pa) + count(preceding::pe) + count(preceding::pr) + count(preceding::pt) + 1"/>
18
19                 <xsl:element name="section">
20                         <xsl:attribute name="id">fn<xsl:value-of select="$n"/></xsl:attribute>
21
22                         <p><xsl:apply-templates mode="inline"/>
23                 <xsl:if test="local-name() = 'pa'">
24                     <xsl:text> [przypis autorski]</xsl:text>
25                 </xsl:if>
26                 <xsl:if test="local-name() = 'pt'">
27                     <xsl:text> [przypis tłumacza]</xsl:text>
28                 </xsl:if>
29                 <xsl:if test="local-name() = 'pr'">
30                     <xsl:text> [przypis redakcyjny]</xsl:text>
31                 </xsl:if>
32                 <xsl:if test="local-name() = 'pe'">
33                     <xsl:text> [przypis edytorski]</xsl:text>
34                 </xsl:if></p>
35                 </xsl:element>
36         </xsl:template>
37         <xsl:template match="text()" mode="footnotes"/>
38
39         <!-- footnote links -->
40         <xsl:template match="pa|pe|pr|pt" mode="inline">
41                 <xsl:variable name="n" select="count(preceding::pa) + count(preceding::pe) + count(preceding::pr) + count(preceding::pt) + 1"/>
42                 <xsl:element name="a">
43                         <xsl:attribute name="type">note</xsl:attribute>
44                         <xsl:attribute name="l:href">#fn<xsl:value-of select="$n"/></xsl:attribute>
45
46                         <xsl:text>[</xsl:text>
47                         <xsl:value-of select="$n"/>
48                         <xsl:text>]</xsl:text>
49                 </xsl:element>
50         </xsl:template>
51 </xsl:stylesheet>