This commit is contained in:
Jordan Bates 2013-08-13 18:20:00 -07:00
commit 5ce2c53f14
3 changed files with 55 additions and 34 deletions

View File

@ -4438,7 +4438,7 @@
});
},
node: function() {
var data, el, end, endNode, i, index, items, lIndex, len, length, link, links, node, range, result, saved, snapshot, space, test, text, _i, _len, _ref;
var data, el, end, endNode, i, index, items, length, link, links, node, range, result, saved, snapshot, space, test, _i, _len, _ref;
if (this.isClone) {
if (Conf['Embedding']) {
@ -4483,18 +4483,14 @@
test.lastIndex = 0;
}
range = Linkify.makeRange(node, endNode, index, length);
if (link = Linkify.regString.exec(text = range.toString())) {
if ((lIndex = link.index) && (len = lIndex + index) < node.data.length) {
range.setStart(node, len);
}
text = text.slice(0, lIndex);
links.push([range, text]);
if (link = Linkify.regString.exec(range.toString())) {
links.push(range);
}
break;
} else {
if (link = Linkify.regString.exec(result[0])) {
range = Linkify.makeRange(node, node, index + link.index, length + link.index);
links.push([range, link]);
links.push(range);
}
}
}
@ -4528,11 +4524,21 @@
range.setEnd(endNode, endOffset);
return range;
},
makeLink: function(_arg) {
var a, range, text;
makeLink: function(range) {
var a, check, text;
range = _arg[0], text = _arg[1];
text;
text = range.toString();
if (/[(\[{<]/.test(text.charAt(0))) {
if (check = /[\)\]}>]/.test(text.charAt(text.length - 1))) {
if (!(range.endOffset < 1)) {
range.setEnd(range.endContainer, range.endOffset - 1);
}
}
text = check ? text.slice(1, -1) : text.slice(1);
if (range.startOffset !== range.startContainer.data.length) {
range.setStart(range.startContainer, range.startOffset + 1);
}
}
text = text.contains(':') ? text : (text.contains('@') ? 'mailto:' : 'http://') + text;
a = $.el('a', {
className: 'linkify',

View File

@ -4444,7 +4444,7 @@
});
},
node: function() {
var data, el, end, endNode, i, index, items, lIndex, len, length, link, links, node, range, result, saved, snapshot, space, test, text, _i, _len, _ref;
var data, el, end, endNode, i, index, items, length, link, links, node, range, result, saved, snapshot, space, test, _i, _len, _ref;
if (this.isClone) {
if (Conf['Embedding']) {
@ -4489,18 +4489,14 @@
test.lastIndex = 0;
}
range = Linkify.makeRange(node, endNode, index, length);
if (link = Linkify.regString.exec(text = range.toString())) {
if ((lIndex = link.index) && (len = lIndex + index) < node.data.length) {
range.setStart(node, len);
}
text = text.slice(0, lIndex);
links.push([range, text]);
if (link = Linkify.regString.exec(range.toString())) {
links.push(range);
}
break;
} else {
if (link = Linkify.regString.exec(result[0])) {
range = Linkify.makeRange(node, node, index + link.index, length + link.index);
links.push([range, link]);
links.push(range);
}
}
}
@ -4534,11 +4530,21 @@
range.setEnd(endNode, endOffset);
return range;
},
makeLink: function(_arg) {
var a, range, text;
makeLink: function(range) {
var a, check, text;
range = _arg[0], text = _arg[1];
text;
text = range.toString();
if (/[(\[{<]/.test(text.charAt(0))) {
if (check = /[\)\]}>]/.test(text.charAt(text.length - 1))) {
if (!(range.endOffset < 1)) {
range.setEnd(range.endContainer, range.endOffset - 1);
}
}
text = check ? text.slice(1, -1) : text.slice(1);
if (range.startOffset !== range.startContainer.data.length) {
range.setStart(range.startContainer, range.startOffset + 1);
}
}
text = text.contains(':') ? text : (text.contains('@') ? 'mailto:' : 'http://') + text;
a = $.el('a', {
className: 'linkify',

View File

@ -75,17 +75,13 @@ Linkify =
test.lastIndex = 0 if length is endNode.data.length
range = Linkify.makeRange node, endNode, index, length
if link = Linkify.regString.exec text = range.toString()
if (lIndex = link.index) and (len = lIndex + index) < node.data.length
range.setStart node, len
text = text[...lIndex]
links.push [range, text]
links.push range if link = Linkify.regString.exec range.toString()
break
else
if link = Linkify.regString.exec result[0]
range = Linkify.makeRange node, node, index + link.index, length + link.index
links.push [range, link]
links.push range
for range in links.reverse()
@nodes.links.push Linkify.makeLink range, @
@ -103,12 +99,25 @@ Linkify =
makeRange: (startNode, endNode, startOffset, endOffset) ->
range = document.createRange();
range.setStart startNode, startOffset
range.setEnd endNode, endOffset
range.setStart startNode, startOffset
range.setEnd endNode, endOffset
range
makeLink: ([range, text]) ->
text
makeLink: (range) ->
text = range.toString()
# Clean brackets
if /[(\[{<]/.test text.charAt 0
if check = /[\)\]}>]/.test text.charAt text.length - 1
unless range.endOffset < 1
range.setEnd range.endContainer, range.endOffset - 1
text = if check
text.slice 1, -1
else
text.slice 1
unless range.startOffset is range.startContainer.data.length
range.setStart range.startContainer, range.startOffset + 1
text =
if text.contains ':'
text