Make WordPress Core

Ticket #30966: 30966.13.patch

File 30966.13.patch, 2.5 KB (added by azaozz, 9 years ago)
  • src/wp-admin/js/word-count.js

     
    11( function() {
    22        function WordCounter( settings ) {
    3                 var key;
     3                var key,
     4                        shortcodes;
    45
    56                if ( settings ) {
    67                        for ( key in settings ) {
     
    910                                }
    1011                        }
    1112                }
     13
     14                shortcodes = this.settings.l10n.shortcodes;
     15
     16                if ( shortcodes && shortcodes.length ) {
     17                        this.settings.shortcodesRegExp = new RegExp( '\\[\\/?(?:' + shortcodes.join( '|' ) + ')[^\\]]*?\\]', 'gi' );
     18                }
    1219        }
    1320
    1421        WordCounter.prototype.settings = {
     
    6572                        text = text + '\n';
    6673
    6774                        text = text.replace( this.settings.HTMLRegExp, '\n' );
     75
     76            if ( this.settings.shortcodesRegExp ) {
     77                text = text.replace( this.settings.shortcodesRegExp, '\n' );
     78            }
     79
    6880                        text = text.replace( this.settings.spaceRegExp, ' ' );
    6981
    7082                        if ( type === 'words' ) {
  • src/wp-includes/script-loader.php

     
    400400                /* translators: If your word count is based on single characters (East Asian characters),
    401401                   enter 'characters', or 'all' to include spaces. Otherwise, enter 'words'.
    402402                   Do not translate into your own language. */
    403                 'type' => _x( 'words', 'word count: words, characters or all?' )
     403                'type' => _x( 'words', 'word count: words, characters or all?' ),
     404                'shortcodes' => ! empty( $GLOBALS['shortcode_tags'] ) ? array_keys( $GLOBALS['shortcode_tags'] ) : '',
    404405        ) );
    405406
    406407        $scripts->add( 'media-upload', "/wp-admin/js/media-upload$suffix.js", array( 'thickbox', 'shortcode' ), false, 1 );
  • tests/qunit/wp-admin/js/word-count.js

     
    4444                                words: 3,
    4545                                characters: 14,
    4646                                all: 14
     47                        },
     48                        {
     49                                message: 'Em dash.',
     50                                string: 'one [shortcode attribute="value"]two[/shortcode]three',
     51                                words: 3,
     52                                characters: 11,
     53                                all: 12
    4754                        }
    4855                ], function( test ) {
    4956                        _.each( [ 'words', 'characters', 'all' ], function( type ) {
     
    5158                        } );
    5259                } );
    5360        } );
    54 } )( window.QUnit, new window.wp.utils.WordCounter() );
     61} )( window.QUnit, new window.wp.utils.WordCounter( {
     62        l10n: {
     63                shortcodes: [ 'shortcode' ]
     64        }
     65} ) );