X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/e459e4567cc578abd5d7e02e70a01ec9464f474d..61c3753c6e0c567ccbb11115c787da22218ab5f6:/platforma/static/xsl/wl2html_client.xsl diff --git a/platforma/static/xsl/wl2html_client.xsl b/platforma/static/xsl/wl2html_client.xsl old mode 100755 new mode 100644 index 72ac7771..a5db5a1c --- 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::*"> + <xsl:apply-templates select="child::node()"> <xsl:with-param name="mixed" select="false()" /> </xsl:apply-templates> </div> @@ -212,7 +209,7 @@ --> <xsl:template match="motto"> <xsl:param name="mixed" /> - <div> + <div x-editable="true"> <xsl:call-template name="standard-attributes" /> <xsl:apply-templates select="child::node()"> <xsl:with-param name="mixed" select="true()" /> @@ -432,7 +429,7 @@ <xsl:template match="didaskalia"> <xsl:param name="mixed" /> - <div> + <div x-editable="true"> <xsl:call-template name="standard-attributes" /> <xsl:apply-templates select="child::node()"> <xsl:with-param name="mixed" select="true()" /> @@ -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" /> - <xsl:value-of select="." /> + <span x-pass-thru="true" class="theme-text-list"><xsl:value-of select=".|node()" /></span> </span> </xsl:template> @@ -701,11 +704,15 @@ --> <xsl:template match="text()"> + <!-- <xsl:value-of select="." /> --> <xsl:param name="mixed" /> <xsl:choose> <xsl:when test="normalize-space(.) = ''" /> - <xsl:when test="not($mixed)"><span x-node="out-of-flow-text" class="out-of-flow-text" - x-content="{.}"></span></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,35 +722,49 @@ </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="*"> - <error>Unknown tag: <xsl:value-of select="name()" /></error> + <span class="unknown-tag" x-node="{name()}"> + <xsl:apply-templates select="child::node()"> + <xsl:with-param name="mixed" select="true()" /> + </xsl:apply-templates> + </span> </xsl:template> <xsl:template name="context-menu"> - <span class="default-menu context-menu"> - <span class="edit-button">Edit</span> - <span class="delete-button">Delete</span> - </span> - <span class="edit-menu context-menu"> + <!-- <span class="default-menu context-menu"> --> + <!-- <button class="edit-button">Edytuj</button> --> + <!-- <span class="delete-button">Delete</span> --> + <!-- </span> --> + <!-- <span class="edit-menu context-menu"> <span class="accept-button">Accept</span> <span class="reject-button">Close</span> - </span> + </span> --> </xsl:template> <xsl:template name="standard-attributes"> <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> @@ -752,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>