Merge Zixaphir X
This commit is contained in:
commit
f2b15cd0ab
@ -142,7 +142,6 @@
|
|||||||
},
|
},
|
||||||
'Linkification': {
|
'Linkification': {
|
||||||
'Linkify': [true, 'Convert text into links where applicable.'],
|
'Linkify': [true, 'Convert text into links where applicable.'],
|
||||||
'Allow False Positives': [false, 'Linkify everything, allowing more false positives but reducing missed links'],
|
|
||||||
'Embedding': [true, 'Embed supported services.'],
|
'Embedding': [true, 'Embed supported services.'],
|
||||||
'Auto-embed': [false, 'Auto-embed Linkify Embeds.'],
|
'Auto-embed': [false, 'Auto-embed Linkify Embeds.'],
|
||||||
'Link Title': [true, 'Replace the link of a supported site with its actual title. Currently Supported: YouTube, Vimeo, SoundCloud, and Github gists']
|
'Link Title': [true, 'Replace the link of a supported site with its actual title. Currently Supported: YouTube, Vimeo, SoundCloud, and Github gists']
|
||||||
@ -4268,7 +4267,7 @@
|
|||||||
if (g.VIEW === 'catalog' || !Conf['Linkify']) {
|
if (g.VIEW === 'catalog' || !Conf['Linkify']) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.regString = Conf['Allow False Positives'] ? /([-a-z]+:\/\/|[a-z]{3,}\.[-a-z0-9]+\.[a-z]|[-a-z0-9]+\.[a-z]|[\d]+\.[\d]+\.[\d]+\.[\d]+\/|[a-z]{3,}:[a-z0-9?]|[^\s@]+@[a-z0-9.-]+\.[a-z0-9])/i : /(((magnet|mailto)\:|(www\.)|(news|(ht|f)tp(s?))\:\/\/){1})/i;
|
this.regString = /(?:[a-z][-\w]+:([a-z\d%\/])|www\d{0,3}[.]|[-a-z\d.]+[.](com|net|org|jp|uk|ru|be|tv|xxx|edu|gov|cd|es|de|se|tk|dk|io|fm|fi)|[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}|[-\w\d.@]+@[a-z\d.-]+\.[a-z\d])/i;
|
||||||
if (Conf['Comment Expansion']) {
|
if (Conf['Comment Expansion']) {
|
||||||
ExpandComment.callbacks.push(this.node);
|
ExpandComment.callbacks.push(this.node);
|
||||||
}
|
}
|
||||||
@ -4299,8 +4298,8 @@
|
|||||||
space = /[\s'"]/;
|
space = /[\s'"]/;
|
||||||
snapshot = $.X('.//br|.//text()', this.nodes.comment);
|
snapshot = $.X('.//br|.//text()', this.nodes.comment);
|
||||||
i = 0;
|
i = 0;
|
||||||
|
links = [];
|
||||||
while (node = snapshot.snapshotItem(i++)) {
|
while (node = snapshot.snapshotItem(i++)) {
|
||||||
links = [];
|
|
||||||
data = node.data;
|
data = node.data;
|
||||||
if (node.parentElement.nodeName === "A" || !data) {
|
if (node.parentElement.nodeName === "A" || !data) {
|
||||||
continue;
|
continue;
|
||||||
@ -4316,7 +4315,7 @@
|
|||||||
endNode = saved;
|
endNode = saved;
|
||||||
length = saved.data.length;
|
length = saved.data.length;
|
||||||
if (end = space.exec(saved.data)) {
|
if (end = space.exec(saved.data)) {
|
||||||
length = end.index;
|
test.lastIndex = length = end.index;
|
||||||
i--;
|
i--;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -4328,22 +4327,23 @@
|
|||||||
if (link = Linkify.regString.exec(text = range.toString())) {
|
if (link = Linkify.regString.exec(text = range.toString())) {
|
||||||
if (lIndex = link.index) {
|
if (lIndex = link.index) {
|
||||||
range.setStart(node, lIndex + index);
|
range.setStart(node, lIndex + index);
|
||||||
|
text = text.slice(0, lIndex);
|
||||||
}
|
}
|
||||||
links.push([range, text]);
|
links.push([range, text]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
if (link = Linkify.regString.exec(result[0])) {
|
if (link = Linkify.regString.exec(result[0])) {
|
||||||
range = Linkify.makeRange(node, node, link.index, link.length);
|
range = Linkify.makeRange(node, node, index + link.index, length + link.index);
|
||||||
links.push([range, link]);
|
links.push([range, link]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ref = links.reverse();
|
}
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
_ref = links.reverse();
|
||||||
range = _ref[_i];
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||||
this.nodes.links.push(Linkify.makeLink(range, this));
|
range = _ref[_i];
|
||||||
}
|
this.nodes.links.push(Linkify.makeLink(range, this));
|
||||||
}
|
}
|
||||||
if (!(Conf['Embedding'] || Conf['Link Title'])) {
|
if (!(Conf['Embedding'] || Conf['Link Title'])) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -124,7 +124,6 @@
|
|||||||
},
|
},
|
||||||
'Linkification': {
|
'Linkification': {
|
||||||
'Linkify': [true, 'Convert text into links where applicable.'],
|
'Linkify': [true, 'Convert text into links where applicable.'],
|
||||||
'Allow False Positives': [false, 'Linkify everything, allowing more false positives but reducing missed links'],
|
|
||||||
'Embedding': [true, 'Embed supported services.'],
|
'Embedding': [true, 'Embed supported services.'],
|
||||||
'Auto-embed': [false, 'Auto-embed Linkify Embeds.'],
|
'Auto-embed': [false, 'Auto-embed Linkify Embeds.'],
|
||||||
'Link Title': [true, 'Replace the link of a supported site with its actual title. Currently Supported: YouTube, Vimeo, SoundCloud, and Github gists']
|
'Link Title': [true, 'Replace the link of a supported site with its actual title. Currently Supported: YouTube, Vimeo, SoundCloud, and Github gists']
|
||||||
@ -4274,7 +4273,7 @@
|
|||||||
if (g.VIEW === 'catalog' || !Conf['Linkify']) {
|
if (g.VIEW === 'catalog' || !Conf['Linkify']) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.regString = Conf['Allow False Positives'] ? /([-a-z]+:\/\/|[a-z]{3,}\.[-a-z0-9]+\.[a-z]|[-a-z0-9]+\.[a-z]|[\d]+\.[\d]+\.[\d]+\.[\d]+\/|[a-z]{3,}:[a-z0-9?]|[^\s@]+@[a-z0-9.-]+\.[a-z0-9])/i : /(((magnet|mailto)\:|(www\.)|(news|(ht|f)tp(s?))\:\/\/){1})/i;
|
this.regString = /(?:[a-z][-\w]+:([a-z\d%\/])|www\d{0,3}[.]|[-a-z\d.]+[.](com|net|org|jp|uk|ru|be|tv|xxx|edu|gov|cd|es|de|se|tk|dk|io|fm|fi)|[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}|[-\w\d.@]+@[a-z\d.-]+\.[a-z\d])/i;
|
||||||
if (Conf['Comment Expansion']) {
|
if (Conf['Comment Expansion']) {
|
||||||
ExpandComment.callbacks.push(this.node);
|
ExpandComment.callbacks.push(this.node);
|
||||||
}
|
}
|
||||||
@ -4305,8 +4304,8 @@
|
|||||||
space = /[\s'"]/;
|
space = /[\s'"]/;
|
||||||
snapshot = $.X('.//br|.//text()', this.nodes.comment);
|
snapshot = $.X('.//br|.//text()', this.nodes.comment);
|
||||||
i = 0;
|
i = 0;
|
||||||
|
links = [];
|
||||||
while (node = snapshot.snapshotItem(i++)) {
|
while (node = snapshot.snapshotItem(i++)) {
|
||||||
links = [];
|
|
||||||
data = node.data;
|
data = node.data;
|
||||||
if (node.parentElement.nodeName === "A" || !data) {
|
if (node.parentElement.nodeName === "A" || !data) {
|
||||||
continue;
|
continue;
|
||||||
@ -4322,7 +4321,7 @@
|
|||||||
endNode = saved;
|
endNode = saved;
|
||||||
length = saved.data.length;
|
length = saved.data.length;
|
||||||
if (end = space.exec(saved.data)) {
|
if (end = space.exec(saved.data)) {
|
||||||
length = end.index;
|
test.lastIndex = length = end.index;
|
||||||
i--;
|
i--;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -4334,22 +4333,23 @@
|
|||||||
if (link = Linkify.regString.exec(text = range.toString())) {
|
if (link = Linkify.regString.exec(text = range.toString())) {
|
||||||
if (lIndex = link.index) {
|
if (lIndex = link.index) {
|
||||||
range.setStart(node, lIndex + index);
|
range.setStart(node, lIndex + index);
|
||||||
|
text = text.slice(0, lIndex);
|
||||||
}
|
}
|
||||||
links.push([range, text]);
|
links.push([range, text]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
if (link = Linkify.regString.exec(result[0])) {
|
if (link = Linkify.regString.exec(result[0])) {
|
||||||
range = Linkify.makeRange(node, node, link.index, link.length);
|
range = Linkify.makeRange(node, node, index + link.index, length + link.index);
|
||||||
links.push([range, link]);
|
links.push([range, link]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ref = links.reverse();
|
}
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
_ref = links.reverse();
|
||||||
range = _ref[_i];
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||||
this.nodes.links.push(Linkify.makeLink(range, this));
|
range = _ref[_i];
|
||||||
}
|
this.nodes.links.push(Linkify.makeLink(range, this));
|
||||||
}
|
}
|
||||||
if (!(Conf['Embedding'] || Conf['Link Title'])) {
|
if (!(Conf['Embedding'] || Conf['Link Title'])) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -83,10 +83,6 @@ Config =
|
|||||||
true
|
true
|
||||||
'Convert text into links where applicable.'
|
'Convert text into links where applicable.'
|
||||||
]
|
]
|
||||||
'Allow False Positives': [
|
|
||||||
false
|
|
||||||
'Linkify everything, allowing more false positives but reducing missed links'
|
|
||||||
]
|
|
||||||
'Embedding': [
|
'Embedding': [
|
||||||
true
|
true
|
||||||
'Embed supported services.'
|
'Embed supported services.'
|
||||||
|
|||||||
@ -2,22 +2,27 @@ Linkify =
|
|||||||
init: ->
|
init: ->
|
||||||
return if g.VIEW is 'catalog' or not Conf['Linkify']
|
return if g.VIEW is 'catalog' or not Conf['Linkify']
|
||||||
|
|
||||||
@regString = if Conf['Allow False Positives']
|
@regString =
|
||||||
///(
|
///(
|
||||||
[-a-z]+://
|
# http, magnet, ftp, etc
|
||||||
|
?:[a-z][-\w]+:(
|
||||||
|
[a-z\d%/]
|
||||||
|
)
|
||||||
|
|
|
|
||||||
[a-z]{3,}\.[-a-z0-9]+\.[a-z]
|
www\d{0,3}[.]
|
||||||
|
|
|
|
||||||
[-a-z0-9]+\.[a-z]
|
# This should account for virtually all links posted without www or http:
|
||||||
|
# If it misses any, screw it. No, I will not add canv.as
|
||||||
|
[-a-z\d.]+[.](
|
||||||
|
com|net|org|jp|uk|ru|be|tv|xxx|edu|gov|cd|es|de|se|tk|dk|io|fm|fi
|
||||||
|
)
|
||||||
|
|
|
|
||||||
[\d]+\.[\d]+\.[\d]+\.[\d]+/
|
# IPv4 Addresses
|
||||||
|
[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}
|
||||||
|
|
|
|
||||||
[a-z]{3,}:[a-z0-9?]
|
# E-mails
|
||||||
|
|
[-\w\d.@]+@[a-z\d.-]+\.[a-z\d]
|
||||||
[^\s@]+@[a-z0-9.-]+\.[a-z0-9]
|
|
||||||
)///i
|
)///i
|
||||||
else
|
|
||||||
/(((magnet|mailto)\:|(www\.)|(news|(ht|f)tp(s?))\:\/\/){1})/i
|
|
||||||
|
|
||||||
if Conf['Comment Expansion']
|
if Conf['Comment Expansion']
|
||||||
ExpandComment.callbacks.push @node
|
ExpandComment.callbacks.push @node
|
||||||
@ -45,14 +50,15 @@ Linkify =
|
|||||||
|
|
||||||
snapshot = $.X './/br|.//text()', @nodes.comment
|
snapshot = $.X './/br|.//text()', @nodes.comment
|
||||||
i = 0
|
i = 0
|
||||||
|
links = []
|
||||||
while node = snapshot.snapshotItem i++
|
while node = snapshot.snapshotItem i++
|
||||||
links = []
|
|
||||||
{data} = node
|
{data} = node
|
||||||
continue if node.parentElement.nodeName is "A" or not data
|
continue if node.parentElement.nodeName is "A" or not data
|
||||||
|
|
||||||
while result = test.exec data
|
while result = test.exec data
|
||||||
{index} = result
|
{index} = result
|
||||||
endNode = node
|
endNode = node
|
||||||
|
# End of node, not necessarily end of space-delimited string
|
||||||
if (length = index + result[0].length) is data.length
|
if (length = index + result[0].length) is data.length
|
||||||
|
|
||||||
while (saved = snapshot.snapshotItem i++)
|
while (saved = snapshot.snapshotItem i++)
|
||||||
@ -62,25 +68,27 @@ Linkify =
|
|||||||
{length} = saved.data
|
{length} = saved.data
|
||||||
|
|
||||||
if end = space.exec saved.data
|
if end = space.exec saved.data
|
||||||
length = end.index
|
# Set our snapshot and regex to start on this node at this position when the loop resumes
|
||||||
|
test.lastIndex = length = end.index
|
||||||
i--
|
i--
|
||||||
break
|
break
|
||||||
|
|
||||||
if length is endNode.data.length then test.lastIndex = 0
|
test.lastIndex = 0 if length is endNode.data.length
|
||||||
range = Linkify.makeRange node, endNode, index, length
|
range = Linkify.makeRange node, endNode, index, length
|
||||||
if link = Linkify.regString.exec text = range.toString()
|
if link = Linkify.regString.exec text = range.toString()
|
||||||
if lIndex = link.index
|
if lIndex = link.index
|
||||||
range.setStart node, lIndex + index
|
range.setStart node, lIndex + index
|
||||||
|
text = text[...lIndex]
|
||||||
links.push [range, text]
|
links.push [range, text]
|
||||||
break
|
break
|
||||||
|
|
||||||
else
|
else
|
||||||
if link = Linkify.regString.exec result[0]
|
if link = Linkify.regString.exec result[0]
|
||||||
range = Linkify.makeRange node, node, link.index, link.length
|
range = Linkify.makeRange node, node, index + link.index, length + link.index
|
||||||
links.push [range, link]
|
links.push [range, link]
|
||||||
|
|
||||||
for range in links.reverse()
|
for range in links.reverse()
|
||||||
@nodes.links.push Linkify.makeLink range, @
|
@nodes.links.push Linkify.makeLink range, @
|
||||||
|
|
||||||
return unless Conf['Embedding'] or Conf['Link Title']
|
return unless Conf['Embedding'] or Conf['Link Title']
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user