summaryrefslogtreecommitdiffstats
path: root/dom/xml/resources/XMLPrettyPrint.xsl
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /dom/xml/resources/XMLPrettyPrint.xsl
parentInitial commit. (diff)
downloadfirefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz
firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/xml/resources/XMLPrettyPrint.xsl')
-rw-r--r--dom/xml/resources/XMLPrettyPrint.xsl140
1 files changed, 140 insertions, 0 deletions
diff --git a/dom/xml/resources/XMLPrettyPrint.xsl b/dom/xml/resources/XMLPrettyPrint.xsl
new file mode 100644
index 0000000000..0de8311583
--- /dev/null
+++ b/dom/xml/resources/XMLPrettyPrint.xsl
@@ -0,0 +1,140 @@
+<?xml version="1.0"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!DOCTYPE overlay [
+ <!ENTITY % prettyPrintDTD SYSTEM "chrome://global/locale/xml/prettyprint.dtd">
+ %prettyPrintDTD;
+ <!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd">
+ %globalDTD;
+]>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method="xml"/>
+
+ <xsl:template match="/">
+ <div id="top">
+ <link rel="stylesheet" href="chrome://global/content/xml/XMLPrettyPrint.css"/>
+ <div id="header" dir="&locale.dir;">
+ <p>
+ &xml.nostylesheet;
+ </p>
+ </div>
+ <main id="tree" class="highlight">
+ <xsl:apply-templates/>
+ </main>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="*">
+ <div>
+ <xsl:text>&lt;</xsl:text>
+ <span class="start-tag"><xsl:value-of select="name(.)"/></span>
+ <xsl:apply-templates select="@*"/>
+ <xsl:text>/&gt;</xsl:text>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="*[node()]">
+ <div>
+ <xsl:text>&lt;</xsl:text>
+ <span class="start-tag"><xsl:value-of select="name(.)"/></span>
+ <xsl:apply-templates select="@*"/>
+ <xsl:text>&gt;</xsl:text>
+
+ <span class="text"><xsl:value-of select="."/></span>
+
+ <xsl:text>&lt;/</xsl:text>
+ <span class="end-tag"><xsl:value-of select="name(.)"/></span>
+ <xsl:text>&gt;</xsl:text>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="*[* or processing-instruction() or comment() or string-length(.) &gt; 50]">
+ <div>
+ <details open="" class="expandable-body">
+ <summary class="expandable-opening">
+ <xsl:text>&lt;</xsl:text>
+ <span class="start-tag"><xsl:value-of select="name(.)"/></span>
+ <xsl:apply-templates select="@*"/>
+ <xsl:text>&gt;</xsl:text>
+ </summary>
+
+ <div class="expandable-children"><xsl:apply-templates/></div>
+
+ </details>
+ <span class="expandable-closing">
+ <xsl:text>&lt;/</xsl:text>
+ <span class="end-tag"><xsl:value-of select="name(.)"/></span>
+ <xsl:text>&gt;</xsl:text>
+ </span>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="@*">
+ <xsl:text> </xsl:text>
+ <span class="attribute-name"><xsl:value-of select="name(.)"/></span>
+ <xsl:text>=</xsl:text>
+ <span class="attribute-value">"<xsl:value-of select="."/>"</span>
+ </xsl:template>
+
+ <xsl:template match="text()">
+ <xsl:if test="normalize-space(.)">
+ <xsl:value-of select="."/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="processing-instruction()">
+ <div class="pi">
+ <xsl:text>&lt;?</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>?&gt;</xsl:text>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="processing-instruction()[string-length(.) &gt; 50]">
+ <div class="pi">
+ <details open="" class="expandable-body">
+ <summary class="expandable-opening">
+ <xsl:text>&lt;?</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ </summary>
+ <div class="expandable-children"><xsl:value-of select="."/></div>
+ </details>
+ <span class="expandable-closing">
+ <xsl:text>?&gt;</xsl:text>
+ </span>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="comment()">
+ <div class="comment">
+ <xsl:text>&lt;!--</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>--&gt;</xsl:text>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="comment()[string-length(.) &gt; 50]">
+ <div class="comment">
+ <details open="" class="expandable-body">
+ <summary class="expandable-opening">
+ <xsl:text>&lt;!--</xsl:text>
+ </summary>
+ <div class="expandable-children">
+ <xsl:value-of select="."/>
+ </div>
+ </details>
+ <span class="expandable-closing">
+ <xsl:text>--&gt;</xsl:text>
+ </span>
+ </div>
+ </xsl:template>
+
+</xsl:stylesheet>