mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-22 18:37:58 +01:00
merge improvements to :pageinfo
This commit is contained in:
@@ -147,7 +147,7 @@ vimperator.Buffer = function () //{{{
|
|||||||
},
|
},
|
||||||
|
|
||||||
// returns an XPathResult object
|
// returns an XPathResult object
|
||||||
evaluateXPath: function (expression, doc, elem, ordered)
|
evaluateXPath: function (expression, doc, elem, asIterator)
|
||||||
{
|
{
|
||||||
if (!doc)
|
if (!doc)
|
||||||
doc = window.content.document;
|
doc = window.content.document;
|
||||||
@@ -165,7 +165,7 @@ vimperator.Buffer = function () //{{{
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ordered ? XPathResult.ORDERED_NODE_SNAPSHOT_TYPE : XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
|
asIterator ? XPathResult.UNORDERED_NODE_ITERATOR_TYPE : XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
|
||||||
null
|
null
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -459,43 +459,43 @@ vimperator.Buffer = function () //{{{
|
|||||||
"application/rdf+xml": "XML"
|
"application/rdf+xml": "XML"
|
||||||
};
|
};
|
||||||
|
|
||||||
function isValidFeed(aData, aPrincipal, aIsFeed)
|
function isValidFeed(data, principal, isFeed)
|
||||||
{
|
{
|
||||||
if (!aData || !aPrincipal)
|
if (!data || !principal)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!aIsFeed)
|
if (!isFeed)
|
||||||
{
|
{
|
||||||
var type = aData.type && aData.type.toLowerCase();
|
var type = data.type && data.type.toLowerCase();
|
||||||
type = type.replace(/^\s+|\s*(?:;.*)?$/g, "");
|
type = type.replace(/^\s+|\s*(?:;.*)?$/g, "");
|
||||||
|
|
||||||
aIsFeed = (type == "application/rss+xml" || type == "application/atom+xml");
|
isFeed = (type == "application/rss+xml" || type == "application/atom+xml");
|
||||||
if (!aIsFeed)
|
if (!isFeed)
|
||||||
{
|
{
|
||||||
// really slimy: general XML types with magic letters in the title
|
// really slimy: general XML types with magic letters in the title
|
||||||
const titleRegex = /(^|\s)rss($|\s)/i;
|
const titleRegex = /(^|\s)rss($|\s)/i;
|
||||||
aIsFeed = ((type == "text/xml" || type == "application/rdf+xml" ||
|
isFeed = ((type == "text/xml" || type == "application/rdf+xml" ||
|
||||||
type == "application/xml") && titleRegex.test(aData.title));
|
type == "application/xml") && titleRegex.test(data.title));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aIsFeed)
|
if (isFeed)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
urlSecurityCheck(aData.href, aPrincipal,
|
urlSecurityCheck(data.href, principal,
|
||||||
Components.interfaces.nsIScriptSecurityManager.DISALLOW_INHERIT_PRINCIPAL);
|
Components.interfaces.nsIScriptSecurityManager.DISALLOW_INHERIT_PRINCIPAL);
|
||||||
}
|
}
|
||||||
catch (ex)
|
catch (ex)
|
||||||
{
|
{
|
||||||
aIsFeed = false;
|
isFeed = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type)
|
if (type)
|
||||||
aData.type = type;
|
data.type = type;
|
||||||
|
|
||||||
return aIsFeed;
|
return isFeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: could this be useful for other commands?
|
// TODO: could this be useful for other commands?
|
||||||
@@ -575,7 +575,7 @@ vimperator.Buffer = function () //{{{
|
|||||||
if (isValidFeed(feed, window.content.document.nodePrincipal, rels.feed))
|
if (isValidFeed(feed, window.content.document.nodePrincipal, rels.feed))
|
||||||
{
|
{
|
||||||
var type = feedTypes[feed.type] || feedTypes["application/rss+xml"];
|
var type = feedTypes[feed.type] || feedTypes["application/rss+xml"];
|
||||||
pageFeeds.push([feed.title, vimperator.util.highlightURL(feed.href, true) + " (" + type + ")"]);
|
pageFeeds.push([feed.title, vimperator.util.highlightURL(feed.href, true) + " <span style='color: gray;'>(" + type + ")</span>"]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -583,7 +583,7 @@ vimperator.Buffer = function () //{{{
|
|||||||
var lastModVerbose = new Date(window.content.document.lastModified).toLocaleString();
|
var lastModVerbose = new Date(window.content.document.lastModified).toLocaleString();
|
||||||
var lastMod = new Date(window.content.document.lastModified).toLocaleFormat("%x %X");
|
var lastMod = new Date(window.content.document.lastModified).toLocaleFormat("%x %X");
|
||||||
// FIXME: probably unportable across differnet language versions
|
// FIXME: probably unportable across differnet language versions
|
||||||
if (lastModVerbose == "Invalid Date")
|
if (lastModVerbose == "Invalid Date" || new Date(window.content.document.lastModified).getFullYear() == 1970)
|
||||||
lastModVerbose = lastMod = null;
|
lastModVerbose = lastMod = null;
|
||||||
|
|
||||||
// Ctrl-g single line output
|
// Ctrl-g single line output
|
||||||
|
|||||||
@@ -1016,8 +1016,8 @@ vimperator.Commands = function () //{{{
|
|||||||
commandManager.add(new vimperator.Command(["pa[geinfo]"],
|
commandManager.add(new vimperator.Command(["pa[geinfo]"],
|
||||||
function () { vimperator.buffer.pageInfo(true); },
|
function () { vimperator.buffer.pageInfo(true); },
|
||||||
{
|
{
|
||||||
shortHelp: "Show general and/or meta-content site informations",
|
shortHelp: "Show various page information",
|
||||||
help: "Show general and/or meta-content site informations"
|
help: "See :help 'pageinfo' for available options",
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
commandManager.add(new vimperator.Command(["pc[lose]"],
|
commandManager.add(new vimperator.Command(["pc[lose]"],
|
||||||
|
|||||||
Reference in New Issue
Block a user