-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlittering.js
52 lines (51 loc) · 1.5 KB
/
littering.js
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
!function($) {
var injector = function(formatter,t,splitter) {
var a = $(t).text().split(splitter);
if (a.length) {
var inject = '';
$(a).each(function(item,i) {
inject += formatter(item, i, a);
});
$(t).empty().html(inject);
}
};
var formatters = {
numbered : function(klass, after) {
return function(item, i) {
return '<span class="'+klass+(i+1)+'">'+item+'</span>'+after;
};
}
};
var splitters = {
words: function(context, formatter){
context.each(function(item){injector(formatter, item,' ');});
},
chars: function(context, formatter){
context.each(function(item){injector(formatter, item,'');});
},
lines: function(context, formatter){
var r = "eefec303079ad17405c889e092e105b0";
context.each(function(item){
$(item).children("br").after(r).remove();
injector(formatter, item,r);
});
}
};
splitters.words.formatter = formatters.numbered('word',' ');
splitters.chars.formatter = formatters.numbered('char','');
splitters.lines.formatter = formatters.numbered('line','');
$.ender({
littering: function(splitter, formatter) {
if (!splitter) {splitter = 'chars';}
if (typeof(splitter) !== 'function') {
splitter = splitters[splitter];
}
if (typeof(formatter) === 'function') {
splitter(this, formatter);
} else {
splitter(this, splitter.formatter);
}
return this;
}
},true);
}(ender);