-->
<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" indent="yes" omit-xml-declaration = "yes" version="2.0" />
+<xsl:strip-space elements="opowiadanie powiesc dramat_wierszowany_l dramat_wierszowany_lp dramat_wspolczesny liryka_l liryka_lp wywiad"/>
<xsl:template match="utwor">
<xsl:choose>
<xsl:when test="@full-page">
}
- #toc, #themes, #nota_red {
+ #toc, #themes, #nota_red, #info {
position: fixed;
left: 0em;
top: 1.5em;
position: inherit;
}
+ #info p {
+ text-align: justify;
+ margin: 1.5em 0 0;
+ }
+
/* =================================================== */
/* = Common elements: headings, paragraphs and lines = */
/* =================================================== */
margin-top: -0.25em;
}
+ span.translator {
+ font-size: 0.375em;
+ display: block;
+ line-height: 1.5em;
+ margin-top: 0.25em;
+ }
+
div.didaskalia {
font-style: italic;
margin: 0.5em 0 0 1.5em;
<a href="{concat('#anchor-', generate-id(.))}" class="annotation">[<xsl:number value="count(preceding::*[self::pa or self::pe or self::pr or self::pt]) + 1" />]</a>
<xsl:choose>
<xsl:when test="count(akap|akap_cd|strofa) = 0">
- <p><xsl:apply-templates select="text()|*" mode="inline" /></p>
+ <p><xsl:apply-templates select="text()|*" mode="inline" />
+ <xsl:if test="name()='pa'"> [przypis autorski]</xsl:if>
+ </p>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="text()|*" mode="inline" />
<xsl:if test="nazwa_utworu">
<h1>
<xsl:apply-templates select="autor_utworu|dzielo_nadrzedne|nazwa_utworu|podtytul" mode="header" />
+ <xsl:call-template name="translators" />
</h1>
</xsl:if>
<xsl:apply-templates />
</xsl:template>
+<xsl:template match="tabela">
+ <table><xsl:apply-templates /></table>
+</xsl:template>
+<xsl:template match="wiersz">
+ <tr><xsl:apply-templates /></tr>
+</xsl:template>
+<xsl:template match="kol">
+ <td><xsl:apply-templates mode="inline" /></td>
+</xsl:template>
+
+<xsl:template match="ilustr" mode="inline">
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="ilustr">
+ <img>
+ <xsl:attribute name="src">
+ <xsl:value-of select="@src" />
+ </xsl:attribute>
+ <xsl:attribute name="alt">
+ <xsl:value-of select="@alt" />
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="@alt" />
+ </xsl:attribute>
+
+
+ </img>
+</xsl:template>
+<xsl:template match="lista[@typ='num']">
+ <ol><xsl:apply-templates /></ol>
+</xsl:template>
+<xsl:template match="lista[@typ='punkt']">
+ <ul><xsl:apply-templates /></ul>
+ </xsl:template>
+<xsl:template match="punkt">
+ <li><xsl:apply-templates mode="inline" /></li>
+ </xsl:template>
+
+
+
+
+
<!-- ========================================== -->
<!-- = PARAGRAPH TAGS = -->
<!-- = (can contain inline and special tags) = -->
</xsl:template>
<!-- Section headers (included in index)-->
-<xsl:template match="naglowek_akt|naglowek_czesc|srodtytul">
- <h2><xsl:apply-templates mode="inline" /></h2>
+<xsl:template match="naglowek_akt|naglowek_czesc">
+ <xsl:call-template name="section-anchor"/>
+ <h2>
+ <xsl:apply-templates mode="inline" /></h2>
</xsl:template>
<xsl:template match="naglowek_scena|naglowek_rozdzial">
+ <xsl:call-template name="section-anchor"/>
<h3><xsl:apply-templates mode="inline" /></h3>
</xsl:template>
<xsl:template match="naglowek_osoba|naglowek_podrozdzial">
+ <xsl:call-template name="section-anchor"/>
<h4><xsl:apply-templates mode="inline" /></h4>
</xsl:template>
+<xsl:template match="srodtytul">
+ <xsl:call-template name="section-anchor"/>
+ <h5>
+ <xsl:apply-templates mode="inline" /></h5>
+ </xsl:template>
+
+
<!-- Other paragraph tags -->
<xsl:template match="miejsce_czas">
+ <xsl:call-template name="section-anchor"/>
<p class="place-and-time"><xsl:apply-templates mode="inline" /></p>
</xsl:template>
<xsl:template match="didaskalia">
+ <xsl:call-template name="section-anchor"/>
<div class="didaskalia"><xsl:apply-templates mode="inline" /></div>
</xsl:template>
</xsl:template>
<xsl:template match="akap|akap_dialog|akap_cd">
- <p class="paragraph"><xsl:apply-templates mode="inline" /></p>
+ <p class="paragraph">
+ <xsl:call-template name="section-anchor"/>
+ <xsl:apply-templates mode="inline" />
+ </p>
</xsl:template>
<xsl:template match="strofa">
<div class="stanza">
+ <xsl:call-template name="section-anchor"/>
<xsl:choose>
<xsl:when test="count(br) > 0">
<xsl:call-template name="verse">
<em class="person"><xsl:apply-templates mode="inline" /></em>
</xsl:template>
+<xsl:template match="www" mode="inline">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:value-of select="text()"/>
+ </xsl:attribute>
+ <xsl:value-of select="text()"/>
+ </a>
+</xsl:template>
<!-- ============================================== -->
<!-- = STANDALONE TAGS = -->
</xsl:template>
+<xsl:template name="translators">
+ <xsl:if test="//dc:contributor.translator">
+ <span class="translator">
+ <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>
+ </span>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()" mode="person">
+ <xsl:value-of select="wl:person_name(.)" />
+</xsl:template>
+
+
<!-- ================ -->
<!-- = IGNORED TAGS = -->
<!-- ================ -->
<xsl:value-of select="wl:substitute_entities(.)" />
</xsl:template>
+<!-- ========= -->
+<!-- = utils = -->
+<!-- ========= -->
+<xsl:template name="section-anchor">
+ <!--
+ this formula works as follows:
+ - get all ancestors including self
+ - choose the header (third one from root): utwor/book-type/header
+ - get all preceding siblings
+ - count them
+ - create an <a name="sec123"/> tag.
+ -->
+ <a name="{concat('sec', count(ancestor-or-self::*[last()-2]/preceding-sibling::*) + 1)}" />
+</xsl:template>
-</xsl:stylesheet>
\ No newline at end of file
+</xsl:stylesheet>