aboutsummaryrefslogtreecommitdiffstats
path: root/appendAnchor.js
diff options
context:
space:
mode:
authorsend2008-07-25 11:43:26 +0000
committersend2008-07-25 11:43:26 +0000
commit44c1b5ee408c55e4dfdc64ff2a5b10c6e5c91ab9 (patch)
treefcc2ceef33dc2f5eb6fe412e58f10635f44864b5 /appendAnchor.js
parent88a411faf720d4387a13cccce344eee767a28762 (diff)
downloadvimperator-plugins-44c1b5ee408c55e4dfdc64ff2a5b10c6e5c91ab9.tar.bz2
avoid false recognition, comma separated , pri
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@16424 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'appendAnchor.js')
-rw-r--r--appendAnchor.js10
1 files changed, 6 insertions, 4 deletions
diff --git a/appendAnchor.js b/appendAnchor.js
index 95873bc..ddb073c 100644
--- a/appendAnchor.js
+++ b/appendAnchor.js
@@ -3,7 +3,7 @@
* @name appendAnchor
* @description append anchors to texts look like url.
* @author SAKAI, Kazuaki
- * @version 0.01
+ * @version 0.02
* == VimperatorPlugin==
*/
@@ -15,17 +15,19 @@
var nodes = liberator.buffer.evaluateXPath(
'/descendant::*[not(contains(" TITLE STYLE SCRIPT TEXTAREA XMP A ", concat(" ", local-name(), " ")))]/child::text()'
);
- var regex = new RegExp("h?(ttps?):/+([a-zA-Z0-9][-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)");
+ var regex = new RegExp("h?(ttps?):/+([a-zA-Z0-9][-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+[-_~*(a-zA-Z0-9;/?@&=+$%#])");
+
var range = doc.createRange();
var last;
+ var href;
for (var i = 0; i < nodes.snapshotLength; i++) {
var node = nodes.snapshotItem(i);
range.selectNode(node);
while (node && (last = range.toString().search(regex)) > -1) {
- range.setStart(node, last);
+ range.setStart(node, last);
range.setEnd(node, last + RegExp.lastMatch.length);
+ href = 'h' + RegExp.$1 + '://' + RegExp.$2;
var anchor = doc.createElement('a');
- var href = 'h' + RegExp.$1 + '://' + RegExp.$2;
range.insertNode(anchor);
anchor.setAttribute('href', href);
range.surroundContents(anchor);