X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/6ec15224f3482ea18d339df7e2acc160d799be43..3d82ed33706fca69f100b7b7c5b9eba970151568:/librarian/xslt/book2txt.xslt?ds=sidebyside diff --git a/librarian/xslt/book2txt.xslt b/librarian/xslt/book2txt.xslt old mode 100755 new mode 100644 index 614468f..317e581 --- a/librarian/xslt/book2txt.xslt +++ b/librarian/xslt/book2txt.xslt @@ -1,12 +1,13 @@ <?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" /> @@ -17,11 +18,16 @@ <!-- = (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:text> +</xsl:text> +</xsl:if> +<xsl:apply-templates /> <xsl:text> </xsl:text> -<xsl:apply-templates /> </xsl:template> @@ -79,30 +85,28 @@ <!-- ========================================== --> <!-- 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)--> @@ -148,7 +152,7 @@ <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> @@ -172,16 +176,16 @@ <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: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:call-template> @@ -191,7 +195,7 @@ <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:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> @@ -298,6 +302,20 @@ <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> + <!-- ================ --> <!-- = IGNORED TAGS = --> @@ -305,6 +323,7 @@ <xsl:template match="extra|uwaga" /> <xsl:template match="extra|uwaga" mode="inline" /> +<xsl:template match="nota_red" /> <!-- ======== --> <!-- = TEXT = -->