Merge branch 'v3' of https://github.com/zixaphir/appchan-x
This commit is contained in:
commit
4377e1a93d
@ -4525,20 +4525,50 @@
|
|||||||
return range;
|
return range;
|
||||||
},
|
},
|
||||||
makeLink: function(range) {
|
makeLink: function(range) {
|
||||||
var a, check, text;
|
var a, char, len, text, toggle, trim;
|
||||||
|
|
||||||
text = range.toString();
|
text = range.toString();
|
||||||
if (/[(\[{<]/.test(text.charAt(0))) {
|
trim = function() {
|
||||||
if (check = /[\)\]}>]/.test(text.charAt(text.length - 1))) {
|
if (!(range.endOffset < 1)) {
|
||||||
if (!(range.endOffset < 1)) {
|
range.setEnd(range.endContainer, range.endOffset - 1);
|
||||||
range.setEnd(range.endContainer, range.endOffset - 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
text = check ? text.slice(1, -1) : text.slice(1);
|
return text = text.slice(0, -1);
|
||||||
|
};
|
||||||
|
if (/[(\[{<]/.test(text.charAt(0))) {
|
||||||
|
if (/[\)\]}>]/.test(text.charAt(text.length - 1))) {
|
||||||
|
trim();
|
||||||
|
}
|
||||||
|
text.slice(1);
|
||||||
if (range.startOffset !== range.startContainer.data.length) {
|
if (range.startOffset !== range.startContainer.data.length) {
|
||||||
range.setStart(range.startContainer, range.startOffset + 1);
|
range.setStart(range.startContainer, range.startOffset + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
while (/[\)\]}>,]/.exec(char = text.charAt(text.length - 1))) {
|
||||||
|
if (char === ',') {
|
||||||
|
trim();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
len = text.length;
|
||||||
|
while (i < len) {
|
||||||
|
toggle = false;
|
||||||
|
switch (text[i++]) {
|
||||||
|
case '(':
|
||||||
|
case ')':
|
||||||
|
case '[':
|
||||||
|
case ']':
|
||||||
|
case '{':
|
||||||
|
case '}':
|
||||||
|
case '<':
|
||||||
|
case '>':
|
||||||
|
toggle = !toggle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (toggle) {
|
||||||
|
trim();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
text = text.contains(':') ? text : (text.contains('@') ? 'mailto:' : 'http://') + text;
|
text = text.contains(':') ? text : (text.contains('@') ? 'mailto:' : 'http://') + text;
|
||||||
a = $.el('a', {
|
a = $.el('a', {
|
||||||
className: 'linkify',
|
className: 'linkify',
|
||||||
|
|||||||
@ -4531,20 +4531,50 @@
|
|||||||
return range;
|
return range;
|
||||||
},
|
},
|
||||||
makeLink: function(range) {
|
makeLink: function(range) {
|
||||||
var a, check, text;
|
var a, char, len, text, toggle, trim;
|
||||||
|
|
||||||
text = range.toString();
|
text = range.toString();
|
||||||
if (/[(\[{<]/.test(text.charAt(0))) {
|
trim = function() {
|
||||||
if (check = /[\)\]}>]/.test(text.charAt(text.length - 1))) {
|
if (!(range.endOffset < 1)) {
|
||||||
if (!(range.endOffset < 1)) {
|
range.setEnd(range.endContainer, range.endOffset - 1);
|
||||||
range.setEnd(range.endContainer, range.endOffset - 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
text = check ? text.slice(1, -1) : text.slice(1);
|
return text = text.slice(0, -1);
|
||||||
|
};
|
||||||
|
if (/[(\[{<]/.test(text.charAt(0))) {
|
||||||
|
if (/[\)\]}>]/.test(text.charAt(text.length - 1))) {
|
||||||
|
trim();
|
||||||
|
}
|
||||||
|
text.slice(1);
|
||||||
if (range.startOffset !== range.startContainer.data.length) {
|
if (range.startOffset !== range.startContainer.data.length) {
|
||||||
range.setStart(range.startContainer, range.startOffset + 1);
|
range.setStart(range.startContainer, range.startOffset + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
while (/[\)\]}>,]/.exec(char = text.charAt(text.length - 1))) {
|
||||||
|
if (char === ',') {
|
||||||
|
trim();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
len = text.length;
|
||||||
|
while (i < len) {
|
||||||
|
toggle = false;
|
||||||
|
switch (text[i++]) {
|
||||||
|
case '(':
|
||||||
|
case ')':
|
||||||
|
case '[':
|
||||||
|
case ']':
|
||||||
|
case '{':
|
||||||
|
case '}':
|
||||||
|
case '<':
|
||||||
|
case '>':
|
||||||
|
toggle = !toggle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (toggle) {
|
||||||
|
trim();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
text = text.contains(':') ? text : (text.contains('@') ? 'mailto:' : 'http://') + text;
|
text = text.contains(':') ? text : (text.contains('@') ? 'mailto:' : 'http://') + text;
|
||||||
a = $.el('a', {
|
a = $.el('a', {
|
||||||
className: 'linkify',
|
className: 'linkify',
|
||||||
|
|||||||
@ -105,18 +105,31 @@ Linkify =
|
|||||||
|
|
||||||
makeLink: (range) ->
|
makeLink: (range) ->
|
||||||
text = range.toString()
|
text = range.toString()
|
||||||
|
|
||||||
|
trim = ->
|
||||||
|
range.setEnd range.endContainer, range.endOffset - 1 unless range.endOffset < 1
|
||||||
|
text = text.slice 0, -1
|
||||||
|
|
||||||
# Clean brackets
|
# Clean brackets, hanging commas
|
||||||
if /[(\[{<]/.test text.charAt 0
|
if /[(\[{<]/.test text.charAt 0
|
||||||
if check = /[\)\]}>]/.test text.charAt text.length - 1
|
trim() if /[\)\]}>]/.test text.charAt text.length - 1
|
||||||
unless range.endOffset < 1
|
text.slice 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
|
unless range.startOffset is range.startContainer.data.length
|
||||||
range.setStart range.startContainer, range.startOffset + 1
|
range.setStart range.startContainer, range.startOffset + 1
|
||||||
|
|
||||||
|
while /[\)\]}>,]/.exec char = text.charAt text.length - 1
|
||||||
|
if char is ','
|
||||||
|
trim()
|
||||||
|
continue
|
||||||
|
len = text.length
|
||||||
|
while i < len
|
||||||
|
toggle = false
|
||||||
|
switch text[i++]
|
||||||
|
when '(', ')', '[', ']', '{', '}', '<', '>' then toggle = !toggle
|
||||||
|
if toggle
|
||||||
|
trim()
|
||||||
|
continue
|
||||||
|
break
|
||||||
|
|
||||||
text =
|
text =
|
||||||
if text.contains ':'
|
if text.contains ':'
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user