From: Lady <redacted> Date: Sat, 26 Oct 2024 20:45:08 +0000 (-0400) Subject: Use <书社:apply-attributes-to-root> to add version X-Git-Tag: 0.13.1^0 X-Git-Url: https://git.ladys.computer/Shushe/commitdiff_plain/687dbc6036a8611ce377621818f9f4112ec6c2b3 Use <书社:apply-attributes-to-root> to add version Now that application happens after every stage, it is simple enough to just inject an `<书社:apply-attributes-to-root>` into the result fragment prior to application, rather than supporting an entirely separate `and-version` param (which may not have been properly applied in recent commits). --- diff --git a/lib/catalog2transform.xslt b/lib/catalog2transform.xslt index 68fb3a2..6d20460 100644 --- a/lib/catalog2transform.xslt +++ b/lib/catalog2transform.xslt @@ -62,13 +62,10 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one <text>书社:document-with-attributes-applied</text> </attribute> <xslt:param name="document" select="/.."/> - <xslt:param name="and-version" select="false()"/> <xslt:variable name="application-result-fragment"> <xslt:variable name="result-nodes" select="$document/node()[not(self::书社:apply-attributes-to-root)]|$document/书社:apply-attributes-to-root//node()[not(self::书社:apply-attributes-to-root) and not(ancestor::*[not(self::书社:apply-attributes-to-root)])]"/> - <xslt:variable name="significant-nodes" select="$result-nodes/descendant-or-self::*[not(self::书社:apply-attributes) and not(ancestor::*[not(self::书社:apply-attributes)])]"/> <xslt:variable name="root-with-attributes"> <xslt:call-template name="书社:apply-attributes"> - <xslt:with-param name="and-version" select="$and-version"/> <xslt:with-param name="context-nodes" select="$document//书社:apply-attributes-to-root"/> <xslt:with-param name="destination-nodes" select="$result-nodes"/> </xslt:call-template> @@ -93,7 +90,12 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one </xslt:variable> <xslt:variable name="书社:expansion" select="书社:document-with-attributes-applied(exsl:node-set($书社:expansion-fragment))"/> <xslt:variable name="书社:result-fragment"> - <xslt:apply-templates select="$书社:expansion/node()"/> + <xslt:element name="书社:apply-attributes-to-root"> + <xslt:attribute name="书社:version"> + <xslt:value-of select="$THISREV"/> + </xslt:attribute> + <xslt:apply-templates select="$书社:expansion/node()"/> + </xslt:element> </xslt:variable> <xslt:variable name="书社:result" select="书社:document-with-attributes-applied(exsl:node-set($书社:result-fragment))"/> <xslt:variable name="书社:destination" select="string($书社:about//*[@rdf:about=$IDENTIFIER]/@书社vocab:destination)"/> @@ -105,7 +107,6 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one </xslt:include> </for-each> <xslt:template name="书社:apply-attributes"> - <xslt:param name="and-version" select="false()"/> <xslt:param name="context-nodes" select="/.."/> <xslt:param name="destination-nodes" select="/.."/> <xslt:variable name="additional-attributes" select="$context-nodes/@*"/> @@ -149,11 +150,6 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one </xslt:choose> </xslt:variable> <xslt:copy> - <xslt:if test="$and-version and $THISREV"> - <xslt:attribute name="书社:version"> - <xslt:value-of select="$THISREV"/> - </xslt:attribute> - </xslt:if> <xslt:if test="string($lang)!=''"> <xslt:if test="self::html:* or self::svg:*"> <xslt:attribute name="lang"> @@ -168,7 +164,6 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one <xslt:choose> <xslt:when test="@namespace-uri='&xml;'"/> <xslt:when test="$context[self::html:* or self::svg:*] and @namespace-uri='' and @local-name='lang'"/> - <xslt:when test="$and-version and $THISREV and @namespace-uri='&书社;' and @local-name='version'"/> <xslt:when test="@namespace-uri='&书社;' and (@local-name='destination' or @local-name='disable-output-wrapping')"/> <xslt:when test="preceding-sibling::*[@local-name=current()/@local-name and @namespace-uri=current()/@namespace-uri]"/> <xslt:otherwise>