X-Git-Url: https://git.ladys.computer/Shushe/blobdiff_plain/d71cc3861468e5ce418a3cf3ace5730689e41dce..15648b660cd14e2834629ad52b65ceb313362c9b:/lib/literally.xslt

diff --git a/lib/literally.xslt b/lib/literally.xslt
index 5dc60c8..d929f2f 100644
--- a/lib/literally.xslt
+++ b/lib/literally.xslt
@@ -6,7 +6,7 @@ SPDX-License-Identifier: MPL-2.0
 <!--
 ⁌ ⛩📰 书社 ∷ lib/literally.xslt
 
-© 2024 Lady [@ Lady’s Computer].
+© 2024 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/>.
@@ -18,8 +18,9 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one
 	version="1.0"
 >
 	<template match="node()" mode="书社:literally">
+		<param name="extension-element-namespaces"/>
 		<choose>
-			<when test="self::*">
+			<when test="self::* and contains(concat(' http://www.w3.org/1999/XSL/Transform ', normalize-space($extension-element-namespaces), ' '), concat(' ', namespace-uri(), ' '))">
 				<xslt:element name="{name()}" namespace="{namespace-uri()}">
 					<for-each select="@*">
 						<xslt:attribute name="{name()}" namespace="{namespace-uri()}">
@@ -31,6 +32,23 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one
 					<apply-templates mode="书社:literally"/>
 				</xslt:element>
 			</when>
+			<when test="self::*">
+				<element name="{name()}" namespace="{namespace-uri()}">
+					<for-each select="@*[not(contains(., '{') or contains(., '}'))]">
+						<attribute name="{name()}" namespace="{namespace-uri()}">
+							<value-of select="."/>
+						</attribute>
+					</for-each>
+					<for-each select="@*[contains(., '{') or contains(., '}')]">
+						<xslt:attribute name="{name()}" namespace="{namespace-uri()}">
+							<xslt:text>
+								<value-of select="."/>
+							</xslt:text>
+						</xslt:attribute>
+					</for-each>
+					<apply-templates mode="书社:literally"/>
+				</element>
+			</when>
 			<when test="self::text()">
 				<xslt:text>
 					<value-of select="."/>