mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2026-01-04 23:24:12 +01:00
Major documentation updates and formatting fixes, and many, many other changes thanks to an MQ glitch, including:
* Significant completion speed improvements * Significantly improve startup speed, in large part by lazily instantiating Options and Commands, lazily installing highlight stylesheets, etc. * Update logos and icons, fix atrocious about page * Fix Teledactyl * JavaScript completion now avoids accessing property values * Add Option#persist to define which options are saved with :mkp * Add new Dactyl component which holds add-on-specific configuration information and removes need for separate components for each dactyl host * Several fixes for latest nightlies * Significant code cleanup and many bug fixes --HG-- rename : muttator/AUTHORS => teledactyl/AUTHORS rename : muttator/Donors => teledactyl/Donors rename : muttator/Makefile => teledactyl/Makefile rename : muttator/NEWS => teledactyl/NEWS rename : muttator/TODO => teledactyl/TODO rename : muttator/chrome.manifest => teledactyl/chrome.manifest rename : muttator/components/commandline-handler.js => teledactyl/components/commandline-handler.js rename : muttator/components/protocols.js => teledactyl/components/protocols.js rename : muttator/content/addressbook.js => teledactyl/content/addressbook.js rename : muttator/content/compose/compose.js => teledactyl/content/compose/compose.js rename : muttator/content/compose/compose.xul => teledactyl/content/compose/compose.xul rename : muttator/content/compose/dactyl.dtd => teledactyl/content/compose/dactyl.dtd rename : muttator/content/compose/dactyl.xul => teledactyl/content/compose/dactyl.xul rename : muttator/content/config.js => teledactyl/content/config.js rename : muttator/content/dactyl.dtd => teledactyl/content/dactyl.dtd rename : muttator/content/logo.png => teledactyl/content/logo.png rename : muttator/content/mail.js => teledactyl/content/mail.js rename : muttator/content/muttator.xul => teledactyl/content/pentadactyl.xul rename : muttator/contrib/vim/Makefile => teledactyl/contrib/vim/Makefile rename : muttator/contrib/vim/ftdetect/muttator.vim => teledactyl/contrib/vim/ftdetect/muttator.vim rename : muttator/contrib/vim/mkvimball.txt => teledactyl/contrib/vim/mkvimball.txt rename : muttator/contrib/vim/syntax/muttator.vim => teledactyl/contrib/vim/syntax/muttator.vim rename : muttator/install.rdf => teledactyl/install.rdf rename : muttator/locale/en-US/Makefile => teledactyl/locale/en-US/Makefile rename : muttator/locale/en-US/all.xml => teledactyl/locale/en-US/all.xml rename : muttator/locale/en-US/autocommands.xml => teledactyl/locale/en-US/autocommands.xml rename : muttator/locale/en-US/gui.xml => teledactyl/locale/en-US/gui.xml rename : muttator/locale/en-US/intro.xml => teledactyl/locale/en-US/intro.xml rename : muttator/skin/icon.png => teledactyl/skin/icon.png
This commit is contained in:
@@ -6,40 +6,27 @@
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns:dactyl="http://vimperator.org/namespaces/liberator"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:str="http://exslt.org/strings"
|
||||
xmlns:exsl="http://exslt.org/common"
|
||||
extension-element-prefixes="exsl str">
|
||||
xmlns:regexp="http://exslt.org/regular-expressions"
|
||||
xmlns:str="http://exslt.org/strings"
|
||||
extension-element-prefixes="exsl regexp str">
|
||||
|
||||
<xsl:output method="xml" indent="no"/>
|
||||
|
||||
<!-- Variable Definitions {{{1 -->
|
||||
|
||||
<xsl:variable name="doc">
|
||||
<xsl:apply-templates select="/dactyl:document" mode="overlay"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="root" select="exsl:node-set($doc)"/>
|
||||
|
||||
<xsl:variable name="tags">
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:for-each select="$root//@tag|$root//dactyl:tags/text()|$root//dactyl:tag/text()">
|
||||
<xsl:value-of select="concat(., ' ')"/>
|
||||
</xsl:for-each>
|
||||
</xsl:variable>
|
||||
|
||||
<!-- Process Overlays {{{1 -->
|
||||
|
||||
<xsl:variable name="overlay" select="concat('dactyl://help-overlay/', /dactyl:document/@name)"/>
|
||||
<xsl:variable name="overlaydoc" select="document($overlay)/dactyl:overlay"/>
|
||||
|
||||
<xsl:template name="splice-overlays">
|
||||
<xsl:param name="elem"/>
|
||||
<xsl:param name="tag"/>
|
||||
<xsl:for-each select="$overlaydoc/*[@insertbefore=$tag]">
|
||||
<xsl:for-each select="ancestor::*/dactyl:overlay/*[@insertbefore=$tag]">
|
||||
<xsl:apply-templates select="." mode="overlay"/>
|
||||
</xsl:for-each>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$overlaydoc/*[@replace=$tag] and not($elem[@replace])">
|
||||
<xsl:for-each select="$overlaydoc/*[@replace=$tag]">
|
||||
<xsl:when test="ancestor::*/dactyl:overlay/*[@replace=$tag] and not($elem[@replace])">
|
||||
<xsl:for-each select="ancestor::*/dactyl:overlay/*[@replace=$tag]">
|
||||
<xsl:apply-templates select="." mode="overlay-2"/>
|
||||
</xsl:for-each>
|
||||
</xsl:when>
|
||||
@@ -49,7 +36,7 @@
|
||||
</xsl:for-each>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:for-each select="$overlaydoc/*[@insertafter=$tag]">
|
||||
<xsl:for-each select="ancestor::*/dactyl:overlay/*[@insertafter=$tag]">
|
||||
<xsl:apply-templates select="." mode="overlay"/>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
@@ -75,9 +62,32 @@
|
||||
|
||||
<!-- Process Inclusions {{{1 -->
|
||||
|
||||
<xsl:template name="include">
|
||||
<xsl:param name="root-node" select="."/>
|
||||
<xsl:param name="overlay" select="concat('dactyl://help-overlay/', $root-node/@name)"/>
|
||||
|
||||
<!-- Ridiculous three-pass processing is needed to deal with
|
||||
- lack of dynamic variable scope in XSL 1.0. -->
|
||||
|
||||
<!-- Store a copy of the overlay for the current document. -->
|
||||
<xsl:variable name="doc">
|
||||
<dactyl:document>
|
||||
<xsl:copy-of select="document($overlay)/dactyl:overlay"/>
|
||||
<xsl:copy-of select="$root-node/node()"/>
|
||||
</dactyl:document>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:call-template name="parse-tags">
|
||||
<xsl:with-param name="text" select="concat($root-node/@name, '.xml')"/>
|
||||
</xsl:call-template>
|
||||
<xsl:apply-templates select="exsl:node-set($doc)/dactyl:document/node()[position() != 1]" mode="overlay"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="dactyl:include" mode="overlay-2">
|
||||
<div dactyl:highlight="HelpInclude">
|
||||
<xsl:apply-templates select="document(@href)/dactyl:document/node()" mode="overlay"/>
|
||||
<xsl:call-template name="include">
|
||||
<xsl:with-param name="root-node" select="document(@href)/dactyl:document"/>
|
||||
</xsl:call-template>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
@@ -93,22 +103,39 @@
|
||||
<!-- Root {{{1 -->
|
||||
|
||||
<xsl:template match="/">
|
||||
<xsl:for-each select="$root/dactyl:document">
|
||||
<html dactyl:highlight="Help">
|
||||
<head>
|
||||
<title><xsl:value-of select="@title"/></title>
|
||||
<script type="text/javascript"
|
||||
src="chrome://dactyl/content/help.js"/>
|
||||
</head>
|
||||
<body dactyl:highlight="HelpBody">
|
||||
<div dactyl:highlight="Logo"/>
|
||||
<xsl:call-template name="parse-tags">
|
||||
<xsl:with-param name="text" select="concat(@name, '.html')"/>
|
||||
</xsl:call-template>
|
||||
<xsl:apply-templates/>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:for-each>
|
||||
|
||||
<!-- Ridiculous three-pass processing is needed to deal with
|
||||
- lack of dynamic variable scope in XSL 1.0. -->
|
||||
|
||||
<xsl:variable name="doc1">
|
||||
<xsl:call-template name="include">
|
||||
<xsl:with-param name="root-node" select="dactyl:document"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="root" select="exsl:node-set($doc1)"/>
|
||||
|
||||
<!-- Store a cache of all tags defined -->
|
||||
<xsl:variable name="doc2">
|
||||
<dactyl:document>
|
||||
<xsl:attribute name="document-tags">
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:for-each select="$root//@tag|$root//dactyl:tags/text()|$root//dactyl:tag/text()">
|
||||
<xsl:value-of select="concat(., ' ')"/>
|
||||
</xsl:for-each>
|
||||
</xsl:attribute>
|
||||
<xsl:copy-of select="$root/node()"/>
|
||||
</dactyl:document>
|
||||
</xsl:variable>
|
||||
|
||||
<html dactyl:highlight="Help">
|
||||
<head>
|
||||
<title><xsl:value-of select="@title"/></title>
|
||||
<script type="text/javascript" src="chrome://dactyl/content/help.js"/>
|
||||
</head>
|
||||
<body dactyl:highlight="HelpBody">
|
||||
<xsl:apply-templates select="exsl:node-set($doc2)/dactyl:document/node()" mode="help-1"/>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Table of Contents {{{1 -->
|
||||
@@ -125,14 +152,14 @@
|
||||
local-name() = $tag and not(preceding::*[local-name() = $lasttag][position() = 1 and not(.=$context)])]"/>
|
||||
|
||||
<xsl:if test="$nodes">
|
||||
<ol dactyl:highlight="HelpOrderedList">
|
||||
<ol level="{$level}" dactyl:highlight="HelpOrderedList">
|
||||
<xsl:for-each select="$nodes">
|
||||
<li>
|
||||
<a>
|
||||
<xsl:if test="@tag">
|
||||
<xsl:attribute name="href"><xsl:value-of select="concat('#', substring-before(concat(@tag, ' '), ' '))"/></xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="node()"/>
|
||||
<xsl:apply-templates select="node()" mode="help-1"/>
|
||||
</a>
|
||||
<xsl:call-template name="toc">
|
||||
<xsl:with-param name="level" select="$level + 1"/>
|
||||
@@ -144,7 +171,7 @@
|
||||
</ol>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:toc" mode="pass-2">
|
||||
<xsl:template match="dactyl:toc" mode="help-2">
|
||||
<xsl:variable name="TOC">
|
||||
<context/>
|
||||
<xsl:for-each
|
||||
@@ -174,36 +201,38 @@
|
||||
|
||||
<!-- Items {{{1 -->
|
||||
|
||||
<xsl:template match="dactyl:strut" mode="pass-2">
|
||||
<xsl:template match="dactyl:strut" mode="help-2">
|
||||
<div style="clear: both"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:item" mode="pass-2">
|
||||
<xsl:template match="dactyl:item" mode="help-2">
|
||||
<div dactyl:highlight="HelpItem">
|
||||
<xsl:apply-templates select="dactyl:tags|dactyl:spec|dactyl:strut"/>
|
||||
<xsl:apply-templates select="dactyl:tags|dactyl:spec|dactyl:strut" mode="help-1"/>
|
||||
<xsl:if test="not(dactyl:description/@short)">
|
||||
<hr style="border: 0; height: 0; margin: 0; width: 100%; float: right;"/>
|
||||
<div dactyl:highlight="HelpOptInfo">
|
||||
<xsl:apply-templates select="dactyl:type|dactyl:default"/>
|
||||
<div style="clear: both;"/>
|
||||
</div>
|
||||
<xsl:if test="dactyl:type|dactyl:default">
|
||||
<div dactyl:highlight="HelpOptInfo">
|
||||
<xsl:apply-templates select="dactyl:type|dactyl:default" mode="help-1"/>
|
||||
<div style="clear: both;"/>
|
||||
</div>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="dactyl:description"/>
|
||||
<xsl:apply-templates select="dactyl:description" mode="help-1"/>
|
||||
<div style="clear: both;"/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:spec[preceding-sibling::dactyl:spec]" mode="pass-2">
|
||||
<!--
|
||||
<xsl:template match="dactyl:item/dactyl:spec[position() = last()]" mode="help-2">
|
||||
<div style="clear: both;"/>
|
||||
<div dactyl:highlight="HelpSpec">
|
||||
<xsl:apply-templates/>
|
||||
</div>
|
||||
<div dactyl:highlight="HelpSpec"><xsl:apply-templates mode="help-1"/></div>
|
||||
</xsl:template>
|
||||
-->
|
||||
|
||||
<xsl:template match="dactyl:default[not(@type='plain')]" mode="pass-2">
|
||||
<xsl:template match="dactyl:default[not(@type='plain')]" mode="help-2">
|
||||
<xsl:variable name="type" select="preceding-sibling::dactyl:type[1] | following-sibling::dactyl:type[1]"/>
|
||||
<span dactyl:highlight="HelpDefault">(default:<xsl:text> </xsl:text>
|
||||
<xsl:choose>
|
||||
<xsl:when test="starts-with($type, 'string') or starts-with($type, 'regex')">
|
||||
<span dactyl:highlight="HelpString"><xsl:apply-templates/></span>
|
||||
<span dactyl:highlight="HelpString"><xsl:apply-templates mode="help-1"/></span>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<span>
|
||||
@@ -214,22 +243,32 @@
|
||||
<xsl:when test="$type = 'charlist'">String</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:attribute>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:apply-templates select="node()" mode="help-1"/>
|
||||
</span>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>)
|
||||
</span>
|
||||
</xsl:choose>)</span>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Tag Definitions {{{1 -->
|
||||
|
||||
<xsl:template match="dactyl:tags" mode="pass-2">
|
||||
<xsl:template match="dactyl:item/dactyl:tags[position() = last()]" mode="help-2">
|
||||
<div style="clear: right"/>
|
||||
<xsl:call-template name="parse-tags">
|
||||
<xsl:with-param name="text" select="."/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:tag|@tag" mode="pass-2">
|
||||
<xsl:template match="dactyl:tags" mode="help-2">
|
||||
<xsl:call-template name="parse-tags">
|
||||
<xsl:with-param name="text" select="."/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="@tag[parent::dactyl:p]" mode="help-2">
|
||||
<xsl:call-template name="parse-tags">
|
||||
<xsl:with-param name="text" select="."/>
|
||||
</xsl:call-template>
|
||||
<div style="clear: right"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:tag|@tag" mode="help-2">
|
||||
<xsl:call-template name="parse-tags">
|
||||
<xsl:with-param name="text" select="."/>
|
||||
</xsl:call-template>
|
||||
@@ -249,31 +288,40 @@
|
||||
<xsl:param name="contents" select="text()"/>
|
||||
<xsl:variable name="tag" select="str:tokenize($contents, ' [!')[1]"/>
|
||||
<a href="dactyl://help-tag/{$tag}" style="color: inherit;">
|
||||
<xsl:if test="contains($tags, concat(' ', $tag, ' '))">
|
||||
<xsl:if test="contains(ancestor::*/@document-tags, concat(' ', $tag, ' '))">
|
||||
<xsl:attribute name="href">#<xsl:value-of select="$tag"/></xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="$contents"/>
|
||||
</a>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="dactyl:o" mode="pass-2">
|
||||
<span dactyl:highlight="HelpOption">
|
||||
<xsl:template match="dactyl:o" mode="help-2">
|
||||
<span dactyl:highlight="HelpOpt">
|
||||
<xsl:call-template name="linkify-tag">
|
||||
<xsl:with-param name="contents" select='concat("'", text(), "'")'/>
|
||||
</xsl:call-template>
|
||||
</span>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:t" mode="pass-2">
|
||||
<xsl:template match="dactyl:pref" mode="help-2">
|
||||
<a href="http://kb.mozillazine.org/{text()}" dactyl:highlight="HelpOpt"
|
||||
>'<xsl:apply-templates select="@*|node()" mode="help-1"/>'</a>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:t" mode="help-2">
|
||||
<span dactyl:highlight="HelpTopic">
|
||||
<xsl:call-template name="linkify-tag"/>
|
||||
</span>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:k" mode="pass-2">
|
||||
<xsl:template match="dactyl:k" mode="help-2">
|
||||
<span dactyl:highlight="HelpKey">
|
||||
<xsl:call-template name="linkify-tag"/>
|
||||
</span>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:k[@name]" mode="pass-2">
|
||||
<xsl:template match="dactyl:kwd" mode="help-2">
|
||||
<span dactyl:highlight="HelpKeyword">
|
||||
<xsl:apply-templates select="@*|node()" mode="help-1"/>
|
||||
</span>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:k[@name]" mode="help-2">
|
||||
<span dactyl:highlight="HelpKey">
|
||||
<xsl:call-template name="linkify-tag">
|
||||
<xsl:with-param name="contents" select="concat('<', @name, '>', .)"/>
|
||||
@@ -283,100 +331,117 @@
|
||||
|
||||
<!-- HTML-ish elements {{{1 -->
|
||||
|
||||
<xsl:template match="dactyl:dl" mode="pass-2">
|
||||
<xsl:template match="dactyl:dl" mode="help-2">
|
||||
<dl>
|
||||
<column/>
|
||||
<column/>
|
||||
<xsl:for-each select="dactyl:dt">
|
||||
<tr>
|
||||
<xsl:apply-templates select="."/>
|
||||
<xsl:apply-templates select="following-sibling::dactyl:dd[1]"/>
|
||||
<xsl:apply-templates select="." mode="help-1"/>
|
||||
<xsl:apply-templates select="following-sibling::dactyl:dd[1]" mode="help-1"/>
|
||||
</tr>
|
||||
</xsl:for-each>
|
||||
</dl>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="dactyl:link" mode="pass-2">
|
||||
<a href="{@topic}"><xsl:apply-templates select="@*|node()"/></a>
|
||||
<xsl:template match="dactyl:link" mode="help-2">
|
||||
<a href="{@topic}">
|
||||
<xsl:if test="regexp:match(@topic, '^[a-zA-Z]*:', '')
|
||||
and not(starts-with(@topic, 'mailto:'))">
|
||||
<xsl:attribute name="rel">external</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="@*|node()" mode="help-1"/>
|
||||
</a>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="dactyl:hl" mode="help-2">
|
||||
<span dactyl:highlight="{@key}"><xsl:apply-templates select="@*|node()" mode="help-1"/></span>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:h" mode="help-2">
|
||||
<em><xsl:apply-templates select="@*|node()" mode="help-1"/></em>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:em | dactyl:tt | dactyl:p |
|
||||
dactyl:dt | dactyl:dd |
|
||||
dactyl:ol | dactyl:ul | dactyl:li |
|
||||
dactyl:h1 | dactyl:h2 | dactyl:h3"
|
||||
mode="pass-2">
|
||||
<xsl:element name="html:{local-name()}">
|
||||
<xsl:apply-templates select="@*|node()"/>
|
||||
mode="help-2">
|
||||
<xsl:element name="{local-name()}">
|
||||
<xsl:apply-templates select="@*|node()" mode="help-1"/>
|
||||
</xsl:element>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="dactyl:code" mode="pass-2">
|
||||
<pre dactyl:highlight="HelpCode"><xsl:apply-templates select="@*|node()"/></pre>
|
||||
<xsl:template match="dactyl:code" mode="help-2">
|
||||
<pre dactyl:highlight="HelpCode"><xsl:apply-templates select="@*|node()" mode="help-1"/></pre>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Help elements {{{1 -->
|
||||
|
||||
<xsl:template match="dactyl:a" mode="pass-2">
|
||||
<span dactyl:highlight="HelpArg">{<xsl:apply-templates select="@*|node()"/>}</span>
|
||||
<xsl:template match="dactyl:a" mode="help-2">
|
||||
<span dactyl:highlight="HelpArg">{<xsl:apply-templates select="@*|node()" mode="help-1"/>}</span>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:oa" mode="pass-2">
|
||||
<span dactyl:highlight="HelpOptionalArg">[<xsl:apply-templates select="@*|node()"/>]</span>
|
||||
<xsl:template match="dactyl:oa" mode="help-2">
|
||||
<span dactyl:highlight="HelpOptionalArg">[<xsl:apply-templates select="@*|node()" mode="help-1"/>]</span>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="dactyl:note" mode="pass-2">
|
||||
<xsl:template match="dactyl:note" mode="help-2">
|
||||
<p style="clear: both;">
|
||||
<xsl:apply-templates select="@*"/>
|
||||
<xsl:apply-templates select="@*" mode="help-1"/>
|
||||
<div style="clear: both;"/>
|
||||
<span dactyl:highlight="HelpNote">Note:</span>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:apply-templates select="node()"/>
|
||||
<xsl:apply-templates select="node()" mode="help-1"/>
|
||||
</p>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:warning" mode="pass-2">
|
||||
<xsl:template match="dactyl:warning" mode="help-2">
|
||||
<p style="clear: both;">
|
||||
<xsl:apply-templates select="@*"/>
|
||||
<xsl:apply-templates select="@*" mode="help-1"/>
|
||||
<div style="clear: both;"/>
|
||||
<span dactyl:highlight="HelpWarning">Warning:</span>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:apply-templates select="node()"/>
|
||||
<xsl:apply-templates select="node()" mode="help-1"/>
|
||||
</p>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:default" mode="pass-2">
|
||||
<span dactyl:highlight="HelpDefault">
|
||||
(default:<xsl:text> </xsl:text><xsl:apply-templates select="@*|node()"/>)
|
||||
</span>
|
||||
<xsl:template match="dactyl:default" mode="help-2">
|
||||
<span dactyl:highlight="HelpDefault">(default:<xsl:text> </xsl:text><xsl:apply-templates select="@*|node()" mode="help-1"/>)</span>
|
||||
</xsl:template>
|
||||
|
||||
<!-- HTML-ify other elements {{{1 -->
|
||||
|
||||
<xsl:template match="dactyl:ex" mode="pass-2">
|
||||
<xsl:template match="dactyl:ex" mode="help-2">
|
||||
<span dactyl:highlight="HelpEx">
|
||||
<xsl:variable name="tag" select="str:tokenize(text(), ' [!')[1]"/>
|
||||
<a href="dactyl://help-tag/{$tag}" style="color: inherit;">
|
||||
<xsl:if test="contains($tags, concat(' ', $tag, ' '))">
|
||||
<xsl:if test="contains(ancestor::*/@document-tags, concat(' ', $tag, ' '))">
|
||||
<xsl:attribute name="href">#<xsl:value-of select="$tag"/></xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:apply-templates mode="help-1"/>
|
||||
</a>
|
||||
</span>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="dactyl:description | dactyl:example | dactyl:spec" mode="pass-2">
|
||||
<xsl:template match="dactyl:description | dactyl:example | dactyl:spec" mode="help-2">
|
||||
<div>
|
||||
<xsl:if test="self::dactyl:description"><xsl:attribute name="dactyl:highlight">HelpDescription</xsl:attribute></xsl:if>
|
||||
<xsl:if test="self::dactyl:example"><xsl:attribute name="dactyl:highlight">HelpExample</xsl:attribute></xsl:if>
|
||||
<xsl:if test="self::dactyl:spec"><xsl:attribute name="dactyl:highlight">HelpSpec</xsl:attribute></xsl:if>
|
||||
<xsl:apply-templates select="@*|node()"/>
|
||||
<xsl:apply-templates select="@*|node()" mode="help-1"/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:str | dactyl:t | dactyl:type" mode="pass-2">
|
||||
<xsl:template match="dactyl:str | dactyl:type" mode="help-2">
|
||||
<span>
|
||||
<xsl:if test="self::dactyl:str"><xsl:attribute name="dactyl:highlight">HelpString</xsl:attribute></xsl:if>
|
||||
<xsl:if test="self::dactyl:t"><xsl:attribute name="dactyl:highlight">HelpTopic</xsl:attribute></xsl:if>
|
||||
<xsl:if test="self::dactyl:type"><xsl:attribute name="dactyl:highlight">HelpType</xsl:attribute></xsl:if>
|
||||
<xsl:apply-templates select="@*|node()"/>
|
||||
<xsl:apply-templates select="@*|node()" mode="help-1"/>
|
||||
</span>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:xml-block" mode="help-2">
|
||||
<div dactyl:highlight="HelpXMLBlock">
|
||||
<xsl:call-template name="xml-highlight"/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:xml-highlight" mode="help-2">
|
||||
<xsl:call-template name="xml-highlight"/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Plugins {{{1 -->
|
||||
|
||||
@@ -400,59 +465,133 @@
|
||||
</span>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:author[@email]" mode="pass-2">
|
||||
<xsl:template match="dactyl:author[@email]" mode="help-2">
|
||||
<xsl:call-template name="info">
|
||||
<xsl:with-param name="label" select="'Author'"/>
|
||||
<xsl:with-param name="extra">
|
||||
<xsl:text> </xsl:text><a href="mailto:{@email}">✉</a>
|
||||
<xsl:text> </xsl:text><a href="mailto:{@email}"></a>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:author" mode="pass-2">
|
||||
<xsl:template match="dactyl:author" mode="help-2">
|
||||
<xsl:call-template name="info">
|
||||
<xsl:with-param name="label" select="'Author'"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:license" mode="pass-2">
|
||||
<xsl:template match="dactyl:license" mode="help-2">
|
||||
<xsl:call-template name="info">
|
||||
<xsl:with-param name="label" select="'License'"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="dactyl:plugin" mode="pass-2">
|
||||
<xsl:template match="dactyl:plugin" mode="help-2">
|
||||
<xsl:call-template name="info">
|
||||
<xsl:with-param name="label" select="'Plugin'"/>
|
||||
<xsl:with-param name="nodes">
|
||||
<span><xsl:value-of select="@name"/></span>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:if test="@version">
|
||||
<xsl:call-template name="info">
|
||||
<xsl:with-param name="label" select="'Version'"/>
|
||||
<xsl:with-param name="link" select="''"/>
|
||||
<xsl:with-param name="nodes">
|
||||
<span><xsl:value-of select="@version"/></span>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates mode="help-1"/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Special Element Templates {{{1 -->
|
||||
|
||||
<xsl:template match="dactyl:logo">
|
||||
<xsl:template match="dactyl:logo" mode="help-1">
|
||||
<span dactyl:highlight="Logo"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="dactyl:pan[dactyl:handle]">
|
||||
<form style="text-align:center" xmlns="http://www.w3.org/1999/xhtml"
|
||||
action="https://www.paypal.com/cgi-bin/webscr" method="post">
|
||||
<input type="hidden" name="cmd" value="_s-xclick"/>
|
||||
<input type="image" src="chrome://dactyl/content/x-click-but21.png" border="0" name="submit" alt="Donate with PayPal"/>
|
||||
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
|
||||
"/>
|
||||
</form>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Process Tree {{{1 -->
|
||||
|
||||
<xsl:template match="@*|node()" mode="pass-2">
|
||||
<xsl:template match="@*|node()" mode="help-2">
|
||||
<xsl:copy>
|
||||
<xsl:apply-templates select="@*|node()"/>
|
||||
<xsl:apply-templates select="@*|node()" mode="help-1"/>
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="@*|node()">
|
||||
<xsl:apply-templates select="." mode="pass-2"/>
|
||||
<xsl:template match="@*|node()" mode="help-1">
|
||||
<xsl:apply-templates select="." mode="help-2"/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- XML Highlighting (xsl:import doesn't work in Firefox 3.x) {{{1 -->
|
||||
<xsl:template name="xml-highlight">
|
||||
<div dactyl:highlight="HelpXML">
|
||||
<xsl:apply-templates mode="xml-highlight"/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="xml-namespace">
|
||||
<xsl:param name="node" select="."/>
|
||||
<xsl:if test="name($node) != local-name($node)">
|
||||
<span dactyl:highlight="HelpXMLNamespace">
|
||||
<xsl:value-of select="substring-before(name($node), ':')"/>
|
||||
</span>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="local-name($node)"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="*" mode="xml-highlight">
|
||||
<span dactyl:highlight="HelpXMLTagStart">
|
||||
<xsl:text><</xsl:text>
|
||||
<xsl:call-template name="xml-namespace"/>
|
||||
<xsl:apply-templates select="@*" mode="xml-highlight"/>
|
||||
<xsl:text>/></xsl:text>
|
||||
</span>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="*[node()]" mode="xml-highlight">
|
||||
<span dactyl:highlight="HelpXMLTagStart">
|
||||
<xsl:text><</xsl:text>
|
||||
<xsl:call-template name="xml-namespace"/>
|
||||
<xsl:apply-templates select="@*" mode="xml-highlight"/>
|
||||
<xsl:text>></xsl:text>
|
||||
</span>
|
||||
<xsl:apply-templates select="node()" mode="xml-highlight"/>
|
||||
<span dactyl:highlight="HelpXMLTagEnd">
|
||||
<xsl:text></</xsl:text>
|
||||
<xsl:call-template name="xml-namespace"/>
|
||||
<xsl:text>></xsl:text>
|
||||
</span>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="dactyl:escape | dactyl:escape[node()]" mode="xml-highlight">
|
||||
<span dactyl:highlight="HelpXMLText">
|
||||
<xsl:apply-templates mode="help-1"/>
|
||||
</span>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="@*" mode="xml-highlight">
|
||||
<xsl:text> </xsl:text>
|
||||
<span dactyl:highlight="HelpXMLAttribute">
|
||||
<xsl:call-template name="xml-namespace"/>
|
||||
</span>
|
||||
<span dactyl:highlight="HelpXMLString">
|
||||
<xsl:value-of select="regexp:replace(., '"', 'g', '&quot;')"/>
|
||||
</span>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="comment()" mode="xml-highlight">
|
||||
<span dactyl:highlight="HelpXMLComment">
|
||||
<xsl:value-of select="."/>
|
||||
</span>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="processing-instruction()" mode="xml-highlight">
|
||||
<span dactyl:highlight="HelpXMLProcessing">
|
||||
<xsl:value-of select="."/>
|
||||
</span>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="text()" mode="xml-highlight">
|
||||
<span dactyl:highlight="HelpXMLText">
|
||||
<xsl:value-of select="regexp:replace(., '<', 'g', '&lt;')"/>
|
||||
</span>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user