Some Linkify refactoring
This commit is contained in:
parent
36b2c78281
commit
8429c60d30
2
LICENSE
2
LICENSE
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* 4chan X - Version 1.2.32 - 2013-08-16
|
||||
* 4chan X - Version 1.2.32 - 2013-08-17
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAACVBMVEUAAGcAAABmzDNZt9VtAAAAAXRSTlMAQObYZgAAAHFJREFUKFOt0LENACEIBdBv4Qju4wgWanEj3D6OcIVMKaitYHEU/jwTCQj8W75kiVCSBvdQ5/AvfVHBin11BgdRq3ysBgfwBDRrj3MCIA+oAQaku/Q1cNctrAmyDl577tOThYt/Y1RBM4DgOHzM0HFTAyLukH/cmRnqAAAAAElFTkSuQmCC
|
||||
// ==/UserScript==
|
||||
/*
|
||||
* 4chan X - Version 1.2.32 - 2013-08-16
|
||||
* 4chan X - Version 1.2.32 - 2013-08-17
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
|
||||
@ -4432,7 +4432,7 @@
|
||||
});
|
||||
},
|
||||
node: function() {
|
||||
var data, el, end, endNode, i, index, items, length, link, links, node, range, result, saved, snapshot, space, test, _i, _len, _ref;
|
||||
var data, el, end, endNode, i, index, items, length, link, links, node, result, saved, snapshot, space, test, word, _i, _len, _ref;
|
||||
|
||||
if (this.isClone) {
|
||||
if (Conf['Embedding']) {
|
||||
@ -4460,47 +4460,44 @@
|
||||
while (result = test.exec(data)) {
|
||||
index = result.index;
|
||||
endNode = node;
|
||||
if ((length = index + result[0].length) === data.length) {
|
||||
word = result[0];
|
||||
if ((length = index + word.length) === data.length) {
|
||||
test.lastIndex = 0;
|
||||
while ((saved = snapshot.snapshotItem(i++))) {
|
||||
if (saved.nodeName === 'BR') {
|
||||
break;
|
||||
}
|
||||
endNode = saved;
|
||||
length = saved.data.length;
|
||||
if (end = space.exec(saved.data)) {
|
||||
data = saved.data;
|
||||
word += data;
|
||||
length = data.length;
|
||||
if (end = space.exec(data)) {
|
||||
test.lastIndex = length = end.index;
|
||||
i--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (length === endNode.data.length) {
|
||||
test.lastIndex = 0;
|
||||
}
|
||||
range = Linkify.makeRange(node, endNode, index, length);
|
||||
if (link = Linkify.regString.exec(range.toString())) {
|
||||
links.push(range);
|
||||
}
|
||||
}
|
||||
if (Linkify.regString.exec(word)) {
|
||||
links.push(Linkify.makeRange(node, endNode, index, length));
|
||||
}
|
||||
if (!(test.lastIndex || node === endNode)) {
|
||||
break;
|
||||
} else {
|
||||
if (link = Linkify.regString.exec(result[0])) {
|
||||
range = Linkify.makeRange(node, node, index, length);
|
||||
links.push(range);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
_ref = links.reverse();
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
range = _ref[_i];
|
||||
this.nodes.links.push(Linkify.makeLink(range, this));
|
||||
link = _ref[_i];
|
||||
this.nodes.links.push(Linkify.makeLink(link, this));
|
||||
}
|
||||
if (!(Conf['Embedding'] || Conf['Link Title'])) {
|
||||
return;
|
||||
}
|
||||
items = this.nodes.links;
|
||||
links = this.nodes.links;
|
||||
i = 0;
|
||||
while (range = items[i++]) {
|
||||
if (data = Linkify.services(range)) {
|
||||
while (link = links[i++]) {
|
||||
if (data = Linkify.services(link)) {
|
||||
if (Conf['Embedding']) {
|
||||
Linkify.embed(data);
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
// Generated by CoffeeScript
|
||||
/*
|
||||
* 4chan X - Version 1.2.32 - 2013-08-16
|
||||
* 4chan X - Version 1.2.32 - 2013-08-17
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
|
||||
@ -4441,7 +4441,7 @@
|
||||
});
|
||||
},
|
||||
node: function() {
|
||||
var data, el, end, endNode, i, index, items, length, link, links, node, range, result, saved, snapshot, space, test, _i, _len, _ref;
|
||||
var data, el, end, endNode, i, index, items, length, link, links, node, result, saved, snapshot, space, test, word, _i, _len, _ref;
|
||||
|
||||
if (this.isClone) {
|
||||
if (Conf['Embedding']) {
|
||||
@ -4469,47 +4469,44 @@
|
||||
while (result = test.exec(data)) {
|
||||
index = result.index;
|
||||
endNode = node;
|
||||
if ((length = index + result[0].length) === data.length) {
|
||||
word = result[0];
|
||||
if ((length = index + word.length) === data.length) {
|
||||
test.lastIndex = 0;
|
||||
while ((saved = snapshot.snapshotItem(i++))) {
|
||||
if (saved.nodeName === 'BR') {
|
||||
break;
|
||||
}
|
||||
endNode = saved;
|
||||
length = saved.data.length;
|
||||
if (end = space.exec(saved.data)) {
|
||||
data = saved.data;
|
||||
word += data;
|
||||
length = data.length;
|
||||
if (end = space.exec(data)) {
|
||||
test.lastIndex = length = end.index;
|
||||
i--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (length === endNode.data.length) {
|
||||
test.lastIndex = 0;
|
||||
}
|
||||
range = Linkify.makeRange(node, endNode, index, length);
|
||||
if (link = Linkify.regString.exec(range.toString())) {
|
||||
links.push(range);
|
||||
}
|
||||
}
|
||||
if (Linkify.regString.exec(word)) {
|
||||
links.push(Linkify.makeRange(node, endNode, index, length));
|
||||
}
|
||||
if (!(test.lastIndex || node === endNode)) {
|
||||
break;
|
||||
} else {
|
||||
if (link = Linkify.regString.exec(result[0])) {
|
||||
range = Linkify.makeRange(node, node, index, length);
|
||||
links.push(range);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
_ref = links.reverse();
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
range = _ref[_i];
|
||||
this.nodes.links.push(Linkify.makeLink(range, this));
|
||||
link = _ref[_i];
|
||||
this.nodes.links.push(Linkify.makeLink(link, this));
|
||||
}
|
||||
if (!(Conf['Embedding'] || Conf['Link Title'])) {
|
||||
return;
|
||||
}
|
||||
items = this.nodes.links;
|
||||
links = this.nodes.links;
|
||||
i = 0;
|
||||
while (range = items[i++]) {
|
||||
if (data = Linkify.services(range)) {
|
||||
while (link = links[i++]) {
|
||||
if (data = Linkify.services(link)) {
|
||||
if (Conf['Embedding']) {
|
||||
Linkify.embed(data);
|
||||
}
|
||||
|
||||
@ -16,7 +16,7 @@ Linkify =
|
||||
|
|
||||
# IPv4 Addresses
|
||||
[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}
|
||||
|
|
||||
|
|
||||
# E-mails
|
||||
[-\w\d.@]+@[a-z\d.-]+\.[a-z\d]
|
||||
)///i
|
||||
@ -55,40 +55,40 @@ Linkify =
|
||||
while result = test.exec data
|
||||
{index} = result
|
||||
endNode = node
|
||||
word = result[0]
|
||||
# End of node, not necessarily end of space-delimited string
|
||||
if (length = index + result[0].length) is data.length
|
||||
if (length = index + word.length) is data.length
|
||||
test.lastIndex = 0
|
||||
|
||||
while (saved = snapshot.snapshotItem i++)
|
||||
break if saved.nodeName is 'BR'
|
||||
if saved.nodeName is 'BR'
|
||||
break
|
||||
|
||||
endNode = saved
|
||||
{length} = saved.data
|
||||
endNode = saved
|
||||
{data} = saved
|
||||
word += data
|
||||
{length} = data
|
||||
|
||||
if end = space.exec saved.data
|
||||
if end = space.exec data
|
||||
# Set our snapshot and regex to start on this node at this position when the loop resumes
|
||||
test.lastIndex = length = end.index
|
||||
i--
|
||||
break
|
||||
|
||||
test.lastIndex = 0 if length is endNode.data.length
|
||||
range = Linkify.makeRange node, endNode, index, length
|
||||
links.push range if link = Linkify.regString.exec range.toString()
|
||||
break
|
||||
if Linkify.regString.exec word
|
||||
links.push Linkify.makeRange node, endNode, index, length
|
||||
|
||||
else
|
||||
if link = Linkify.regString.exec result[0]
|
||||
range = Linkify.makeRange node, node, index, length
|
||||
links.push range
|
||||
break unless test.lastIndex or node is endNode
|
||||
|
||||
for range in links.reverse()
|
||||
@nodes.links.push Linkify.makeLink range, @
|
||||
for link in links.reverse()
|
||||
@nodes.links.push Linkify.makeLink link, @
|
||||
|
||||
return unless Conf['Embedding'] or Conf['Link Title']
|
||||
|
||||
items = @nodes.links
|
||||
{links} = @nodes
|
||||
i = 0
|
||||
while range = items[i++]
|
||||
if data = Linkify.services range
|
||||
while link = links[i++]
|
||||
if data = Linkify.services link
|
||||
Linkify.embed data if Conf['Embedding']
|
||||
Linkify.title data if Conf['Link Title']
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user