X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/5873d27f51dfb8c69ad2bf421a71665c38458448..9e4ab00dca15599a016b0621cdaae623bc8a723e:/librarian/fb2/fb2.xslt?ds=sidebyside diff --git a/librarian/fb2/fb2.xslt b/librarian/fb2/fb2.xslt index 2a07e35..950b526 100644 --- a/librarian/fb2/fb2.xslt +++ b/librarian/fb2/fb2.xslt @@ -7,6 +7,7 @@ --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:wl="http://wolnelektury.pl/functions" + xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.gribuser.ru/xml/fictionbook/2.0" xmlns:l="http://www.w3.org/1999/xlink"> @@ -16,6 +17,7 @@ <xsl:include href="paragraphs.xslt"/> <xsl:include href="poems.xslt"/> <xsl:include href="sections.xslt"/> + <xsl:include href="drama.xslt"/> <xsl:strip-space elements="*"/> <xsl:output encoding="utf-8" method="xml" indent="yes"/> @@ -31,12 +33,13 @@ </xsl:template> <!-- we can't handle lyrics nicely yet --> - <xsl:template match="powiesc|opowiadanie|liryka_l|liryka_lp" mode="outer"> + <xsl:template match="powiesc|opowiadanie|liryka_l|liryka_lp|dramat_wierszowany_l|dramat_wierszowany_lp" mode="outer"> <body> <!-- main body for main book flow --> <xsl:if test="autor_utworu or nazwa_utworu"> <title> <xsl:apply-templates mode="title" - select="autor_utworu|dzielo_nadrzedne|nazwa_utworu"/> + select="autor_utworu|dzielo_nadrzedne|nazwa_utworu|podtytul"/> + <xsl:call-template name="translators" /> </title> </xsl:if> @@ -49,24 +52,7 @@ </p> </epigraph> - <xsl:variable name="sections" select="count(naglowek_rozdzial)"/> - <section> - <xsl:choose> - <xsl:when test="local-name() = 'liryka_l'"> - <poem> - <xsl:apply-templates mode="para"/> - </poem> - </xsl:when> - - <xsl:otherwise> - <xsl:apply-templates mode="para" - select="*[count(following-sibling::naglowek_rozdzial) - = $sections]"/> - </xsl:otherwise> - </xsl:choose> - </section> - - <xsl:apply-templates mode="sections"/> + <xsl:call-template name="section" /> </body> </xsl:template> @@ -79,6 +65,23 @@ <p><xsl:apply-templates mode="inline"/></p> </xsl:template> + <xsl:template name="translators"> + <xsl:if test="//dc:contributor.translator"> + <p> + <xsl:text>tÅum. </xsl:text> + <xsl:for-each select="//dc:contributor.translator"> + <xsl:if test="position() != 1">, </xsl:if> + <xsl:apply-templates mode="person" /> + </xsl:for-each> + </p> + </xsl:if> + </xsl:template> + + <xsl:template match="text()" mode="person"> + <xsl:value-of select="wl:person_name(.)" /> + </xsl:template> + + <xsl:template match="uwaga" mode="title"/> <xsl:template match="extra" mode="title"/> </xsl:stylesheet>