X-Git-Url: https://git.ladys.computer/Shushe/blobdiff_plain/687dbc6036a8611ce377621818f9f4112ec6c2b3..7338b131dca1dee3159488ef23b8d2545f1a5289:/lib/catalog2transform.xslt?ds=sidebyside diff --git a/lib/catalog2transform.xslt b/lib/catalog2transform.xslt index 6d20460..ce94067 100644 --- a/lib/catalog2transform.xslt +++ b/lib/catalog2transform.xslt @@ -1,18 +1,19 @@ <?xml version="1.0"?> <!-- -SPDX-FileCopyrightText: 2023, 2024 Lady <https://www.ladys.computer/about/#lady> +SPDX-FileCopyrightText: 2023, 2024, 2025 Lady <https://www.ladys.computer/about/#lady> SPDX-License-Identifier: MPL-2.0 --> <!-- ⁌ ⛩📰 书社 ∷ lib/catalog2transform.xslt -© 2023–2024 Lady [@ Ladys Computer]. +© 2023–2025 Lady [@ Ladys Computer]. This Source Code Form is subject to the terms of the Mozilla Public License, v 2.0. If a copy of the M·P·L was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0/>. --> <!DOCTYPE transform [ <!ENTITY 书社 "urn:fdc:ladys.computer:20231231:Shu1She4"> + <!ENTITY xhtml "http://www.w3.org/1999/xhtml"> <!ENTITY xml "http://www.w3.org/XML/1998/namespace"> ]> <transform @@ -21,7 +22,7 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one xmlns:exsl="http://exslt.org/common" xmlns:exslfunc="http://exslt.org/functions" xmlns:exslstr="http://exslt.org/strings" - xmlns:html="http://www.w3.org/1999/xhtml" + xmlns:html="&xhtml;" xmlns:nie="http://www.semanticdesktop.org/ontologies/2007/01/19/nie#" xmlns:nfo="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" @@ -220,7 +221,7 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one <xslt:apply-templates select="$modalinput/node()" mode="书社:metadata"/> </xslt:variable> <xslt:variable name="metadata" select="exsl:node-set($metadata-fragment)"/> - <html:html> + <xslt:element name="html" namespace="&xhtml;"> <xslt:copy-of select="$nodes[self::html:html]/@*"/> <xslt:if test="not($nodes[self::html:html]/@书社:archived-as) and $nodes/@书社:archived-as"> <xslt:attribute name="书社:archived-as"> @@ -237,9 +238,9 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one <xslt:value-of select="$nodes[self::html:*]/@lang|$nodes[self::svg:*]/@lang|$nodes/@xml:lang"/> </xslt:attribute> </xslt:if> - <html:head> + <xslt:element name="head" namespace="&xhtml;"> <xslt:copy-of select="$nodes[self::html:html]/html:head/@*|$nodes[self::html:head]/@*"/> - <html:title> + <xslt:element name="title" namespace="&xhtml;"> <xslt:for-each select="$metadata/html:title"> <xslt:value-of select="."/> <xslt:if test="position()!=last()"> @@ -248,9 +249,14 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one </xslt:text> </xslt:if> </xslt:for-each> - </html:title> + </xslt:element> <xslt:copy-of select="$metadata/node()[not(self::html:title or self::html:meta and @name='generator')]"/> - <html:meta name="generator"> + <xslt:element name="meta" namespace="&xhtml;"> + <xslt:attribute name="name"> + <xslt:text> + <text>generator</text> + </xslt:text> + </xslt:attribute> <xslt:attribute name="content"> <xslt:for-each select="$metadata/html:meta[@name='generator']"> <xslt:value-of select="@content"/> @@ -271,15 +277,19 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one </xslt:text> </xslt:if> </xslt:attribute> - </html:meta> - </html:head> - <html:body> - <xslt:copy-of select="$nodes[self::html:html]/html:body/@*|$nodes[self::html:body]/@*"/> + </xslt:element> + </xslt:element> + <xslt:element name="body" namespace="&xhtml;"> + <xslt:copy-of select="($nodes[self::html:html]/html:body/@*|$nodes[self::html:body]/@*)[not(namespace-uri()='&书社;' and local-name()='archived-as')]"/> <xslt:apply-templates select="$modalinput/node()" mode="书社:header"/> - <xslt:copy-of select="$nodes[not(self::html:html or self::html:head or self::html:body)]|$nodes[self::html:html]/node()[not(self::html:head or self::html:body)]|$nodes[self::html:html]/html:body/node()|$nodes[self::html:body]/node()"/> + <xslt:for-each select="$nodes[not(self::html:html or self::html:head or self::html:body)]|$nodes[self::html:html]/node()[not(self::html:head or self::html:body)]|$nodes[self::html:html]/html:body/node()|$nodes[self::html:body]/node()"> + <xslt:copy> + <xslt:copy-of select="@*[not(namespace-uri()='&书社;' and local-name()='archived-as')]|node()"/> + </xslt:copy> + </xslt:for-each> <xslt:apply-templates select="$modalinput/node()" mode="书社:footer"/> - </html:body> - </html:html> + </xslt:element> + </xslt:element> </xslt:template> <xslt:template match="/"> <xslt:variable name="finalization-fragment">