X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/215503e15ca9d6d1e8a053f7bfa359af1af102f3..5135e076096ce04b1dbbb2f6210512d1a44fa237:/librarian/xslt/book2txt.xslt diff --git a/librarian/xslt/book2txt.xslt b/librarian/xslt/book2txt.xslt old mode 100755 new mode 100644 index cb74ed9..317e581 --- a/librarian/xslt/book2txt.xslt +++ b/librarian/xslt/book2txt.xslt @@ -1,28 +1,13 @@ <?xml version="1.0" encoding="utf-8"?> <!-- -# -# This file is part of Librarian. -# -# Copyright © 2008,2009,2010 Fundacja Nowoczesna Polska <fundacja@nowoczesnapolska.org.pl> -# -# For full list of contributors see AUTHORS file. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# + + 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" /> @@ -33,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> @@ -95,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)--> @@ -164,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> @@ -188,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> @@ -207,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> @@ -314,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 = --> @@ -321,6 +323,7 @@ <xsl:template match="extra|uwaga" /> <xsl:template match="extra|uwaga" mode="inline" /> +<xsl:template match="nota_red" /> <!-- ======== --> <!-- = TEXT = -->