]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-admin/js/word-count.js
WordPress 4.1.4-scripts
[autoinstalls/wordpress.git] / wp-admin / js / word-count.js
index 474056e990ae4d90e71f3e21b661f70ea2ef6326..0c537ba179c1fb75dd76ffbed3381cf11d4a5755 100644 (file)
@@ -1,39 +1,44 @@
-// Word count
-(function(JQ) {
+/* global wordCountL10n */
+var wpWordCount;
+(function($,undefined) {
        wpWordCount = {
 
-               init : function() {
-                       var t = this, last = 0, co = JQ('#content');
-
-                       JQ('#wp-word-count').html( wordCountL10n.count.replace( /%d/, '<span id="word-count">0</span>' ) );
-                       t.block = 0;
-                       t.wc(co.val());
-                       co.keyup( function(e) {
-                               if ( e.keyCode == last ) return true;
-                               if ( 13 == e.keyCode || 8 == last || 46 == last ) t.wc(co.val());
-                               last = e.keyCode;
-                               return true;
-                       });
+               settings : {
+                       strip : /<[a-zA-Z\/][^<>]*>/g, // strip HTML tags
+                       clean : /[0-9.(),;:!?%#$¿'"_+=\\/-]+/g, // regexp to remove punctuation, etc.
+                       w : /\S\s+/g, // word-counting regexp
+                       c : /\S/g // char-counting regexp for asian languages
                },
 
-               wc : function(tx) {
-                       var t = this, w = JQ('#word-count'), tc = 0;
+               block : 0,
+
+               wc : function(tx, type) {
+                       var t = this, w = $('.word-count'), tc = 0;
+
+                       if ( type === undefined )
+                               type = wordCountL10n.type;
+                       if ( type !== 'w' && type !== 'c' )
+                               type = 'w';
+
+                       if ( t.block )
+                               return;
 
-                       if ( t.block ) return;
                        t.block = 1;
 
                        setTimeout( function() {
                                if ( tx ) {
-                                       tx = tx.replace( /<.[^<>]*?>/g, ' ' ).replace( /&nbsp;/gi, ' ' );
-                                       tx = tx.replace( /[0-9.(),;:!?%#$¿'"_+=\\/-]*/g, '' );
-                                       tx.replace( /\S\s+/g, function(){tc++;} );
+                                       tx = tx.replace( t.settings.strip, ' ' ).replace( /&nbsp;|&#160;/gi, ' ' );
+                                       tx = tx.replace( t.settings.clean, '' );
+                                       tx.replace( t.settings[type], function(){tc++;} );
                                }
                                w.html(tc.toString());
 
                                setTimeout( function() { t.block = 0; }, 2000 );
                        }, 1 );
                }
-       }
-}(jQuery));
+       };
 
-jQuery(document).ready( function(){ wpWordCount.init(); } );
+       $(document).bind( 'wpcountwords', function(e, txt) {
+               wpWordCount.wc(txt);
+       });
+}(jQuery));