From: Marek Stępniowski <marek@stepniowski.com> Date: Fri, 5 Sep 2008 15:37:49 +0000 (+0200) Subject: Added comments to book2html.xslt stylesheet. X-Git-Url: https://git.mdrn.pl/wolnelektury.git/commitdiff_plain/e8d7c808919ca6a8546832e260d4449b77909317 Added comments to book2html.xslt stylesheet. --- diff --git a/lib/librarian/book2html.xslt b/lib/librarian/book2html.xslt index a83cc0c06..f7bb9a225 100644 --- a/lib/librarian/book2html.xslt +++ b/lib/librarian/book2html.xslt @@ -3,13 +3,6 @@ <xsl:output method="xml" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" indent="yes" /> -<xsl:template match="text()" /> -<xsl:template match="text()" mode="inline"> - <xsl:value-of select="wl:substitute_entities(.)" /> -</xsl:template> - -<xsl:template match="extra|uwaga" /> -<xsl:template match="extra|uwaga" mode="inline" /> <xsl:template match="utwor"> <html> @@ -44,6 +37,10 @@ </xsl:template> +<!-- ============================================================================== --> +<!-- = MASTER TAG = --> +<!-- = (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"> <h1> @@ -53,9 +50,48 @@ <xsl:apply-templates /> </xsl:template> -<!-- ======================= --> -<!-- = Header (title page) = --> -<!-- ======================= --> + +<!-- ==================================================================================== --> +<!-- = BLOCK TAGS = --> +<!-- = (can contain other block tags, paragraph tags, standalone tags and special tags) = --> +<!-- ==================================================================================== --> +<xsl:template match="nota"> + <div class="note"><xsl:apply-templates /></div> +</xsl:template> + +<xsl:template match="lista_osob"> + <div class="person-list"> + <h3><xsl:value-of select="naglowek_listy" /></h3> + <ol> + <xsl:apply-templates select="lista_osoba" /> + </ol> + </div> +</xsl:template> + +<xsl:template match="dedykacja"> + <div class="dedication"><xsl:apply-templates /></div> +</xsl:template> + +<xsl:template match="kwestia"> + <div class="kwestia"> + <xsl:apply-templates select="strofa|akap" /> + </div> +</xsl:template> + +<xsl:template match="dlugi_cytat"> + <blockquote><xsl:apply-templates /></blockquote> +</xsl:template> + +<xsl:template match="motto"> + <div class="motto"><xsl:apply-templates mode="inline" /></div> +</xsl:template> + + +<!-- ========================================== --> +<!-- = PARAGRAPH TAGS = --> +<!-- = (can contain inline and special tags) = --> +<!-- ========================================== --> +<!-- Title page --> <xsl:template match="autor_utworu" mode="header"> <span class="author"><xsl:apply-templates mode="inline" /></span> </xsl:template> @@ -72,17 +108,7 @@ <span class="subtitle"><xsl:apply-templates mode="inline" /></span> </xsl:template> -<xsl:template match="nota"> - <div class="note"><xsl:apply-templates /></div> -</xsl:template> - -<xsl:template match="dedykacja"> - <div class="dedication"><xsl:apply-templates /></div> -</xsl:template> - -<!-- =================== --> -<!-- = Section headers = --> -<!-- =================== --> +<!-- Section headers --> <xsl:template match="naglowek_akt|naglowek_czesc|srodtytul"> <h2><xsl:apply-templates mode="inline" /></h2> </xsl:template> @@ -95,67 +121,21 @@ <h4><xsl:apply-templates mode="inline" /></h4> </xsl:template> +<!-- Other paragraph tags --> <xsl:template match="miejsce_czas"> <p class="place-and-time"><xsl:apply-templates mode="inline" /></p> </xsl:template> -<xsl:template match="kwestia"> - <div class="kwestia"> - <xsl:apply-templates select="strofa|akap" /> - </div> -</xsl:template> - <xsl:template match="didaskalia"> <div class="didaskalia"><xsl:apply-templates mode="inline" /></div> </xsl:template> -<xsl:template match="lista_osob"> - <div class="person-list"> - <h3><xsl:value-of select="naglowek_listy" /></h3> - <ol> - <xsl:apply-templates select="lista_osoba" /> - </ol> - </div> -</xsl:template> - <xsl:template match="lista_osoba"> <li><xsl:apply-templates mode="inline" /></li> </xsl:template> -<xsl:template match="begin" mode="inline"> - <xsl:variable name="mnum" select="concat('m', substring(@id, 2))" /> - <span class="theme-begin" fid="{substring(@id, 2)}"> - <xsl:value-of select="string(following::motyw[@id=$mnum]/text())" /> - </span> -</xsl:template> - -<xsl:template match="end" mode="inline"> - <span class="theme-end" fid="{substring(@id, 2)}"> </span> -</xsl:template> - -<xsl:template match="begin|end"> - <xsl:apply-templates select='.' mode="inline" /> -</xsl:template> - -<xsl:template name="verse"> - <xsl:param name="line-content" /> - <xsl:param name="line-number" /> - <p> - <xsl:choose> - <xsl:when test="name($line-content) = 'wers_akap'"> - <xsl:attribute name="style">indent: 1em</xsl:attribute> - </xsl:when> - <xsl:when test="name($line-content) = 'wers_wciety'"> - <xsl:attribute name="style">indent: 2em</xsl:attribute> - </xsl:when> - </xsl:choose> - <xsl:apply-templates select="$line-content" mode="inline" /> - </p> -</xsl:template> - -<xsl:template match="pa|pe|pr|pt" mode="inline"> - <a name="{concat('anchor-', generate-id(.))}" /> - <a href="{concat('#footnote-', generate-id(.))}" class="annotation">[<xsl:number value="count(preceding::*[self::pa or self::pe or self::pr or self::pt]) + 1" />]</a> +<xsl:template match="akap|akap_dialog|akap_cd"> + <p class="paragraph"><xsl:apply-templates mode="inline" /></p> </xsl:template> <xsl:template match="strofa"> @@ -167,7 +147,7 @@ <xsl:with-param name="line-number" select="1" /> </xsl:call-template> <xsl:for-each select="br"> - <!-- Każdy BR "zjada" to co jest za nim --> + <!-- 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="line-number" select="$lnum+2" /> @@ -186,26 +166,84 @@ </div> </xsl:template> -<xsl:template match="akap|akap_dialog|akap_cd"> - <p class="paragraph"><xsl:apply-templates mode="inline" /></p> +<xsl:template name="verse"> + <xsl:param name="line-content" /> + <xsl:param name="line-number" /> + <p> + <xsl:choose> + <xsl:when test="name($line-content) = 'wers_akap'"> + <xsl:attribute name="style">indent: 1em</xsl:attribute> + </xsl:when> + <xsl:when test="name($line-content) = 'wers_wciety'"> + <xsl:attribute name="style">indent: 2em</xsl:attribute> + </xsl:when> + </xsl:choose> + <xsl:apply-templates select="$line-content" mode="inline" /> + </p> </xsl:template> -<xsl:template match="motyw" mode="inline" /> - -<xsl:template match="dlugi_cytat"> - <blockquote><xsl:apply-templates /></blockquote> +<xsl:template match="motto_podpis"> + <p class="motto_podpis"><xsl:apply-templates mode="inline" /></p> </xsl:template> -<xsl:template match="motto"> - <p class="motto"><xsl:apply-templates mode="inline" /></p> -</xsl:template> -<xsl:template match="motto_podpis"> - <p class="motto_podpis"><xsl:apply-templates mode="inline" /></p> +<!-- ================================================ --> +<!-- = INLINE TAGS = --> +<!-- = (contain other inline tags and special tags) = --> +<!-- ================================================ --> +<!-- Annotations --> +<xsl:template match="pa|pe|pr|pt" mode="inline"> + <a name="{concat('anchor-', generate-id(.))}" /> + <a href="{concat('#footnote-', generate-id(.))}" class="annotation">[<xsl:number value="count(preceding::*[self::pa or self::pe or self::pr or self::pt]) + 1" />]</a> </xsl:template> + +<!-- ============================================== --> +<!-- = STANDALONE TAGS = --> +<!-- = (cannot contain any other tags) = --> +<!-- ============================================== --> <xsl:template match="sekcja_swiatlo"> <hr class="spacer" /> </xsl:template> + +<!-- ================ --> +<!-- = SPECIAL TAGS = --> +<!-- ================ --> +<!-- Themes --> +<xsl:template match="begin" mode="inline"> + <xsl:variable name="mnum" select="concat('m', substring(@id, 2))" /> + <span class="theme-begin" fid="{substring(@id, 2)}"> + <xsl:value-of select="string(following::motyw[@id=$mnum]/text())" /> + </span> +</xsl:template> + +<xsl:template match="end" mode="inline"> + <span class="theme-end" fid="{substring(@id, 2)}"> </span> +</xsl:template> + +<xsl:template match="begin|end"> + <xsl:apply-templates select='.' mode="inline" /> +</xsl:template> + +<xsl:template match="motyw" mode="inline" /> + + +<!-- ================ --> +<!-- = IGNORED TAGS = --> +<!-- ================ --> +<xsl:template match="extra|uwaga" /> +<xsl:template match="extra|uwaga" mode="inline" /> + + +<!-- ======== --> +<!-- = TEXT = --> +<!-- ======== --> +<xsl:template match="text()" /> +<xsl:template match="text()" mode="inline"> + <xsl:value-of select="wl:substitute_entities(.)" /> +</xsl:template> + + </xsl:stylesheet> +