<?xml version="1.0" encoding="utf-8"?>
<!--
-
+
This file is part of Librarian, licensed under GNU Affero GPLv3 or later.
Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
-
+
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:wl="http://wolnelektury.pl/functions" >
+ xmlns:wl="http://wolnelektury.pl/functions"
+ xmlns:dc="http://purl.org/dc/elements/1.1/" >
<xsl:output encoding="utf-8" method="text" />
<!-- = (can contain block tags, paragraph tags, standalone tags and special tags) = -->
<!-- ============================================================================== -->
<xsl:template match="powiesc|opowiadanie|liryka_l|liryka_lp|dramat_wierszowany_l|dramat_wierszowany_lp|dramat_wspolczesny">
-<xsl:if test="nazwa_utworu"><xsl:apply-templates select="autor_utworu|dzielo_nadrzedne|nazwa_utworu|podtytul" mode="header" /></xsl:if>
+<xsl:if test="not (../@raw-text) and nazwa_utworu">
+ <xsl:apply-templates select="autor_utworu|dzielo_nadrzedne|nazwa_utworu|podtytul" mode="header" />
+ <xsl:call-template name="translators" />
+ <xsl:call-template name="isbn" />
+ <xsl:text>
+</xsl:text>
+</xsl:if>
+<xsl:apply-templates />
<xsl:text>
</xsl:text>
-<xsl:apply-templates />
</xsl:template>
<xsl:apply-templates />
</xsl:template>
+<xsl:template match="ramka">
+<xsl:apply-templates />
+</xsl:template>
+
<xsl:template match="lista_osob">
<xsl:text>
<!-- ========================================== -->
<!-- Title page -->
<xsl:template match="autor_utworu" mode="header">
+<xsl:apply-templates mode="inline" />
<xsl:text>
</xsl:text>
-<xsl:apply-templates mode="inline" />
</xsl:template>
<xsl:template match="nazwa_utworu" mode="header">
+<xsl:apply-templates mode="inline" />
<xsl:text>
-
</xsl:text>
-<xsl:apply-templates mode="inline" />
</xsl:template>
<xsl:template match="dzielo_nadrzedne" mode="header">
+<xsl:apply-templates mode="inline" />
<xsl:text>
-
</xsl:text>
-<xsl:apply-templates mode="inline" />
</xsl:template>
<xsl:template match="podtytul" mode="header">
+<xsl:apply-templates mode="inline" />
<xsl:text>
</xsl:text>
-<xsl:apply-templates mode="inline" />
</xsl:template>
<!-- Section headers (included in index)-->
<xsl:apply-templates mode="inline" />
</xsl:template>
+
+<xsl:template match="podtytul_czesc|podtytul_rozdzial|podtytul_podrozdzial|podtytul_akt|podtytul_scena">
+<xsl:text>
+
+</xsl:text>
+<xsl:apply-templates mode="inline" />
+</xsl:template>
+
+
+
<!-- Other paragraph tags -->
<xsl:template match="miejsce_czas">
<xsl:text>
<xsl:apply-templates select="*|text()" mode="inline" />
</xsl:variable>
<xsl:text>
-
+
/ </xsl:text><xsl:value-of select="wl:wrap_words(wl:strip($content), $wrapping)" /><xsl:text> /</xsl:text>
</xsl:template>
<xsl:text>
</xsl:text>
<xsl:choose>
- <xsl:when test="count(br) > 0">
+ <xsl:when test="count(br) > 0">
<xsl:call-template name="verse">
<xsl:with-param name="verse-content" select="br[1]/preceding-sibling::text() | br[1]/preceding-sibling::node()" />
- <xsl:with-param name="verse-type" select="br[1]/preceding-sibling::*[name() = 'wers_wciety' or name() = 'wers_akap' or name() = 'wers_cd'][1]" />
- </xsl:call-template>
+ <xsl:with-param name="verse-type" select="br[1]/preceding-sibling::*[name() = 'wers_wciety' or name() = 'wers_akap' or name() = 'wers_cd' or name() = 'wers_do_prawej'][1]" />
+ </xsl:call-template>
<xsl:for-each select="br">
<!-- Each BR tag "consumes" text after it -->
<xsl:variable name="lnum" select="count(preceding-sibling::br)" />
<xsl:call-template name="verse">
- <xsl:with-param name="verse-content"
+ <xsl:with-param name="verse-content"
select="following-sibling::text()[count(preceding-sibling::br) = $lnum+1] | following-sibling::node()[count(preceding-sibling::br) = $lnum+1]" />
- <xsl:with-param name="verse-type" select="following-sibling::*[count(preceding-sibling::br) = $lnum+1 and (name() = 'wers_wciety' or name() = 'wers_akap' or name() = 'wers_cd')][1]" />
+ <xsl:with-param name="verse-type" select="following-sibling::*[count(preceding-sibling::br) = $lnum+1 and (name() = 'wers_wciety' or name() = 'wers_akap' or name() = 'wers_cd' or name() = 'wers_do_prawej')][1]" />
</xsl:call-template>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="verse">
<xsl:with-param name="verse-content" select="text() | node()" />
- <xsl:with-param name="verse-type" select="wers_wciety|wers_akap|wers_cd[1]" />
- </xsl:call-template>
+ <xsl:with-param name="verse-type" select="wers_wciety|wers_akap|wers_cd|wers_do_prawej[1]" />
+ </xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:when test="name($verse-type) = 'wers_cd'">
<xsl:text> </xsl:text>
</xsl:when>
+ <xsl:when test="name($verse-type) = 'wers_do_prawej'">
+ <xsl:text> </xsl:text>
+ </xsl:when>
</xsl:choose>
<xsl:value-of select="wl:strip($content)" />
</xsl:template>
<xsl:apply-templates mode="inline" />
</xsl:template>
+<xsl:template match="tabela|tabelka">
+ <xsl:text>
+
+</xsl:text>
+<xsl:apply-templates/>
+<xsl:text>
+</xsl:text>
+</xsl:template>
+<xsl:template match="wiersz">
+ <xsl:apply-templates />
+ <xsl:text>
+</xsl:text>
+</xsl:template>
+<xsl:template match="kol">
+ <xsl:apply-templates mode="inline" />
+ <xsl:text> </xsl:text>
+</xsl:template>
+
<!-- ================================================ -->
<!-- = INLINE TAGS = -->
<xsl:text>*</xsl:text><xsl:apply-templates mode="inline" /><xsl:text>*</xsl:text>
</xsl:template>
+<xsl:template match="indeks_dolny" mode="inline">
+<xsl:apply-templates mode="inline" />
+</xsl:template>
+
+<xsl:template match="wieksze_odstepy" mode="inline">
+<xsl:apply-templates mode="inline" />
+</xsl:template>
+
<xsl:template match="osoba" mode="inline">
<xsl:apply-templates mode="inline" />
</xsl:template>
<xsl:template match="motyw" mode="inline" />
+<xsl:template name="translators">
+ <xsl:if test="//dc:contributor.translator">
+ <text>tłum. </text>
+ <xsl:for-each select="//dc:contributor.translator/text()">
+ <xsl:if test="position() != 1">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <xsl:value-of select="wl:person_name(.)" />
+ </xsl:for-each>
+ <xsl:text>
+</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="isbn">
+ <xsl:if test="//meta[@id='txt-id']">
+ <xsl:variable name="isbn" select="//meta[@id='txt-id']"/>
+ <text>
+ISBN </text><xsl:value-of select="substring-after($isbn, 'ISBN-')"/>
+ </xsl:if>
+</xsl:template>
+
<!-- ================ -->
<!-- = IGNORED TAGS = -->
<xsl:template match="extra|uwaga" mode="inline" />
<xsl:template match="nota_red" />
+<xsl:template match="abstrakt" />
<!-- ======== -->
<!-- = TEXT = -->