Base tag for rendering the whole text
-->
- <!-- TODO -->
-
-
+ <xsl:template match="utwor">
+ <xsl:apply-templates select="child::*[name() = local-name()]">
+ <xsl:with-param name="mixed" select="false()" />
+ </xsl:apply-templates>
+ </xsl:template>
<!--
Przekształcenia poszczególnych elementów zgodnie z:
Tagi rozpoczynające i kończące tekst utworu lirycznego o standardowej szerokości łamu:
-->
- <xsl:template match="liryka_l">
+ <xsl:template match="opowiadanie|powiesc">
+ <xsl:param name="mixed" />
+ <div class="{name()}" x-node="{name()}">
+ <xsl:apply-templates select="child::node()">
+ <xsl:with-param name="mixed" select="false()" />
+ </xsl:apply-templates>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="liryka_l|liryka_lp">
+ <xsl:param name="mixed" />
+ <div class="{name()}" x-node="{name()}">
+ <xsl:apply-templates select="child::node()">
+ <xsl:with-param name="mixed" select="false()" />
+ </xsl:apply-templates>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="dramat_wierszowany_l|dramat_wierszowany_lp|dramat_wspolczesny">
+ <xsl:param name="mixed" />
+ <div class="{name()}" x-node="{name()}">
+ <xsl:apply-templates select="child::node()">
+ <xsl:with-param name="mixed" select="false()" />
+ </xsl:apply-templates>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="wywiad">
<xsl:param name="mixed" />
<div class="{name()}" x-node="{name()}">
<xsl:apply-templates select="child::node()">
<xsl:template match="autor_utworu">
<xsl:param name="mixed" />
<h2 class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
<xsl:template match="nazwa_utworu">
<xsl:param name="mixed" />
<h1 class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
<xsl:template match="dzielo_nadrzedne">
<xsl:param name="mixed" />
<h2 class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
<xsl:template match="podtytul">
<xsl:param name="mixed" />
<h3 class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
<xsl:template match="motto_podpis">
<xsl:param name="mixed" />
<p class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
-->
<xsl:template match="lista_osob">
<xsl:param name="mixed" />
- <div class="{name()}" x-editable="true" x-node="{name()}">
+ <div class="{name()}" x-node="{name()}">
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="false()" />
</xsl:apply-templates>
<xsl:template match="naglowek_listy">
<xsl:param name="mixed" />
- <p class="{name()}" x-node="{name()}">
+ <p class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
<xsl:template match="lista_osoba">
<xsl:param name="mixed" />
<p class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
<xsl:template match="naglowek_czesc">
<xsl:param name="mixed" />
<h2 class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
<xsl:template match="naglowek_rozdzial">
<xsl:param name="mixed" />
<h3 class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
<xsl:template match="naglowek_podrozdzial">
<xsl:param name="mixed" />
<h4 class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
<xsl:template match="srodtytul">
<xsl:param name="mixed" />
<h2 class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
<xsl:template match="naglowek_akt">
<xsl:param name="mixed" />
<h2 class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
<xsl:template match="naglowek_scena">
<xsl:param name="mixed" />
<h3 class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
<xsl:template match="naglowek_osoba">
<xsl:param name="mixed" />
<h4 class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
<xsl:template match="akap">
<xsl:param name="mixed" />
<p class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
<xsl:template match="akap_cd">
<xsl:param name="mixed" />
<p class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
<xsl:template match="akap_dialog">
<xsl:param name="mixed" />
<p class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
-->
<xsl:template match="strofa">
<div class="{name()}" x-editable="true" x-node="{name()}">
+ <xsl:call-template name="context-menu" />
<xsl:choose>
<xsl:when test="count(br) > 0">
+ <xsl:variable name="first-verse" select="br[1]/preceding-sibling::node()" />
<xsl:call-template name="verse">
- <xsl:with-param name="verse-content" select="br[1]/preceding-sibling::node()" />
- <xsl:with-param name="verse-type" select="name(br[1]/preceding-sibling::*[starts-with(name(current()),'wers')])" />
+ <xsl:with-param name="verse-content" select="$first-verse" />
</xsl:call-template>
<xsl:for-each select="br">
- <!-- Each BR tag "consumes" text after it -->
<xsl:variable name="lnum" select="count(preceding-sibling::br)" />
+ <!-- select all nodes up to the next br or end of stanza -->
+ <xsl:variable name="current-verse"
+ select="following-sibling::node()[count(preceding-sibling::br) = $lnum+1]" />
<xsl:call-template name="verse">
- <xsl:with-param name="verse-content"
- select="following-sibling::node()[count(preceding-sibling::br) = $lnum+1]" />
- <xsl:with-param name="verse-type"
- select="name(following-sibling::*[count(preceding-sibling::br) = $lnum+1 and starts-with(name(current()), 'wers')][1])" />
+ <xsl:with-param name="verse-content" select="$current-verse" />
</xsl:call-template>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="verse">
- <xsl:with-param name="verse-content" select="child::node()" />
- <xsl:with-param name="verse-type" select="name(child::*[starts-with(name(current()),'wers')])" />
+ <xsl:with-param name="verse-content" select="child::node()" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="verse">
+ <!-- the verse contents including the last br (if any) -->
<xsl:param name="verse-content" />
- <xsl:param name="verse-type" />
+
+ <xsl:variable name="first-tag-name" select="name($verse-content/self::*)" />
+ <!-- name of text nodes is '' == false -->
<xsl:choose>
- <xsl:when test="$verse-type = ''">
- <p class="wers" x-node="wers">
+ <xsl:when test="starts-with($first-tag-name, 'wers')">
+ <p class="{$first-tag-name}" x-node="{$first-tag-name}">
<xsl:for-each select="$verse-content[name(.) != 'br']">
- <xsl:apply-templates select=".">
+ <xsl:apply-templates select=".">
<xsl:with-param name="mixed" select="true()" />
- </xsl:apply-templates>
+ </xsl:apply-templates>
</xsl:for-each>
- </p>
+ </p>
</xsl:when>
+
<xsl:otherwise>
- <p class="{$verse-type}" x-node="{$verse-type}">
+ <p class="wers" x-node="wers">
<xsl:for-each select="$verse-content[name(.) != 'br']">
- <xsl:apply-templates select=".">
+ <xsl:apply-templates select=".">
<xsl:with-param name="mixed" select="true()" />
- </xsl:apply-templates>
+ </xsl:apply-templates>
</xsl:for-each>
- </p>
- </xsl:otherwise>
- </xsl:choose>
-
-
+ </p>
+ </xsl:otherwise>
+
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="wers_cd|wers_akap|wers_wciety">
+ <xsl:param name="mixed" />
+ <xsl:call-template name="copy-attributes" />
+ <xsl:apply-templates select="child::node()">
+ <xsl:with-param name="mixed" select="true()" />
+ </xsl:apply-templates>
</xsl:template>
-->
<xsl:template match="tytul_dziela">
<xsl:param name="mixed" />
- <span class="{name()}" x-editable="true" x-node="{name()}">
+ <em class="{name()}" x-node="{name()}">
<xsl:apply-templates select="child::node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
- </span>
+ </em>
</xsl:template>
<xsl:template match="wyroznienie|slowo_obce|mat|didask_tekst|osoba|wyp_osoba|www">
<br class="{name()}" x-node="{name()}" />
</xsl:template>
- <xsl:template match="sekcja_asteryks">
+ <xsl:template match="sekcja_asterysk">
<xsl:param name="mixed" />
<hr class="{name()}" x-node="{name()}" />
</xsl:template>
Przypisy i motywy
-->
<xsl:template match="pr|pa|pe|pt">
- <span class="annotation-inline-box" x-node="{name()}">
+ <span class="annotation-inline-box" x-node="{name()}" x-editable="true">
<a name="anchor-{generate-id(.)}" />
<!-- the link to the non-inline version -->
<a href="#annotation-{generate-id(.)}" class="annotation"></a>
<!-- inline contents -->
<span x-annotation-box="true">
+ <xsl:call-template name="context-menu" />
<xsl:apply-templates select="node()">
<xsl:with-param name="mixed" select="true()" />
</xsl:apply-templates>
</span>
</span>
-
</xsl:template>
- <xsl:template match="begin">
- <xsl:variable name="id" select="substring-after(@id, 'b')" />
- <span class="theme-begin" x-node="begin" x-theme-class="{$id}" id="{@id}"></span>
- <xsl:apply-templates select="following-sibling::motyw[@id = concat('m', $id)]" mode="theme-begin" />
+ <xsl:template match="begin">
+ <span class="theme-begin" x-node="begin">
+ <xsl:call-template name="copy-attributes" />
+ </span>
</xsl:template>
<xsl:template match="motyw">
- <span class="theme-ref" x-node="motyw" x-theme-class="{substring-after(@id, 'm')}" id="{@id}">
+ <span class="theme-ref" x-node="motyw">
+ <xsl:call-template name="copy-attributes" />
<xsl:value-of select="." />
</span>
</xsl:template>
-
<xsl:template match="end">
- <span class="theme-end" x-node="end" x-theme-class="{substring-after(@id, 'e')}" id="{@id}">
+ <span class="theme-end" x-node="end">
+ <xsl:call-template name="copy-attributes" />
</span>
</xsl:template>
<xsl:template match="*">
<div x-node="error" x-content="{name()}" />
</xsl:template>
+
+ <xsl:template name="context-menu">
+ <span class="default-menu context-menu">
+ <span class="edit-button">Edit</span>
+ </span>
+ <span class="edit-menu context-menu">
+ <span class="accept-button">OK</span>
+ <span class="reject-button">Cancel</span>
+ </span>
+ </xsl:template>
+
+ <xsl:template name="copy-attributes">
+ <xsl:for-each select="@*">
+ <xsl:attribute name="x-attrib-{name(.)}"><xsl:value-of select="."/></xsl:attribute>
+ </xsl:for-each>
+ </xsl:template>
</xsl:stylesheet>
\ No newline at end of file