wp/wp-admin/js/word-count.js
author ymh <ymh.work@gmail.com>
Wed, 06 Nov 2013 03:21:17 +0000
changeset 0 d970ebf37754
child 5 5e2f62d02dcd
permissions -rw-r--r--
first import
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
(function($,undefined) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
	wpWordCount = {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
		settings : {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
			strip : /<[a-zA-Z\/][^<>]*>/g, // strip HTML tags
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
			clean : /[0-9.(),;:!?%#$¿'"_+=\\/-]+/g, // regexp to remove punctuation, etc.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
			w : /\S\s+/g, // word-counting regexp
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
			c : /\S/g // char-counting regexp for asian languages
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
		},
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
		block : 0,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
		wc : function(tx, type) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
			var t = this, w = $('.word-count'), tc = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
			if ( type === undefined )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
				type = wordCountL10n.type;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
			if ( type !== 'w' && type !== 'c' )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
				type = 'w';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
			if ( t.block )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
				return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
			t.block = 1;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
			setTimeout( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
				if ( tx ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
					tx = tx.replace( t.settings.strip, ' ' ).replace( /&nbsp;|&#160;/gi, ' ' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
					tx = tx.replace( t.settings.clean, '' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
					tx.replace( t.settings[type], function(){tc++;} );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
				w.html(tc.toString());
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
				setTimeout( function() { t.block = 0; }, 2000 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
			}, 1 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
	$(document).bind( 'wpcountwords', function(e, txt) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
		wpWordCount.wc(txt);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
	});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
}(jQuery));