This patch puts the transformed pretty print DOM into a Shadow DOM. The stylesheet is loaded with an @import in a <style> block, so the monospace stylesheet had to be left out. The XBL binding is kept, pending removal when Shadow DOM ships. It's still needed to handle the case when Shadow DOM is pref'd off too. MozReview-Commit-ID: DQRsXB8tumF
143 lines
4.1 KiB
XML
143 lines
4.1 KiB
XML
<?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">
|
|
<style>
|
|
@import url("chrome://global/content/xml/XMLPrettyPrint.css");
|
|
</style>
|
|
<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><</xsl:text>
|
|
<span class="start-tag"><xsl:value-of select="name(.)"/></span>
|
|
<xsl:apply-templates select="@*"/>
|
|
<xsl:text>/></xsl:text>
|
|
</div>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="*[node()]">
|
|
<div>
|
|
<xsl:text><</xsl:text>
|
|
<span class="start-tag"><xsl:value-of select="name(.)"/></span>
|
|
<xsl:apply-templates select="@*"/>
|
|
<xsl:text>></xsl:text>
|
|
|
|
<span class="text"><xsl:value-of select="."/></span>
|
|
|
|
<xsl:text></</xsl:text>
|
|
<span class="end-tag"><xsl:value-of select="name(.)"/></span>
|
|
<xsl:text>></xsl:text>
|
|
</div>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="*[* or processing-instruction() or comment() or string-length(.) > 50]">
|
|
<div>
|
|
<details open="" class="expandable-body">
|
|
<summary class="expandable-opening">
|
|
<xsl:text><</xsl:text>
|
|
<span class="start-tag"><xsl:value-of select="name(.)"/></span>
|
|
<xsl:apply-templates select="@*"/>
|
|
<xsl:text>></xsl:text>
|
|
</summary>
|
|
|
|
<div class="expandable-children"><xsl:apply-templates/></div>
|
|
|
|
</details>
|
|
<span class="expandable-closing">
|
|
<xsl:text></</xsl:text>
|
|
<span class="end-tag"><xsl:value-of select="name(.)"/></span>
|
|
<xsl:text>></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><?</xsl:text>
|
|
<xsl:value-of select="name(.)"/>
|
|
<xsl:text> </xsl:text>
|
|
<xsl:value-of select="."/>
|
|
<xsl:text>?></xsl:text>
|
|
</div>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="processing-instruction()[string-length(.) > 50]">
|
|
<div class="pi">
|
|
<details open="" class="expandable-body">
|
|
<summary class="expandable-opening">
|
|
<xsl:text><?</xsl:text>
|
|
<xsl:value-of select="name(.)"/>
|
|
</summary>
|
|
<div class="expandable-children"><xsl:value-of select="."/></div>
|
|
</details>
|
|
<span class="expandable-closing">
|
|
<xsl:text>?></xsl:text>
|
|
</span>
|
|
</div>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="comment()">
|
|
<div class="comment">
|
|
<xsl:text><!--</xsl:text>
|
|
<xsl:value-of select="."/>
|
|
<xsl:text>--></xsl:text>
|
|
</div>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="comment()[string-length(.) > 50]">
|
|
<div class="comment">
|
|
<details open="" class="expandable-body">
|
|
<summary class="expandable-opening">
|
|
<xsl:text><!--</xsl:text>
|
|
</summary>
|
|
<div class="expandable-children">
|
|
<xsl:value-of select="."/>
|
|
</div>
|
|
</details>
|
|
<span class="expandable-closing">
|
|
<xsl:text>--></xsl:text>
|
|
</span>
|
|
</div>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet>
|