X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/b0d77fd4dd2b177e77e2bb038a5864567adfd9df..3f93dcc04535d7235539bd3eafc81f9278714bc3:/platforma/static/xsl/wl2html_client.xsl diff --git a/platforma/static/xsl/wl2html_client.xsl b/platforma/static/xsl/wl2html_client.xsl index d7f397de..a5db5a1c 100644 --- a/platforma/static/xsl/wl2html_client.xsl +++ b/platforma/static/xsl/wl2html_client.xsl @@ -1,3 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> @@ -5,11 +6,7 @@ <!-- Dokument ten opisuje jednoznaczne przeksztaÅcenie WLML 0.1 -> XHTML. --> - <xsl:output method="xml" encoding="utf-8" indent="no" omit-xml-declaration="yes" /> - - <!-- <xsl:template match="/"> - <xsl:apply-templates select="chunk|utwor" /> - </xsl:template> --> + <xsl:output method="html" omit-xml-declaration="yes" encoding="utf-8" indent="no" /> <!-- Base tag for rendering a fragment of text @@ -27,7 +24,7 @@ <xsl:template match="utwor"> <div> <xsl:call-template name="standard-attributes" /> - <xsl:apply-templates select="child::* | text()"> + <xsl:apply-templates select="child::node()"> <xsl:with-param name="mixed" select="false()" /> </xsl:apply-templates> </div> @@ -545,7 +542,7 @@ <xsl:choose> <!-- Simple verse == not wers_ tags anywhere until the ending br --> <xsl:when test="not($verse-content[starts-with(name(), 'wers_')])"> - <p class="wers" x-node="wers"> + <p class="wers" x-node="wers" x-verse="true"> <xsl:apply-templates select="$verse-content[local-name(.) != 'br']"> <xsl:with-param name="mixed" select="true()" /> </xsl:apply-templates> @@ -562,12 +559,16 @@ <xsl:template match="wers_cd|wers_akap|wers_wciety"> <xsl:param name="mixed" /> - <p> - <xsl:call-template name="standard-attributes" /> - <xsl:apply-templates select="child::node()"> - <xsl:with-param name="mixed" select="true()" /> - </xsl:apply-templates> - </p> + <!-- <xsl:choose> + <xsl:when test="ancestor::*[0]/self::strofa"> --> + <p x-verse="true"> + <xsl:call-template name="standard-attributes" /> + <xsl:apply-templates select="child::node()"> + <xsl:with-param name="mixed" select="true()" /> + </xsl:apply-templates> + </p> + <!-- </xsl:when> + <xsl:choose> --> </xsl:template> <xsl:template match="br"><xsl:text>/</xsl:text></xsl:template> @@ -640,7 +641,7 @@ Przypisy i motywy --> <xsl:template match="pr|pa|pe|pt"> - <span x-editable="true"> + <span x-editable="true" x-common="common"> <xsl:call-template name="standard-attributes"> <xsl:with-param name="extra-class" select="'annotation-inline-box'" /> </xsl:call-template> @@ -648,7 +649,7 @@ <!-- the link to the non-inline version --> <a href="#annotation-{generate-id(.)}" class="annotation"></a> <!-- inline contents --> - <span x-annotation-box="true"> + <span x-annotation-box="true" x-pass-thru="true"> <xsl:call-template name="context-menu" /> <xsl:apply-templates select="node()"> <xsl:with-param name="mixed" select="true()" /> @@ -667,20 +668,22 @@ </xsl:template> <xsl:template match="extra|uwaga"> - <span> + <span x-common="common"> <xsl:call-template name="standard-attributes" /> - <xsl:apply-templates select="node()" /> + <xsl:apply-templates select="child::node()"> + <xsl:with-param name="mixed" select="true()" /> + </xsl:apply-templates> </span> </xsl:template> <xsl:template match="motyw"> - <span x-editable="true"> + <span x-editable="true" x-common="common"> <xsl:call-template name="standard-attributes" /> <xsl:attribute name="theme-class"> <xsl:value-of select="substring-after(@id, 'm')" /> </xsl:attribute> <xsl:call-template name="context-menu" /> - <span class="theme-text-list"><xsl:value-of select=".|node()" /></span> + <span x-pass-thru="true" class="theme-text-list"><xsl:value-of select=".|node()" /></span> </span> </xsl:template> @@ -705,7 +708,11 @@ <xsl:param name="mixed" /> <xsl:choose> <xsl:when test="normalize-space(.) = ''" /> - <xsl:when test="not($mixed)"><div x-node="out-of-flow-text" class="out-of-flow-text" x-editable="true"><xsl:value-of select="." /></div></xsl:when> + <xsl:when test="not($mixed)"> + <span x-node="out-of-flow-text" class="out-of-flow-text" x-editable="true"> + <xsl:value-of select="." /> + </span> + </xsl:when> <xsl:otherwise><xsl:value-of select="." /></xsl:otherwise> </xsl:choose> </xsl:template> @@ -715,20 +722,31 @@ </xsl:template> <xsl:template match="*[name() != local-name()]"> - <div> + <span> <xsl:call-template name="standard-attributes" /> <xsl:apply-templates select="child::node()"> <xsl:with-param name="mixed" select="true()" /> </xsl:apply-templates> - </div> + </span> </xsl:template> + + <!-- + Earlier versions of html2wl introduced a BUG, that 'causes "out-of-flow-text" tag to appear. + Instead of marking it as "unknown", just pass thru it + --> + <xsl:template match="out-of-flow-text"> + <xsl:param name="mixed" /> + <xsl:apply-templates select="child::node()"> + <xsl:with-param name="mixed" select="$mixed" /> + </xsl:apply-templates> + </xsl:template> <xsl:template match="*"> - <div class="unknown-tag" x-node="{name()}"> + <span class="unknown-tag" x-node="{name()}"> <xsl:apply-templates select="child::node()"> <xsl:with-param name="mixed" select="true()" /> </xsl:apply-templates> - </div> + </span> </xsl:template> <xsl:template name="context-menu"> @@ -746,8 +764,7 @@ <xsl:param name="extra-class" /> <xsl:attribute name="class"><xsl:value-of select="local-name()" /><xsl:text> </xsl:text><xsl:value-of select="$extra-class" /></xsl:attribute> - <!-- we use upper-case attribute names, so we don't have to wory about HTML parsers --> - <xsl:attribute name="x-node"><xsl:value-of select="name()" /></xsl:attribute> + <xsl:attribute name="x-node"><xsl:value-of select="local-name()" /></xsl:attribute> <xsl:if test="local-name() != name()"> <xsl:attribute name="x-ns"><xsl:value-of select="namespace-uri()" /></xsl:attribute> @@ -756,10 +773,16 @@ <xsl:for-each select="@*"> <xsl:variable name="id" select="generate-id()" /> <xsl:attribute name="x-attr-value-{$id}"><xsl:value-of select="."/></xsl:attribute> - <xsl:attribute name="x-attr-qname-{$id}"><xsl:value-of select="name()"/></xsl:attribute> - <xsl:if test="namespace-uri()"> + <xsl:attribute name="x-attr-name-{$id}"><xsl:value-of select="local-name()"/></xsl:attribute> + <xsl:choose> + <xsl:when test="namespace-uri()"> <xsl:attribute name="x-attr-ns-{$id}"><xsl:value-of select="namespace-uri()"/></xsl:attribute> - </xsl:if> + </xsl:when> + <!-- if the element belongs to default namespace and attribut has no namespace --> + <xsl:when test="not(namespace-uri(.))"> + <xsl:attribute name="data-wlf-{local-name()}"><xsl:value-of select="."/></xsl:attribute> + </xsl:when> + </xsl:choose> </xsl:for-each> </xsl:template>