mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-22 23:47:57 +01:00
Minor help fixes. Almost time to merge. Need to get rid of these silly security warnings flooding the console.
--HG-- branch : xslt
This commit is contained in:
@@ -38,7 +38,7 @@ function makeChannel(url, orig)
|
|||||||
return channel;
|
return channel;
|
||||||
}
|
}
|
||||||
function fakeChannel(orig)
|
function fakeChannel(orig)
|
||||||
makeChannel("chrome://does/not/exist/in/any/reasonable/configuration", orig);
|
makeChannel("chrome://liberator/content/does/not/exist", orig);
|
||||||
function redirect(to, orig)
|
function redirect(to, orig)
|
||||||
{
|
{
|
||||||
let html = <html><head><meta http-equiv="Refresh" content={"0;" + to}/></head></html>.toXMLString();
|
let html = <html><head><meta http-equiv="Refresh" content={"0;" + to}/></head></html>.toXMLString();
|
||||||
@@ -94,9 +94,9 @@ function Liberator()
|
|||||||
{
|
{
|
||||||
this.wrappedJSObject = this;
|
this.wrappedJSObject = this;
|
||||||
|
|
||||||
this.__defineGetter__("helpNamespaces", function () NAMESPACES ? NAMESPACES.slice() : null);
|
this.__defineGetter__("helpNamespaces", function () this.NAMESPACES ? this.NAMESPACES.slice() : null);
|
||||||
this.__defineSetter__("helpNamespaces", function (namespaces) {
|
this.__defineSetter__("helpNamespaces", function (namespaces) {
|
||||||
if (!NAMESPACES)
|
if (!this.NAMESPACES)
|
||||||
parseHelpTags(namespaces);
|
parseHelpTags(namespaces);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -112,6 +112,7 @@ function Liberator()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.httpGet = httpGet;
|
||||||
function httpGet(url)
|
function httpGet(url)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -126,8 +127,9 @@ function Liberator()
|
|||||||
|
|
||||||
const self = this;
|
const self = this;
|
||||||
this.HELP_TAGS = {};
|
this.HELP_TAGS = {};
|
||||||
this.FILE_MAP = { all: "chrome://liberator/locale/all.xml" };
|
this.FILE_MAP = {};
|
||||||
var NAMESPACES = null;
|
this.OVERLAY_MAP = {};
|
||||||
|
this.NAMESPACES = null;
|
||||||
var HELP_FILES = null;
|
var HELP_FILES = null;
|
||||||
|
|
||||||
function XSLTProcessor(sheet)
|
function XSLTProcessor(sheet)
|
||||||
@@ -139,23 +141,34 @@ function Liberator()
|
|||||||
|
|
||||||
function findHelpFile(file)
|
function findHelpFile(file)
|
||||||
{
|
{
|
||||||
for each (let namespace in NAMESPACES)
|
let result = [];
|
||||||
|
for each (let namespace in self.NAMESPACES)
|
||||||
{
|
{
|
||||||
let url = ["chrome://", namespace, "/locale/", file, ".xml"].join("");
|
let url = ["chrome://", namespace, "/locale/", file, ".xml"].join("");
|
||||||
let res = httpGet(url);
|
let res = httpGet(url);
|
||||||
if (res && res.responseXML.documentElement.localName == "document")
|
if (res)
|
||||||
return [url, res.responseXML];
|
{
|
||||||
|
if (res.responseXML.documentElement.localName == "document")
|
||||||
|
self.FILE_MAP[file] = url;
|
||||||
|
if (res.responseXML.documentElement.localName == "overlay")
|
||||||
|
self.OVERLAY_MAP[file] = url;
|
||||||
|
if (res.responseXML.documentElement.localName == "document")
|
||||||
|
result = [url, res.responseXML];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return []
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseHelpTags(namespaces)
|
function parseHelpTags(namespaces)
|
||||||
{
|
{
|
||||||
HELP_FILES = [];
|
HELP_FILES = [];
|
||||||
NAMESPACES = Array.slice(namespaces);
|
self.NAMESPACES = Array.slice(namespaces);
|
||||||
|
|
||||||
|
findHelpFile("all");
|
||||||
|
|
||||||
const XSLT = XSLTProcessor("chrome://liberator/content/help.xsl");
|
const XSLT = XSLTProcessor("chrome://liberator/content/help.xsl");
|
||||||
self.HELP_TAGS.all = "all";
|
self.HELP_TAGS.all = "all";
|
||||||
for each (let namespace in NAMESPACES)
|
for each (let namespace in self.NAMESPACES)
|
||||||
{
|
{
|
||||||
let files = xpath(
|
let files = xpath(
|
||||||
httpGet("chrome://" + namespace + "/locale/all.xml").responseXML,
|
httpGet("chrome://" + namespace + "/locale/all.xml").responseXML,
|
||||||
@@ -163,8 +176,9 @@ function Liberator()
|
|||||||
for each (let file in files)
|
for each (let file in files)
|
||||||
{
|
{
|
||||||
let [url, doc] = findHelpFile(file.value);
|
let [url, doc] = findHelpFile(file.value);
|
||||||
if (doc)
|
if (!doc)
|
||||||
self.FILE_MAP[file.value] = url;
|
continue;
|
||||||
|
self.FILE_MAP[file.value] = url;
|
||||||
doc = XSLT.transformToDocument(doc);
|
doc = XSLT.transformToDocument(doc);
|
||||||
for (let elem in xpath(doc, "//liberator:tag/text()"))
|
for (let elem in xpath(doc, "//liberator:tag/text()"))
|
||||||
self.HELP_TAGS[elem.textContent] = file.value;
|
self.HELP_TAGS[elem.textContent] = file.value;
|
||||||
@@ -193,7 +207,7 @@ Liberator.prototype = {
|
|||||||
defaultPort: -1,
|
defaultPort: -1,
|
||||||
allowPort: function (port, scheme) false,
|
allowPort: function (port, scheme) false,
|
||||||
protocolFlags: 0
|
protocolFlags: 0
|
||||||
| nsIProtocolHandler.URI_IS_UI_RESOURCE
|
| nsIProtocolHandler.URI_LOADABLE_BY_ANYONE
|
||||||
| nsIProtocolHandler.URI_IS_LOCAL_RESOURCE,
|
| nsIProtocolHandler.URI_IS_LOCAL_RESOURCE,
|
||||||
|
|
||||||
newURI: function (spec, charset, baseURI)
|
newURI: function (spec, charset, baseURI)
|
||||||
@@ -213,8 +227,9 @@ Liberator.prototype = {
|
|||||||
{
|
{
|
||||||
case "help":
|
case "help":
|
||||||
let url = this.FILE_MAP[uri.path.replace(/^\/|#.*/g, "")];
|
let url = this.FILE_MAP[uri.path.replace(/^\/|#.*/g, "")];
|
||||||
if (!url)
|
return makeChannel(url, uri);
|
||||||
break;
|
case "help-overlay":
|
||||||
|
url = this.OVERLAY_MAP[uri.path.replace(/^\/|#.*/g, "")];
|
||||||
return makeChannel(url, uri);
|
return makeChannel(url, uri);
|
||||||
case "help-tag":
|
case "help-tag":
|
||||||
let tag = uri.path.substr(1);
|
let tag = uri.path.substr(1);
|
||||||
|
|||||||
@@ -77,14 +77,23 @@ function Bookmarks() //{{{
|
|||||||
|
|
||||||
function loadBookmark(node)
|
function loadBookmark(node)
|
||||||
{
|
{
|
||||||
let uri = util.newURI(node.uri);
|
try
|
||||||
let keyword = bookmarksService.getKeywordForBookmark(node.itemId);
|
{
|
||||||
let tags = taggingService.getTagsForURI(uri, {}) || [];
|
let uri = util.newURI(node.uri);
|
||||||
let bmark = new Bookmark(node.uri, node.title, node.icon && node.icon.spec, keyword, tags, node.itemId);
|
let keyword = bookmarksService.getKeywordForBookmark(node.itemId);
|
||||||
|
let tags = taggingService.getTagsForURI(uri, {}) || [];
|
||||||
|
let bmark = new Bookmark(node.uri, node.title, node.icon && node.icon.spec, keyword, tags, node.itemId);
|
||||||
|
|
||||||
bookmarks.push(bmark);
|
bookmarks.push(bmark);
|
||||||
|
|
||||||
return bmark;
|
return bmark;
|
||||||
|
}
|
||||||
|
catch (e)
|
||||||
|
{
|
||||||
|
liberator.dump("Failed to create bookmark for URI: " + node.uri);
|
||||||
|
liberator.reportError(e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function readBookmark(id)
|
function readBookmark(id)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
xmlns:str="http://exslt.org/strings"
|
xmlns:str="http://exslt.org/strings"
|
||||||
extension-element-prefixes="str">
|
extension-element-prefixes="str">
|
||||||
|
|
||||||
<xsl:output method="xml"/>
|
<xsl:output method="xml" indent="no"/>
|
||||||
|
|
||||||
<xsl:template match="liberator:document">
|
<xsl:template match="liberator:document">
|
||||||
<html:html liberator:highlight="Help">
|
<html:html liberator:highlight="Help">
|
||||||
@@ -121,6 +121,9 @@
|
|||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
</xsl:copy>
|
</xsl:copy>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
<xsl:template match="liberator:ol" mode="pass-2">
|
||||||
|
<html:ol><xsl:apply-templates select="@*|node()"/></html:ol>
|
||||||
|
</xsl:template>
|
||||||
<xsl:template match="liberator:ex" mode="pass-2">
|
<xsl:template match="liberator:ex" mode="pass-2">
|
||||||
<xsl:copy>
|
<xsl:copy>
|
||||||
<xsl:call-template name="linkify-tag">
|
<xsl:call-template name="linkify-tag">
|
||||||
@@ -133,6 +136,16 @@
|
|||||||
<html:a href="{@topic}"><xsl:apply-templates select="@*|node()"/></html:a>
|
<html:a href="{@topic}"><xsl:apply-templates select="@*|node()"/></html:a>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="liberator:pan[liberator:handle]">
|
||||||
|
<form style="text-align:center" html="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://liberator/content/x-click-but21.gif" 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>
|
||||||
|
|
||||||
<xsl:template match="liberator:tag|@tag" mode="pass-2">
|
<xsl:template match="liberator:tag|@tag" mode="pass-2">
|
||||||
<xsl:call-template name="parse-tags">
|
<xsl:call-template name="parse-tags">
|
||||||
<xsl:with-param name="text"><xsl:value-of select="."/></xsl:with-param>
|
<xsl:with-param name="text"><xsl:value-of select="."/></xsl:with-param>
|
||||||
@@ -142,18 +155,18 @@
|
|||||||
<!-- This does't work. Why?
|
<!-- This does't work. Why?
|
||||||
<xsl:include href="chrome://liberator/content/overlay.xsl"/>
|
<xsl:include href="chrome://liberator/content/overlay.xsl"/>
|
||||||
-->
|
-->
|
||||||
<xsl:variable name="local" select="concat('chrome://&liberator.name;/locale/', /liberator:document/@name, '.xml')"/>
|
<xsl:variable name="overlay" select="concat('liberator://help-overlay/', /liberator:document/@name)"/>
|
||||||
<xsl:variable name="localdoc" select="document($local)/liberator:overlay"/>
|
<xsl:variable name="overlaydoc" select="document($overlay)/liberator:overlay"/>
|
||||||
|
|
||||||
<xsl:template name="splice-locals">
|
<xsl:template name="splice-overlays">
|
||||||
<xsl:param name="elem"/>
|
<xsl:param name="elem"/>
|
||||||
<xsl:param name="tag"/>
|
<xsl:param name="tag"/>
|
||||||
<xsl:for-each select="$localdoc/*[@insertbefore=$tag]">
|
<xsl:for-each select="$overlaydoc/*[@insertbefore=$tag]">
|
||||||
<xsl:apply-templates select="."/>
|
<xsl:apply-templates select="."/>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="$localdoc/*[@replace=$tag] and not($elem[@replace])">
|
<xsl:when test="$overlaydoc/*[@replace=$tag] and not($elem[@replace])">
|
||||||
<xsl:for-each select="$localdoc/*[@replace=$tag]">
|
<xsl:for-each select="$overlaydoc/*[@replace=$tag]">
|
||||||
<xsl:apply-templates select="." mode="pass-2"/>
|
<xsl:apply-templates select="." mode="pass-2"/>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
@@ -163,25 +176,25 @@
|
|||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</xsl:otherwise>
|
</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
<xsl:for-each select="$localdoc/*[@insertafter=$tag]">
|
<xsl:for-each select="$overlaydoc/*[@insertafter=$tag]">
|
||||||
<xsl:apply-templates select="."/>
|
<xsl:apply-templates select="."/>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="liberator:document/liberator:tags|liberator:document/liberator:tag">
|
<xsl:template match="liberator:document/liberator:tags|liberator:document/liberator:tag">
|
||||||
<xsl:call-template name="splice-locals">
|
<xsl:call-template name="splice-overlays">
|
||||||
<xsl:with-param name="tag" select="substring-before(concat(., ' '), ' ')"/>
|
<xsl:with-param name="tag" select="substring-before(concat(., ' '), ' ')"/>
|
||||||
<xsl:with-param name="elem" select="self::node()"/>
|
<xsl:with-param name="elem" select="self::node()"/>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
<xsl:template match="liberator:document/*[liberator:tags]">
|
<xsl:template match="liberator:document/*[liberator:tags]">
|
||||||
<xsl:call-template name="splice-locals">
|
<xsl:call-template name="splice-overlays">
|
||||||
<xsl:with-param name="tag" select="substring-before(concat(liberator:tags, ' '), ' ')"/>
|
<xsl:with-param name="tag" select="substring-before(concat(liberator:tags, ' '), ' ')"/>
|
||||||
<xsl:with-param name="elem" select="self::node()"/>
|
<xsl:with-param name="elem" select="self::node()"/>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
<xsl:template match="liberator:*[@tag and not(@replace)]">
|
<xsl:template match="liberator:*[@tag and not(@replace)]">
|
||||||
<xsl:call-template name="splice-locals">
|
<xsl:call-template name="splice-overlays">
|
||||||
<xsl:with-param name="tag" select="substring-before(concat(@tag, ' '), ' ')"/>
|
<xsl:with-param name="tag" select="substring-before(concat(@tag, ' '), ' ')"/>
|
||||||
<xsl:with-param name="elem" select="self::node()"/>
|
<xsl:with-param name="elem" select="self::node()"/>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
xmlns:str="http://exslt.org/strings"
|
xmlns:str="http://exslt.org/strings"
|
||||||
extension-element-prefixes="str">
|
extension-element-prefixes="str">
|
||||||
|
|
||||||
<xsl:variable name="local" select="concat('chrome://&liberator.name;/locale/', /liberator:document/@name, '.xml')"/>
|
<xsl:variable name="overlay" select="concat('liberator://help-overlay/', /liberator:document/@name)"/>
|
||||||
<xsl:variable name="localdoc" select="document($local)/liberator:overlay"/>
|
<xsl:variable name="overlaydoc" select="document($overlay)/liberator:overlay"/>
|
||||||
|
|
||||||
<xsl:template match="liberator:document">
|
<xsl:template match="liberator:document">
|
||||||
<xsl:copy>
|
<xsl:copy>
|
||||||
@@ -17,15 +17,15 @@
|
|||||||
</xsl:copy>
|
</xsl:copy>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template name="splice-locals">
|
<xsl:template name="splice-overlays">
|
||||||
<xsl:param name="elem"/>
|
<xsl:param name="elem"/>
|
||||||
<xsl:param name="tag"/>
|
<xsl:param name="tag"/>
|
||||||
<xsl:for-each select="$localdoc/*[@insertbefore=$tag]">
|
<xsl:for-each select="$overlaydoc/*[@insertbefore=$tag]">
|
||||||
<xsl:apply-templates select="."/>
|
<xsl:apply-templates select="."/>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="$localdoc/*[@replace=$tag] and not($elem[@replace])">
|
<xsl:when test="$overlaydoc/*[@replace=$tag] and not($elem[@replace])">
|
||||||
<xsl:for-each select="$localdoc/*[@replace=$tag]">
|
<xsl:for-each select="$overlaydoc/*[@replace=$tag]">
|
||||||
<xsl:apply-templates select="." mode="pass-2"/>
|
<xsl:apply-templates select="." mode="pass-2"/>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
@@ -35,25 +35,25 @@
|
|||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</xsl:otherwise>
|
</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
<xsl:for-each select="$localdoc/*[@insertafter=$tag]">
|
<xsl:for-each select="$overlaydoc/*[@insertafter=$tag]">
|
||||||
<xsl:apply-templates select="."/>
|
<xsl:apply-templates select="."/>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="liberator:document/liberator:tags|liberator:document/liberator:tag">
|
<xsl:template match="liberator:document/liberator:tags|liberator:document/liberator:tag">
|
||||||
<xsl:call-template name="splice-locals">
|
<xsl:call-template name="splice-overlays">
|
||||||
<xsl:with-param name="tag" select="substring-before(concat(., ' '), ' ')"/>
|
<xsl:with-param name="tag" select="substring-before(concat(., ' '), ' ')"/>
|
||||||
<xsl:with-param name="elem" select="self::node()"/>
|
<xsl:with-param name="elem" select="self::node()"/>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
<xsl:template match="liberator:document/*[liberator:tags]">
|
<xsl:template match="liberator:document/*[liberator:tags]">
|
||||||
<xsl:call-template name="splice-locals">
|
<xsl:call-template name="splice-overlays">
|
||||||
<xsl:with-param name="tag" select="substring-before(concat(liberator:tags, ' '), ' ')"/>
|
<xsl:with-param name="tag" select="substring-before(concat(liberator:tags, ' '), ' ')"/>
|
||||||
<xsl:with-param name="elem" select="self::node()"/>
|
<xsl:with-param name="elem" select="self::node()"/>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
<xsl:template match="liberator:*[@tag and not(@replace)]">
|
<xsl:template match="liberator:*[@tag and not(@replace)]">
|
||||||
<xsl:call-template name="splice-locals">
|
<xsl:call-template name="splice-overlays">
|
||||||
<xsl:with-param name="tag" select="substring-before(concat(@tag, ' '), ' ')"/>
|
<xsl:with-param name="tag" select="substring-before(concat(@tag, ' '), ' ')"/>
|
||||||
<xsl:with-param name="elem" select="self::node()"/>
|
<xsl:with-param name="elem" select="self::node()"/>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ Highlights.prototype.CSS = <![CDATA[
|
|||||||
HelpLink:hover text-decoration: underline;
|
HelpLink:hover text-decoration: underline;
|
||||||
|
|
||||||
HelpList,liberator|ul display: block; list-style: outside disc;
|
HelpList,liberator|ul display: block; list-style: outside disc;
|
||||||
HelpOrderedList,liberator|ol display: block; list-style: outside numeric;
|
HelpOrderedList,liberator|*>html:ol display: block; list-style: outside decimal;
|
||||||
HelpListItem,liberator|li display: list-item; margin-left: 1.5em;
|
HelpListItem,liberator|li display: list-item; margin-left: 1.5em;
|
||||||
|
|
||||||
HelpNote,liberator|note display: block; margin: 1em 0em;
|
HelpNote,liberator|note display: block; margin: 1em 0em;
|
||||||
|
|||||||
@@ -88,9 +88,9 @@
|
|||||||
Set the filetype to mail when editing email at Gmail:
|
Set the filetype to mail when editing email at Gmail:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<code>
|
<code><!-- Why is the XSLT processor mangling newlines? -->
|
||||||
<ex>:autocmd LocationChange .* :set editor=<str>gvim -f</str></ex>
|
<ex>:autocmd LocationChange .* :set editor=<str>gvim -f</str></ex>

|
||||||
<ex>:autocmd LocationChange mail\\.google\\.com :set editor=<str>gvim -f -c 'set ft=mail'</str></ex>
|
<ex>:autocmd LocationChange mail\\.google\\.com :set editor=<str>gvim -f -c 'set ft=mail'</str></ex>
|
||||||
</code>
|
</code>
|
||||||
|
|
||||||
</document>
|
</document>
|
||||||
|
|||||||
@@ -1,6 +1,13 @@
|
|||||||
|
|
||||||
|
<!ENTITY % liberatorBranding SYSTEM "chrome://branding/locale/brand.dtd">
|
||||||
|
%liberatorBranding;
|
||||||
|
|
||||||
<!ENTITY liberator.mainWindow "messengerWindow">
|
<!ENTITY liberator.mainWindow "messengerWindow">
|
||||||
<!ENTITY liberator.name "muttator">
|
<!ENTITY liberator.name "muttator">
|
||||||
|
<!ENTITY liberator.idname "muttator">
|
||||||
|
<!ENTITY liberator.appname "Muttator">
|
||||||
|
<!ENTITY liberator.host "&brandShortName;">
|
||||||
|
<!ENTITY liberator.hostbin "thunderbird">
|
||||||
<!ENTITY liberator.statusBefore "">
|
<!ENTITY liberator.statusBefore "">
|
||||||
<!ENTITY liberator.statusAfter "statusTextBox">
|
<!ENTITY liberator.statusAfter "statusTextBox">
|
||||||
|
|
||||||
|
|||||||
38
muttator/locale/en-US/autocommands.xml
Normal file
38
muttator/locale/en-US/autocommands.xml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
|
||||||
|
|
||||||
|
<!DOCTYPE overlay SYSTEM "chrome://liberator/content/liberator.dtd">
|
||||||
|
|
||||||
|
<overlay
|
||||||
|
xmlns="http://vimperator.org/namespaces/liberator"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
|
||||||
|
<dl tag="autocommand-list" replace="autocommand-list">
|
||||||
|
<dt>ColorScheme</dt> <dd>Triggered after a color scheme has been loaded</dd>
|
||||||
|
<dt>DOMLoad</dt> <dd>Triggered when a page's DOM content has fully loaded</dd>
|
||||||
|
<dt>DownloadPost</dt> <dd>Triggered when a download has completed</dd>
|
||||||
|
<dt>Fullscreen</dt> <dd>Triggered when the browser's fullscreen state changes</dd>
|
||||||
|
<dt>LocationChange</dt> <dd>Triggered when changing tabs or when navigating to a new location</dd>
|
||||||
|
<dt>PageLoadPre</dt> <dd>Triggered after a page load is initiated</dd>
|
||||||
|
<dt>PageLoad</dt> <dd>Triggered when a page gets (re)loaded/opened</dd>
|
||||||
|
<dt>ShellCmdPost</dt> <dd>Triggered after executing a shell command with <ex>:!</ex><a>cmd</a></dd>
|
||||||
|
<dt>&liberator.appname;Enter</dt> <dd>Triggered after &liberator.host; starts</dd>
|
||||||
|
<dt>&liberator.appname;LeavePre</dt><dd>Triggered before exiting &liberator.host;, just before destroying each module</dd>
|
||||||
|
<dt>&liberator.appname;Leave</dt> <dd>Triggered before exiting &liberator.host;</dd>
|
||||||
|
|
||||||
|
<dt>FolderLoad</dt> <dd>Triggered after switching folders in &liberator.host;</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<dl tag="autocommand-args" replace="autocommand-args">
|
||||||
|
<dt><url></dt> <dd>The URL against which the event was selected.</dd>
|
||||||
|
<dt><title></dt> <dd>The page, bookmark or download title.</dd>
|
||||||
|
<dt><doc></dt> <dd>The document for which the event occurred. Only for <em>DOMLoad</em>, <em>PageLoad</em> and <em>PageLoadPre</em>.</dd>
|
||||||
|
<dt><tab></dt> <dd>The tab in which the event occurred. Only for <em>DOMLoad</em>, <em>PageLoad</em> and <em>PageLoadPre</em>.</dd>
|
||||||
|
<dt><size></dt> <dd>The size of a downloaded file. Only for <em>DownloadPost</em>.</dd>
|
||||||
|
<dt><file></dt> <dd>The target destination of a download. Only for <em>DownloadPost</em>.</dd>
|
||||||
|
<dt><name></dt> <dd>The name of the item. Only for <em>ColorScheme</em> and <em>Sanitize</em>.</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</overlay>
|
||||||
|
|
||||||
|
<!-- vim:se sts=4 sw=4 et: -->
|
||||||
30
muttator/locale/en-US/gui.xml
Normal file
30
muttator/locale/en-US/gui.xml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
|
||||||
|
|
||||||
|
<!DOCTYPE overlay SYSTEM "chrome://liberator/content/liberator.dtd">
|
||||||
|
|
||||||
|
<overlay
|
||||||
|
xmlns="http://vimperator.org/namespaces/liberator"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
|
||||||
|
<dl tag="dialog-list" replace="dialog-list">
|
||||||
|
<dt>about</dt> <dd>About &liberator.host;</dd>
|
||||||
|
<dt>addons</dt> <dd>Manage Add-ons</dd>
|
||||||
|
<dt>addressbook</dt> <dd>Address book</dd>
|
||||||
|
<dt>checkupdates</dt> <dd>Check for updates</dd>
|
||||||
|
<dt>console</dt> <dd>JavaScript console</dd>
|
||||||
|
<dt>dominspector</dt> <dd>DOM Inspector</dd>
|
||||||
|
<dt>downloads</dt> <dd>Manage Downloads</dd>
|
||||||
|
<dt>openfile</dt> <dd>Open the file selector dialog</dd>
|
||||||
|
<dt>pageinfo</dt> <dd>Show information about the current page</dd>
|
||||||
|
<dt>pagesource</dt> <dd>View page source</dd>
|
||||||
|
<dt>preferences</dt> <dd>Show &liberator.host; preferences dialog</dd>
|
||||||
|
<dt>printsetup</dt> <dd>Setup the page size and orientation before printing</dd>
|
||||||
|
<dt>print</dt> <dd>Show print dialog</dd>
|
||||||
|
<dt>saveframe</dt> <dd>Save frame to disk</dd>
|
||||||
|
<dt>savepage</dt> <dd>Save page to disk</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</overlay>
|
||||||
|
|
||||||
|
<!-- vim:se sts=4 sw=4 et: -->
|
||||||
@@ -1,112 +0,0 @@
|
|||||||
LOGO
|
|
||||||
|
|
||||||
+++<center>+++
|
|
||||||
*All mail clients suck. Mutt just sucks less. This one just sucks less than
|
|
||||||
mutt.*
|
|
||||||
+++</center>+++
|
|
||||||
|
|
||||||
section::Introduction[intro]
|
|
||||||
|
|
||||||
http://vimperator.org/muttator[Muttator] is a free browser add-on for
|
|
||||||
Thunderbird, which makes it look and behave like the http://www.vim.org[Vim]
|
|
||||||
text editor. It has similar key bindings, and you could call it a modal mail
|
|
||||||
client, as key bindings differ according to which mode you are in.
|
|
||||||
|
|
||||||
|warning| +
|
|
||||||
Warning:
|
|
||||||
To provide the most authentic Vim experience, the Thunderbird menubar and toolbar were hidden. +
|
|
||||||
If you really need them, type: [c]:set guioptions+=mT[c] to get them back. +
|
|
||||||
If you don't like Muttator at all, you can uninstall it by typing
|
|
||||||
[c]:addons[c] and remove/disable it. +
|
|
||||||
If you like it, but can't remember the shortcuts, press [m]F1[m] or
|
|
||||||
[c]:help[c] to get this help window back.
|
|
||||||
|
|
||||||
|author| |donation| +
|
|
||||||
Muttator was written by mailto:stubenschrott@vimperator.org[Martin Stubenschrott].
|
|
||||||
If you appreciate my work on Muttator and want to encourage me working on it
|
|
||||||
more, you can either send me greetings, patches or make a donation:
|
|
||||||
|
|
||||||
NOTE: If this link does not work, go to http://vimperator.org/muttator and
|
|
||||||
click the donation button there, because Thunderbird seems to have a problem
|
|
||||||
when this link is inside an e-mail (which this help screen actually is).
|
|
||||||
|
|
||||||
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
<!-- the PAYPAL code -->
|
|
||||||
<center>
|
|
||||||
<form action="https://www.paypal.com/cgi-bin/webscr" method="post"><fieldset class="paypal">
|
|
||||||
<input type="hidden" name="cmd" value="_s-xclick">
|
|
||||||
<input type="image" src="chrome://liberator/content/x-click-but21.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
|
|
||||||
<img alt="" border="0" src="chrome://liberator/content/pixel.gif" width="1" height="1">
|
|
||||||
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
|
|
||||||
">
|
|
||||||
</fieldset></form>
|
|
||||||
</center>
|
|
||||||
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
|
|
||||||
Of course as a believer in free open source software, only make a donation
|
|
||||||
if you really like Muttator and the money doesn't hurt -- otherwise just use
|
|
||||||
it, recommend it and like it :)
|
|
||||||
|
|
||||||
section::Help{nbsp}topics[overview]
|
|
||||||
|
|
||||||
//TO BE WRITTEN...
|
|
||||||
|
|
||||||
For now use [c]:viusage![c], [c]:exusage![c] and [c]:optionusage![c] to find
|
|
||||||
out about available mappings, commands and options. When in Message mode
|
|
||||||
(activated by [m]i[m]), most mappings from Vimperator are available.
|
|
||||||
|
|
||||||
// - help:Initialization[starting.html]: How vimperator starts up, where it reads the config file...
|
|
||||||
// - help:Browsing[browsing.html]: Basic mappings and commands needed for
|
|
||||||
// a browsing session (how to open a web page or go back in history).
|
|
||||||
// - help:Motion{nbsp}commands[motion.html]: How to efficiently scroll in
|
|
||||||
// Vimperator.
|
|
||||||
// - help:Options[options.html]: A description of all options.
|
|
||||||
// - help:Tabs[tabs.html]: Manage your tabbed browsing session.
|
|
||||||
// - help:Marks[marks.html]: Usage of bookmarks, QuickMarks, and history.
|
|
||||||
// - help:Repeating{nbsp}commands[repeat.html]: Usage of macros to repeat
|
|
||||||
// recurring workflows.
|
|
||||||
// - help:Autocommands[autocommands.html]: Automatically execute code on ceratain
|
|
||||||
// events.
|
|
||||||
// - help:Developer{nbsp}Information[developer.html]: How to write docs or
|
|
||||||
// plugins.
|
|
||||||
// - help:Various[various.html]: Other help which didn't fit into any other category.
|
|
||||||
|
|
||||||
You can also jump directly to the help of a specific command with [c]:help
|
|
||||||
o[c] or [c]:help :set[c].
|
|
||||||
|
|
||||||
section::Features[features]
|
|
||||||
|
|
||||||
* Vim-like keybindings ([m]h[m], [m]j[m], [m]k[m], [m]l[m],
|
|
||||||
[m]gg[m], [m]G[m], [m]0[m], [m]$[m], [m]ZZ[m], [m]<C-f>[m], etc.)
|
|
||||||
* Ex-commands ([c]:quit[c], [c]:goto Inbox[c], ...)
|
|
||||||
* Tab completion available for all commands with support for "longest" matching
|
|
||||||
when set in 'wildmode'
|
|
||||||
* Hit-a-hint like navigation of links (start with [m]f[m] to follow a link)
|
|
||||||
* Minimal GUI (easily hide useless menubar and toolbar with
|
|
||||||
[c]:set guioptions=f[c])
|
|
||||||
* Ability to [c]:source[c] JavaScript files, and to use a [a]~/.muttatorrc[a]
|
|
||||||
file with syntax highlighting if you install
|
|
||||||
http://code.google.com/p/vimperator-labs/issues/detail?id=51[muttator.vim]
|
|
||||||
* Count supported for many commands ([m]3<C-o>[m] will go back 3 messages)
|
|
||||||
* Beep on errors
|
|
||||||
* [c]:map[c] support (and feedkeys() for script writers)
|
|
||||||
* [c]:time[c] support for profiling
|
|
||||||
* Many other vimperator features are available when in -- MESSAGE -- mode
|
|
||||||
|
|
||||||
// * A comprehensive help file, explaining all commands, mappings and options.
|
|
||||||
|
|
||||||
section::Contact[contact]
|
|
||||||
|
|
||||||
Please send comments/bug reports/patches to the mailing list, where we will
|
|
||||||
properly answer any questions. You can also join the
|
|
||||||
+++<a href="irc://irc.freenode.net/vimperator">#vimperator</a>+++ IRC channel
|
|
||||||
on http://www.freenode.net/[Freenode] or check the
|
|
||||||
http://code.google.com/p/vimperator-labs/w/list?q=label%3Aproject-muttator[Wiki]
|
|
||||||
for
|
|
||||||
http://code.google.com/p/vimperator-labs/wiki/MuttatorFAQ[frequently asked
|
|
||||||
questions (FAQ)]. Make sure, you have read the
|
|
||||||
http://vimperator-labs.googlecode.com/hg/muttator/TODO[TODO] file first, as we
|
|
||||||
are aware of many things which can be improved when we find time for it or
|
|
||||||
receive patches.
|
|
||||||
|
|
||||||
// vim: set filetype=asciidoc:
|
|
||||||
393
muttator/locale/en-US/intro.xml
Normal file
393
muttator/locale/en-US/intro.xml
Normal file
@@ -0,0 +1,393 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<?xml-stylesheet type="text/xsl" href="chrome://liberator/content/help.xsl"?>
|
||||||
|
|
||||||
|
<!DOCTYPE document SYSTEM "chrome://liberator/content/liberator.dtd">
|
||||||
|
|
||||||
|
<document
|
||||||
|
name="intro"
|
||||||
|
title="&liberator.appname; Introduction"
|
||||||
|
xmlns="http://vimperator.org/namespaces/liberator"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
|
||||||
|
<logo/>
|
||||||
|
|
||||||
|
<html:p style="text-align: center; font-weight: bold;">
|
||||||
|
First there was a Navigator, then there was an Explorer.
|
||||||
|
Later it was time for a Konqueror. Now it's time for an Imperator, the
|
||||||
|
VIMperator :)
|
||||||
|
</html:p>
|
||||||
|
|
||||||
|
<h1 tag="intro">Introduction</h1>
|
||||||
|
|
||||||
|
<link topic="http://vimperator.org">&liberator.appname;</link> is a free browser add-on for &liberator.host;,
|
||||||
|
which makes it look and behave like the
|
||||||
|
<link topic="http://www.vim.org">Vim</link>
|
||||||
|
text editor. It has similar key bindings, and you could call it a modal
|
||||||
|
web browser, as key bindings differ according to which mode you are in.
|
||||||
|
|
||||||
|
<warning tag="warning">
|
||||||
|
To provide the most authentic Vim experience, the &liberator.host; menubar and toolbar are hidden.
|
||||||
|
</warning>
|
||||||
|
|
||||||
|
<p>If you really need them, type: <ex>:set guioptions+=mT</ex> to get them back.</p>
|
||||||
|
<p>
|
||||||
|
If you don't like &liberator.appname; at all, you can uninstall it by typing
|
||||||
|
<ex>:extdelete &liberator.appname;</ex> or <ex>:extdisable &liberator.appname;</ex> to disable it.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If you like it but can't remember the shortcuts, then press
|
||||||
|
<key name="F1"/> or <ex>:help</ex> to get this help window back.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<tags>author donaton sponsor</tags>
|
||||||
|
<p>
|
||||||
|
&liberator.appname; was initially written by
|
||||||
|
<link topic="mailto:stubenschrott@vimperator.org">Martin
|
||||||
|
Stubenschrott</link> but has found many other
|
||||||
|
<link topic="http://vimperator.org/trac/wiki/&liberator.appname;/Authors">contributors</link>
|
||||||
|
in the meanwhile. If you appreciate the work on &liberator.appname; and want to
|
||||||
|
encourage us working on it more, you can send us greetings, patches, or
|
||||||
|
donations (thanks a lot to
|
||||||
|
<link topic="http://vimperator.org/trac/wiki/&liberator.appname;/Donors">these
|
||||||
|
people</link>
|
||||||
|
who already did):
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<html:form style="text-align: center;" action="https://www.paypal.com/cgi-bin/webscr" method="post">
|
||||||
|
<input type="hidden" name="cmd" value="_s-xclick"/>
|
||||||
|
<input type="image" src="chrome://liberator/content/x-click-but21.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!"/>
|
||||||
|
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----"/>
|
||||||
|
</html:form>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
If you prefer getting some nice products for your money, you can also support
|
||||||
|
us by buying some cool
|
||||||
|
<link topic="http://www.zazzle.com/maxauthority*">merchandise</link> like
|
||||||
|
t-shirts or mugs. Of course, as we believe in free, open source software, only
|
||||||
|
support us financially if you really like &liberator.appname; and the money doesn't hurt
|
||||||
|
— otherwise just use it, recommend it, and like it :)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 tag="overview">Help topics</h2>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<link topic="tutorial">Quick-start tutorial</link>:
|
||||||
|
A quick-start tutorial for new users.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="starting">Starting &liberator.appname;</link>:
|
||||||
|
How &liberator.appname; starts up, where it reads the config file…
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="browsing">Browsing</link>:
|
||||||
|
Basic mappings and commands needed for a browsing session (how to open
|
||||||
|
a web page or go back in history).
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="buffer">Buffer</link>:
|
||||||
|
Operations on the current document like scrolling or copying text.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="cmdline">Command-line mode</link>:
|
||||||
|
Command-line editing.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="insert">Insert mode</link>:
|
||||||
|
Insert-mode editing.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="options">Options</link>:
|
||||||
|
A description of all options.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="pattern">Text search commands</link>:
|
||||||
|
Searching for text in the current buffer.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="tabs">Tabs</link>:
|
||||||
|
Managing your tabbed browsing session.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="hints">Hints</link>:
|
||||||
|
Selecting hyperlinks and other page elements.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="">Key mappings, abbreviations, and user-defined commands</link>:
|
||||||
|
Defining new key mappings, abbreviations and user commands.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="eval">Expression evaluation</link>:
|
||||||
|
Executing JavaScript.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="marks">Marks</link>:
|
||||||
|
Using bookmarks, QuickMarks, history and local marks.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="repeat">Repeating commands</link>:
|
||||||
|
Using macros to repeat recurring workflows.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="autocommands">Automatic commands</link>:
|
||||||
|
Automatically executing code on certain events.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="print">Printing</link>:
|
||||||
|
Printing pages.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="gui">&liberator.appname;'s GUI</link>:
|
||||||
|
Accessing &liberator.host; menus, dialogs and the sidebar.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="styling">Styling the GUI and web pages</link>:
|
||||||
|
Changing the styling of content pages and &liberator.appname; itself.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="message">Error and informational messages</link>:
|
||||||
|
A description of messages and error messages.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="developer">Developer information</link>:
|
||||||
|
How to write docs or plugins.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="various">Various commands</link>:
|
||||||
|
Other help which didn't fit into any other category.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="index">Index</link>:
|
||||||
|
An index of all commands and options.
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
You can also jump directly to the help of a specific command with <ex>:help o</ex>
|
||||||
|
or <ex>:help :set</ex>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 tag="features">Features</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Vim-like keybindings (<k>h</k>, <k>j</k>, <k>k</k>, <k>l</k>, <k>gg</k>, <k>G</k>, <k>0</k>, <k>$</k>, <k>ZZ</k>, <k name="C-f"/>, etc.)</li>
|
||||||
|
<li>Ex commands (<ex>:quit</ex>, <ex>:open www.foo.com</ex>, …)</li>
|
||||||
|
<li>Tab completion available for all commands with support for "longest" matching when set in 'wildmode'</li>
|
||||||
|
<li>Hit-a-hint like navigation of links (start with <k>f</k> to follow a link)</li>
|
||||||
|
<li>Advanced completion of bookmark and history URLs (searching also in title, not only URL)</li>
|
||||||
|
<li>Vim-like statusline with a Wget-like progress bar</li>
|
||||||
|
<li>Minimal GUI (easily hide useless menubar and toolbar with <ex>:set guioptions=</ex>)</li>
|
||||||
|
<li>Ability to <ex>:source</ex> JavaScript files, and to use a <em>~/.vimperatorrc</em> file with syntax highlighting if you install vimperator.vim</li>
|
||||||
|
<li>Easy quick searches (<ex>:open foo</ex> will search for "foo" in google, <ex>:open ebay terminator</ex> will search for "terminator" on ebay) with support for &liberator.host; keyword bookmarks and search engines</li>
|
||||||
|
<li>Count supported for many commands (<em>3</em><k name="C-o"/> will go back 3 pages)</li>
|
||||||
|
<li>Beep on errors</li>
|
||||||
|
<li>Marks support (<k>m</k><em>a</em> to set mark a on a web page, <k>'</k><em>a</em> to go there)</li>
|
||||||
|
<li>QuickMarks support (quickly go to previously marked web pages with <k>go</k><a>a-zA-Z0-9</a>)</li>
|
||||||
|
<li><ex>:map</ex> and <ex>:command</ex> support (and feedkeys() for script writers)</li>
|
||||||
|
<li><ex>:time</ex> support for profiling</li>
|
||||||
|
<li>Move the text cursor and select text with Vim keys and a Visual mode</li>
|
||||||
|
<li>External editor support</li>
|
||||||
|
<li>Macros to replay key strokes</li>
|
||||||
|
<li>AutoCommands to execute actions on certain events</li>
|
||||||
|
<li>A comprehensive help system, explaining all commands, mappings and options</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 tag="contact">Contact</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Please send comments/bug reports/patches to the mailing list, where we will
|
||||||
|
properly answer any questions. You can also join the
|
||||||
|
<link topic="irc://irc.freenode.net/vimperator">#vimperator</link> IRC channel
|
||||||
|
on <link target="http://www.freenode.net/">Freenode</link> or check the
|
||||||
|
<link topic="http://vimperator.org/trac/wiki/&liberator.appname;/Wiki">Wiki</link> for
|
||||||
|
<link topic="http://vimperator.org/trac/wiki/&liberator.appname;/FAQ">
|
||||||
|
frequently asked questions (FAQ)
|
||||||
|
</link>. Make sure, you have read the TODO file first, as we are aware of many
|
||||||
|
things which can be improved when we find time for it or receive patches.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<logo/>
|
||||||
|
|
||||||
|
<html:p style="text-align: center; font-weight: bold;">
|
||||||
|
All mail clients suck. Mutt just sucks less. This one just sucks less than
|
||||||
|
mutt.
|
||||||
|
</html:p>
|
||||||
|
|
||||||
|
<h2 tag="intro">Introduction</h2>
|
||||||
|
|
||||||
|
http://vimperator.org/muttator[&liberator.appname;] is a free browser add-on for
|
||||||
|
&liberator.hostapp;, which makes it look and behave like the http://www.vim.org[Vim]
|
||||||
|
text editor. It has similar key bindings, and you could call it a modal mail
|
||||||
|
client, as key bindings differ according to which mode you are in.
|
||||||
|
|
||||||
|
|warning| +
|
||||||
|
Warning:
|
||||||
|
To provide the most authentic Vim experience, the &liberator.hostapp; menubar and toolbar were hidden. +
|
||||||
|
If you really need them, type: <ex>:set guioptions+=mT</ex> to get them back. +
|
||||||
|
If you don't like &liberator.appname; at all, you can uninstall it by typing
|
||||||
|
<ex>:addons</ex> and remove/disable it. +
|
||||||
|
If you like it, but can't remember the shortcuts, press <k>F1</k> or
|
||||||
|
<ex>:help</ex> to get this help window back.
|
||||||
|
|
||||||
|
|author| |donation| +
|
||||||
|
&liberator.appname; was written by mailto:stubenschrott@vimperator.org[Martin Stubenschrott].
|
||||||
|
If you appreciate my work on &liberator.appname; and want to encourage me working on it
|
||||||
|
more, you can either send me greetings, patches or make a donation:
|
||||||
|
|
||||||
|
NOTE: If this link does not work, go to http://vimperator.org/muttator and
|
||||||
|
click the donation button there, because &liberator.hostapp; seems to have a problem
|
||||||
|
when this link is inside an e-mail (which this help screen actually is).
|
||||||
|
|
||||||
|
<pan><handle/></pan>
|
||||||
|
|
||||||
|
Of course as a believer in free open source software, only make a donation
|
||||||
|
if you really like &liberator.appname; and the money doesn't hurt -- otherwise just use
|
||||||
|
it, recommend it and like it :)
|
||||||
|
|
||||||
|
<h2 tag="overview">Help topics</h2>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<link topic="starting">Starting &liberator.appname;</link>:
|
||||||
|
How &liberator.appname; starts up, where it reads the config file…
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="browsing">Browsing</link>:
|
||||||
|
Basic mappings and commands needed for a browsing session (how to open
|
||||||
|
a web page or go back in history).
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="buffer">Buffer</link>:
|
||||||
|
Operations on the current document like scrolling or copying text.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="cmdline">Command-line mode</link>:
|
||||||
|
Command-line editing.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="insert">Insert mode</link>:
|
||||||
|
Insert-mode editing.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="options">Options</link>:
|
||||||
|
A description of all options.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="pattern">Text search commands</link>:
|
||||||
|
Searching for text in the current buffer.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="tabs">Tabs</link>:
|
||||||
|
Managing your tabbed browsing session.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="hints">Hints</link>:
|
||||||
|
Selecting hyperlinks and other page elements.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="">Key mappings, abbreviations, and user-defined commands</link>:
|
||||||
|
Defining new key mappings, abbreviations and user commands.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="eval">Expression evaluation</link>:
|
||||||
|
Executing JavaScript.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="marks">Marks</link>:
|
||||||
|
Using bookmarks, QuickMarks, history and local marks.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="repeat">Repeating commands</link>:
|
||||||
|
Using macros to repeat recurring workflows.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="autocommands">Automatic commands</link>:
|
||||||
|
Automatically executing code on certain events.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="print">Printing</link>:
|
||||||
|
Printing pages.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="gui">&liberator.appname;'s GUI</link>:
|
||||||
|
Accessing &liberator.host; menus, dialogs and the sidebar.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="styling">Styling the GUI and web pages</link>:
|
||||||
|
Changing the styling of content pages and &liberator.appname; itself.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="message">Error and informational messages</link>:
|
||||||
|
A description of messages and error messages.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="developer">Developer information</link>:
|
||||||
|
How to write docs or plugins.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="various">Various commands</link>:
|
||||||
|
Other help which didn't fit into any other category.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<link topic="index">Index</link>:
|
||||||
|
An index of all commands and options.
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<!-- TO BE WRITTEN... -->
|
||||||
|
|
||||||
|
For now use <ex>:viusage!</ex>, <ex>:exusage!</ex> and <ex>:optionusage!</ex> to find
|
||||||
|
out about available mappings, commands and options. When in Message mode
|
||||||
|
(activated by <k>i</k>), most mappings from &liberator.appname; are available.
|
||||||
|
|
||||||
|
|
||||||
|
You can also jump directly to the help of a specific command with
|
||||||
|
<ex>:help o</ex> or <ex>:help :set</ex>.
|
||||||
|
|
||||||
|
<h2 tag="features">Features</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Vim-like keybindings (<k>h</k>, <k>j</k>, <k>k</k>, <k>l</k>,
|
||||||
|
<k>gg</k>, <k>G</k>, <k>0</k>, <k>$</k>, <k>ZZ</k>, <k name="C-f"/>, etc.)
|
||||||
|
</li>
|
||||||
|
<li>Ex-commands (<ex>:quit</ex>, <ex>:goto Inbox</ex>, ...)</li>
|
||||||
|
<li>
|
||||||
|
Tab completion available for all commands with support for "longest"
|
||||||
|
matching when set in 'wildmode'
|
||||||
|
</li>
|
||||||
|
<li>Hit-a-hint like navigation of links (start with <k>f</k> to follow a link)</li>
|
||||||
|
<li>
|
||||||
|
Minimal GUI (easily hide useless menubar and toolbar with <ex>:set
|
||||||
|
guioptions=f</ex>)
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Ability to <ex>:source</ex> JavaScript files, and to use a
|
||||||
|
[a]~/.muttatorrc[a] file with syntax highlighting if you install
|
||||||
|
http://code.google.com/p/vimperator-labs/issues/detail?id=51[muttator.vim]
|
||||||
|
</li>
|
||||||
|
<li>Count supported for many commands (<em>3</em><key name="C-o"/> will go back 3 messages)</li>
|
||||||
|
<li>Beep on errors</li>
|
||||||
|
<li><ex>:map</ex> support (and feedkeys() for script writers)</li>
|
||||||
|
<li><ex>:time</ex> support for profiling</li>
|
||||||
|
<li>Many other vimperator features are available when in <tt>-- MESSAGE --</tt> mode</li>
|
||||||
|
<li>A comprehensive help file, explaining all commands, mappings and options. </li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2 tag="contact">Contact</h2>
|
||||||
|
|
||||||
|
Please send comments/bug reports/patches to the mailing list, where we will
|
||||||
|
properly answer any questions. You can also join the
|
||||||
|
<link topic="irc://irc.freenode.net/vimperator">#vimperator</link> IRC channel
|
||||||
|
on <link topic="http://www.freenode.net/">Freenode</link> or check the
|
||||||
|
<link topic="http://code.google.com/p/vimperator-labs/w/list?q=label%3Aproject-muttator">Wiki</link>
|
||||||
|
for
|
||||||
|
<link topic="http://code.google.com/p/vimperator-labs/wiki/&liberator.appname;FAQ">
|
||||||
|
frequently asked questions (FAQ)</link>.
|
||||||
|
Make sure, you have read the
|
||||||
|
<link topic="http://vimperator-labs.googlecode.com/hg/muttator/TODO">TODO</link>
|
||||||
|
file first, as we are aware of many things which can be improved when we find
|
||||||
|
time for it or receive patches.
|
||||||
|
|
||||||
|
</document>
|
||||||
|
<!-- vim:se sts=4 sw=4 et: -->
|
||||||
@@ -19,9 +19,9 @@
|
|||||||
<dt>PrivateMode</dt> <dd>Triggered when private mode is activated or deactivated</dd>
|
<dt>PrivateMode</dt> <dd>Triggered when private mode is activated or deactivated</dd>
|
||||||
<dt>Sanitize</dt> <dd>Triggered when privata data are sanitized</dd>
|
<dt>Sanitize</dt> <dd>Triggered when privata data are sanitized</dd>
|
||||||
<dt>ShellCmdPost</dt> <dd>Triggered after executing a shell command with <ex>:!</ex><a>cmd</a></dd>
|
<dt>ShellCmdPost</dt> <dd>Triggered after executing a shell command with <ex>:!</ex><a>cmd</a></dd>
|
||||||
<dt>VimperatorEnter</dt> <dd>Triggered after Firefox starts</dd>
|
<dt>&liberator.appname;Enter</dt> <dd>Triggered after &liberator.host; starts</dd>
|
||||||
<dt>VimperatorLeavePre</dt><dd>Triggered before exiting Firefox, just before destroying each module</dd>
|
<dt>&liberator.appname;LeavePre</dt><dd>Triggered before exiting &liberator.host;, just before destroying each module</dd>
|
||||||
<dt>VimperatorLeave</dt> <dd>Triggered before exiting Firefox</dd>
|
<dt>&liberator.appname;Leave</dt> <dd>Triggered before exiting &liberator.host;</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<dl tag="autocommand-args" replace="autocommand-args">
|
<dl tag="autocommand-args" replace="autocommand-args">
|
||||||
|
|||||||
@@ -53,11 +53,7 @@ web browser, as key bindings differ according to which mode you are in.
|
|||||||
who already did):
|
who already did):
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<html:form style="text-align: center;" action="https://www.paypal.com/cgi-bin/webscr" method="post">
|
<pan><handle/></pan>
|
||||||
<input type="hidden" name="cmd" value="_s-xclick"/>
|
|
||||||
<input type="image" src="chrome://liberator/content/x-click-but21.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!"/>
|
|
||||||
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----"/>
|
|
||||||
</html:form>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
If you prefer getting some nice products for your money, you can also support
|
If you prefer getting some nice products for your money, you can also support
|
||||||
|
|||||||
@@ -287,7 +287,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2 tag="whither-firefox">Where did &liberator.host; go?</h2>
|
<h2 tag="whither-&liberator.host;">Where did &liberator.host; go?</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
You might feel pretty disoriented now. Don't worry. This is still &liberator.host;
|
You might feel pretty disoriented now. Don't worry. This is still &liberator.host;
|
||||||
|
|||||||
@@ -40,14 +40,8 @@ text editor.
|
|||||||
or make a donation:
|
or make a donation:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<!-- the PAYPAL code -->
|
<pan><handle/></pan>
|
||||||
<div xmlns="http://www.w3.org/1999/xhtml">
|
|
||||||
<form style="text-align: center;" action="https://www.paypal.com/cgi-bin/webscr" method="post">
|
|
||||||
<input type="hidden" name="cmd" value="_s-xclick"/>
|
|
||||||
<input type="image" src="chrome://liberator/content/x-click-but21.gif" name="submit" alt="Make payments with PayPal - it\'s fast, free and secure!"/>
|
|
||||||
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----"/>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<p>
|
<p>
|
||||||
Of course as a believer in free open source software, only make
|
Of course as a believer in free open source software, only make
|
||||||
a donation if you really like &liberator.appname; and the money
|
a donation if you really like &liberator.appname; and the money
|
||||||
|
|||||||
Reference in New Issue
Block a user