1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34define([], function () {
// links replacer
function linksReplacer(match, p1, p2, p3, offset, string) {
var url = p1;
var text = p3 || url;
return '<a href="' + url + '" target="_blank">' + text + '</a>';
}
return {
ascii: function (string) {
return (string || '').split('').map(function (char) {
return char.charCodeAt(0).toString(16);
}).join('');
},
nl2br: function (string) {
// add new lines
return (string || '').replace(/[\r\n]/g, '<br>');
},
url: function (string) {
// links
return (string || '').replace(/%\[(.*)\](\((.*)\))?/, linksReplacer);
},
parse: function (string) {
string = this.nl2br(string);
return this.url(string);
}
}
});