WordPress.org

Make WordPress Core

Ticket #29883: grunt.diff

File grunt.diff, 32.9 KB (added by voldemortensen, 6 years ago)
  • Gruntfile.js

     
    66                mediaConfig = {},
    77                mediaBuilds = ['audio-video', 'grid', 'models', 'views'];
    88
     9        var wpGrunt = require('wpGruntfile');
     10
    911        // Load tasks.
    1012        require('matchdep').filterDev(['grunt-*', '!grunt-legacy-util']).forEach( grunt.loadNpmTasks );
    1113        // Load legacy utils
     
    1921
    2022        // Project configuration.
    2123        grunt.initConfig({
    22                 autoprefixer: {
    23                         options: {
    24                                 browsers: ['Android >= 2.1', 'Chrome >= 21', 'Explorer >= 7', 'Firefox >= 17', 'Opera >= 12.1', 'Safari >= 6.0'],
    25                                 cascade: false
    26                         },
    27                         core: {
    28                                 expand: true,
    29                                 cwd: SOURCE_DIR,
    30                                 dest: SOURCE_DIR,
    31                                 src: [
    32                                         'wp-admin/css/*.css',
    33                                         'wp-includes/css/*.css'
    34                                 ]
    35                         },
    36                         colors: {
    37                                 expand: true,
    38                                 cwd: BUILD_DIR,
    39                                 dest: BUILD_DIR,
    40                                 src: [
    41                                         'wp-admin/css/colors/*/colors.css'
    42                                 ]
    43                         }
    44                 },
    45                 clean: {
    46                         all: [BUILD_DIR],
    47                         dynamic: {
    48                                 dot: true,
    49                                 expand: true,
    50                                 cwd: BUILD_DIR,
    51                                 src: []
    52                         },
    53                         tinymce: ['<%= concat.tinymce.dest %>'],
    54                         qunit: ['tests/qunit/compiled.html']
    55                 },
    56                 copy: {
    57                         files: {
    58                                 files: [
    59                                         {
    60                                                 dot: true,
    61                                                 expand: true,
    62                                                 cwd: SOURCE_DIR,
    63                                                 src: [
    64                                                         '**',
    65                                                         '!**/.{svn,git}/**', // Ignore version control directories.
    66                                                         // Ignore unminified versions of external libs we don't ship:
    67                                                         '!wp-includes/js/backbone.js',
    68                                                         '!wp-includes/js/underscore.js',
    69                                                         '!wp-includes/js/jquery/jquery.masonry.js',
    70                                                         '!wp-includes/js/jquery/ui/*.js',
    71                                                         '!wp-includes/js/tinymce/tinymce.js',
    72                                                         '!wp-includes/version.php' // Exclude version.php
    73                                                 ],
    74                                                 dest: BUILD_DIR
    75                                         },
    76                                         {
    77                                                 src: 'wp-config-sample.php',
    78                                                 dest: BUILD_DIR
    79                                         }
    80                                 ]
    81                         },
    82                         'wp-admin-rtl': {
    83                                 options: {
    84                                         processContent: function( src ) {
    85                                                 return src.replace( /\.css/g, '-rtl.css' );
    86                                         }
    87                                 },
    88                                 src: SOURCE_DIR + 'wp-admin/css/wp-admin.css',
    89                                 dest: BUILD_DIR + 'wp-admin/css/wp-admin-rtl.css'
    90                         },
    91                         version: {
    92                                 options: {
    93                                         processContent: function( src ) {
    94                                                 return src.replace( /^\$wp_version = '(.+?)';/m, function( str, version ) {
    95                                                         version = version.replace( /-src$/, '' );
    96 
    97                                                         // If the version includes an SVN commit (-12345), it's not a released alpha/beta. Append a date.
    98                                                         version = version.replace( /-[\d]{5}$/, '-' + grunt.template.today( 'yyyymmdd' ) );
    99 
    100                                                         /* jshint quotmark: true */
    101                                                         return "$wp_version = '" + version + "';";
    102                                                 });
    103                                         }
    104                                 },
    105                                 src: SOURCE_DIR + 'wp-includes/version.php',
    106                                 dest: BUILD_DIR + 'wp-includes/version.php'
    107                         },
    108                         dynamic: {
    109                                 dot: true,
    110                                 expand: true,
    111                                 cwd: SOURCE_DIR,
    112                                 dest: BUILD_DIR,
    113                                 src: []
    114                         },
    115                         qunit: {
    116                                 src: 'tests/qunit/index.html',
    117                                 dest: 'tests/qunit/compiled.html',
    118                                 options: {
    119                                         processContent: function( src ) {
    120                                                 src = src.replace( /([^\.])*\.\.\/src/ig , '/../build' );
    121                                                 src = src.replace( '/jquery/ui/core.js', '/jquery/ui/core.min.js' );
    122                                                 return src;
    123                                         }
    124                                 }
    125                         }
    126                 },
     24                autoprefixer: wpGrunt.autoprefixer( SOURCE_DIR, BUILD_DIR ),
     25                clean: wpGrunt.clean( BUILD_DIR ),
     26                copy: wpGrunt.copy( grunt, SOURCE_DIR, BUILD_DIR ),
    12727                browserify: mediaConfig,
    128                 sass: {
    129                         colors: {
    130                                 expand: true,
    131                                 cwd: SOURCE_DIR,
    132                                 dest: BUILD_DIR,
    133                                 ext: '.css',
    134                                 src: ['wp-admin/css/colors/*/colors.scss'],
    135                                 options: {
    136                                         outputStyle: 'expanded'
    137                                 }
    138                         }
    139                 },
    140                 cssmin: {
    141                         options: {
    142                                 'wp-admin': ['wp-admin', 'color-picker', 'customize-controls', 'customize-widgets', 'ie', 'install', 'login', 'press-this', 'deprecated-*']
    143                         },
    144                         core: {
    145                                 expand: true,
    146                                 cwd: SOURCE_DIR,
    147                                 dest: BUILD_DIR,
    148                                 ext: '.min.css',
    149                                 src: [
    150                                         'wp-admin/css/{<%= cssmin.options["wp-admin"] %>}.css',
    151                                         'wp-includes/css/*.css'
    152                                 ]
    153                         },
    154                         rtl: {
    155                                 expand: true,
    156                                 cwd: BUILD_DIR,
    157                                 dest: BUILD_DIR,
    158                                 ext: '.min.css',
    159                                 src: [
    160                                         'wp-admin/css/{<%= cssmin.options["wp-admin"] %>}-rtl.css',
    161                                         'wp-includes/css/*-rtl.css'
    162                                 ]
    163                         },
    164                         colors: {
    165                                 expand: true,
    166                                 cwd: BUILD_DIR,
    167                                 dest: BUILD_DIR,
    168                                 ext: '.min.css',
    169                                 src: [
    170                                         'wp-admin/css/colors/*/*.css'
    171                                 ]
    172                         }
    173                 },
    174                 rtlcss: {
    175                         options: {
    176                                 // rtlcss options
    177                                 config: {
    178                                         swapLeftRightInUrl: false,
    179                                         swapLtrRtlInUrl: false,
    180                                         autoRename: false,
    181                                         preserveDirectives: true,
    182                                         stringMap: [
    183                                                 {
    184                                                         name: 'import-rtl-stylesheet',
    185                                                         search: [ '.css' ],
    186                                                         replace: [ '-rtl.css' ],
    187                                                         options: {
    188                                                                 scope: 'url',
    189                                                                 ignoreCase: false
    190                                                         }
    191                                                 }
    192                                         ]
    193                                 },
    194                                 properties : [
    195                                         {
    196                                                 name: 'swap-dashicons-left-right-arrows',
    197                                                 expr: /content/im,
    198                                                 action: function( prop, value ) {
    199                                                         if ( value === '"\\f141"' ) { // dashicons-arrow-left
    200                                                                 value = '"\\f139"';
    201                                                         } else if ( value === '"\\f340"' ) { // dashicons-arrow-left-alt
    202                                                                 value = '"\\f344"';
    203                                                         } else if ( value === '"\\f341"' ) { // dashicons-arrow-left-alt2
    204                                                                 value = '"\\f345"';
    205                                                         } else if ( value === '"\\f139"' ) { // dashicons-arrow-right
    206                                                                 value = '"\\f141"';
    207                                                         } else if ( value === '"\\f344"' ) { // dashicons-arrow-right-alt
    208                                                                 value = '"\\f340"';
    209                                                         } else if ( value === '"\\f345"' ) { // dashicons-arrow-right-alt2
    210                                                                 value = '"\\f341"';
    211                                                         }
    212                                                         return { prop: prop, value: value };
    213                                                 }
    214                                         }
    215                                 ],
    216                                 saveUnmodified: false
    217                         },
    218                         core: {
    219                                 expand: true,
    220                                 cwd: SOURCE_DIR,
    221                                 dest: BUILD_DIR,
    222                                 ext: '-rtl.css',
    223                                 src: [
    224                                         'wp-admin/css/*.css',
    225                                         'wp-includes/css/*.css',
    226 
    227                                         // Exceptions
    228                                         '!wp-includes/css/dashicons.css'
    229                                 ]
    230                         },
    231                         colors: {
    232                                 expand: true,
    233                                 cwd: BUILD_DIR,
    234                                 dest: BUILD_DIR,
    235                                 ext: '-rtl.css',
    236                                 src: [
    237                                         'wp-admin/css/colors/*/colors.css'
    238                                 ]
    239                         },
    240                         dynamic: {
    241                                 expand: true,
    242                                 cwd: SOURCE_DIR,
    243                                 dest: BUILD_DIR,
    244                                 ext: '-rtl.css',
    245                                 src: []
    246                         }
    247                 },
    248                 jshint: {
    249                         options: grunt.file.readJSON('.jshintrc'),
    250                         grunt: {
    251                                 src: ['Gruntfile.js']
    252                         },
    253                         tests: {
    254                                 src: [
    255                                         'tests/qunit/**/*.js',
    256                                         '!tests/qunit/vendor/*',
    257                                         '!tests/qunit/editor/**'
    258                                 ],
    259                                 options: grunt.file.readJSON('tests/qunit/.jshintrc')
    260                         },
    261                         themes: {
    262                                 expand: true,
    263                                 cwd: SOURCE_DIR + 'wp-content/themes',
    264                                 src: [
    265                                         'twenty*/**/*.js',
    266                                         '!twenty{eleven,twelve,thirteen}/**',
    267                                         // Third party scripts
    268                                         '!twenty{fourteen,fifteen}/js/html5.js'
    269                                 ]
    270                         },
    271                         media: {
    272                                 options: {
    273                                         browserify: true
    274                                 },
    275                                 expand: true,
    276                                 cwd: SOURCE_DIR,
    277                                 src: [
    278                                         'wp-includes/js/media/**/*.js',
    279                                         '!wp-includes/js/media/*.js',
    280                                         'wp-includes/js/media/*.manifest.js'
    281                                 ]
    282                         },
    283                         core: {
    284                                 expand: true,
    285                                 cwd: SOURCE_DIR,
    286                                 src: [
    287                                         'wp-admin/js/*.js',
    288                                         'wp-includes/js/*.js',
    289                                         // WordPress scripts inside directories
    290                                         'wp-includes/js/jquery/jquery.table-hotkeys.js',
    291                                         'wp-includes/js/mediaelement/wp-mediaelement.js',
    292                                         'wp-includes/js/plupload/handlers.js',
    293                                         'wp-includes/js/plupload/wp-plupload.js',
    294                                         'wp-includes/js/tinymce/plugins/wordpress/plugin.js',
    295                                         'wp-includes/js/tinymce/plugins/wp*/plugin.js',
    296                                         // Third party scripts
    297                                         '!wp-admin/js/farbtastic.js',
    298                                         '!wp-includes/js/backbone*.js',
    299                                         '!wp-includes/js/swfobject.js',
    300                                         '!wp-includes/js/underscore*.js',
    301                                         '!wp-includes/js/colorpicker.js',
    302                                         '!wp-includes/js/hoverIntent.js',
    303                                         '!wp-includes/js/json2.js',
    304                                         '!wp-includes/js/tw-sack.js',
    305                                         '!wp-includes/js/twemoji.js',
    306                                         '!**/*.min.js'
    307                                 ],
    308                                 // Remove once other JSHint errors are resolved
    309                                 options: {
    310                                         curly: false,
    311                                         eqeqeq: false
    312                                 },
    313                                 // Limit JSHint's run to a single specified file:
    314                                 //
    315                                 //    grunt jshint:core --file=filename.js
    316                                 //
    317                                 // Optionally, include the file path:
    318                                 //
    319                                 //    grunt jshint:core --file=path/to/filename.js
    320                                 //
    321                                 filter: function( filepath ) {
    322                                         var index, file = grunt.option( 'file' );
    323 
    324                                         // Don't filter when no target file is specified
    325                                         if ( ! file ) {
    326                                                 return true;
    327                                         }
    328 
    329                                         // Normalize filepath for Windows
    330                                         filepath = filepath.replace( /\\/g, '/' );
    331                                         index = filepath.lastIndexOf( '/' + file );
    332 
    333                                         // Match only the filename passed from cli
    334                                         if ( filepath === file || ( -1 !== index && index === filepath.length - ( file.length + 1 ) ) ) {
    335                                                 return true;
    336                                         }
    337 
    338                                         return false;
    339                                 }
    340                         },
    341                         plugins: {
    342                                 expand: true,
    343                                 cwd: SOURCE_DIR + 'wp-content/plugins',
    344                                 src: [
    345                                         '**/*.js',
    346                                         '!**/*.min.js'
    347                                 ],
    348                                 // Limit JSHint's run to a single specified plugin directory:
    349                                 //
    350                                 //    grunt jshint:plugins --dir=foldername
    351                                 //
    352                                 filter: function( dirpath ) {
    353                                         var index, dir = grunt.option( 'dir' );
    354 
    355                                         // Don't filter when no target folder is specified
    356                                         if ( ! dir ) {
    357                                                 return true;
    358                                         }
    359 
    360                                         dirpath = dirpath.replace( /\\/g, '/' );
    361                                         index = dirpath.lastIndexOf( '/' + dir );
    362 
    363                                         // Match only the folder name passed from cli
    364                                         if ( -1 !== index ) {
    365                                                 return true;
    366                                         }
    367 
    368                                         return false;
    369                                 }
    370                         }
    371                 },
    372                 qunit: {
    373                         files: [
    374                                 'tests/qunit/**/*.html',
    375                                 '!tests/qunit/editor/**'
    376                         ]
    377                 },
    378                 phpunit: {
    379                         'default': {
    380                                 cmd: 'phpunit',
    381                                 args: ['-c', 'phpunit.xml.dist']
    382                         },
    383                         ajax: {
    384                                 cmd: 'phpunit',
    385                                 args: ['-c', 'phpunit.xml.dist', '--group', 'ajax']
    386                         },
    387                         multisite: {
    388                                 cmd: 'phpunit',
    389                                 args: ['-c', 'tests/phpunit/multisite.xml']
    390                         },
    391                         'external-http': {
    392                                 cmd: 'phpunit',
    393                                 args: ['-c', 'phpunit.xml.dist', '--group', 'external-http']
    394                         }
    395                 },
    396                 uglify: {
    397                         core: {
    398                                 expand: true,
    399                                 cwd: SOURCE_DIR,
    400                                 dest: BUILD_DIR,
    401                                 ext: '.min.js',
    402                                 src: [
    403                                         'wp-admin/js/*.js',
    404                                         'wp-includes/js/*.js',
    405                                         'wp-includes/js/plupload/handlers.js',
    406                                         'wp-includes/js/plupload/wp-plupload.js',
    407                                         'wp-includes/js/tinymce/plugins/wordpress/plugin.js',
    408                                         'wp-includes/js/tinymce/plugins/wp*/plugin.js',
    409 
    410                                         // Exceptions
    411                                         '!wp-admin/js/custom-header.js', // Why? We should minify this.
    412                                         '!wp-admin/js/farbtastic.js',
    413                                         '!wp-admin/js/iris.min.js',
    414                                         '!wp-admin/js/bookmarklet.*', // Minified and updated in /src with the precommit task. See uglify:bookmarklet.
    415                                         '!wp-includes/js/backbone.min.js',
    416                                         '!wp-includes/js/swfobject.js',
    417                                         '!wp-includes/js/underscore.min.js',
    418                                         '!wp-includes/js/zxcvbn.min.js'
    419                                 ]
    420                         },
    421                         media: {
    422                                 expand: true,
    423                                 cwd: SOURCE_DIR,
    424                                 dest: BUILD_DIR,
    425                                 ext: '.min.js',
    426                                 src: [
    427                                         'wp-includes/js/media/audio-video.js',
    428                                         'wp-includes/js/media/grid.js',
    429                                         'wp-includes/js/media/models.js',
    430                                         'wp-includes/js/media/views.js'
    431                                 ]
    432                         },
    433                         jqueryui: {
    434                                 options: {
    435                                         preserveComments: 'some'
    436                                 },
    437                                 expand: true,
    438                                 cwd: SOURCE_DIR,
    439                                 dest: BUILD_DIR,
    440                                 ext: '.min.js',
    441                                 src: ['wp-includes/js/jquery/ui/*.js']
    442                         },
    443                         bookmarklet: {
    444                                 options: {
    445                                         compress: {
    446                                                 negate_iife: false
    447                                         }
    448                                 },
    449                                 src: SOURCE_DIR + 'wp-admin/js/bookmarklet.js',
    450                                 dest: SOURCE_DIR + 'wp-admin/js/bookmarklet.min.js'
    451                         }
    452                 },
    453                 concat: {
    454                         tinymce: {
    455                                 options: {
    456                                         separator: '\n',
    457                                         process: function( src, filepath ) {
    458                                                 return '// Source: ' + filepath.replace( BUILD_DIR, '' ) + '\n' + src;
    459                                         }
    460                                 },
    461                                 src: [
    462                                         BUILD_DIR + 'wp-includes/js/tinymce/tinymce.min.js',
    463                                         BUILD_DIR + 'wp-includes/js/tinymce/themes/modern/theme.min.js',
    464                                         BUILD_DIR + 'wp-includes/js/tinymce/plugins/*/plugin.min.js'
    465                                 ],
    466                                 dest: BUILD_DIR + 'wp-includes/js/tinymce/wp-tinymce.js'
    467                         }
    468                 },
    469                 compress: {
    470                         tinymce: {
    471                                 options: {
    472                                         mode: 'gzip',
    473                                         level: 9
    474                                 },
    475                                 src: '<%= concat.tinymce.dest %>',
    476                                 dest: BUILD_DIR + 'wp-includes/js/tinymce/wp-tinymce.js.gz'
    477                         }
    478                 },
    479                 jsvalidate:{
    480                         options: {
    481                                 globals: {},
    482                                 esprimaOptions:{},
    483                                 verbose: false
    484                         },
    485                         build: {
    486                                 files: {
    487                                         src: [
    488                                                 BUILD_DIR + 'wp-{admin,includes}/**/*.js',
    489                                                 BUILD_DIR + 'wp-content/themes/twenty*/**/*.js'
    490                                         ]
    491                                 }
    492                         }
    493                 },
    494                 imagemin: {
    495                         core: {
    496                                 expand: true,
    497                                 cwd: SOURCE_DIR,
    498                                 src: [
    499                                         'wp-{admin,includes}/images/**/*.{png,jpg,gif,jpeg}',
    500                                         'wp-includes/js/tinymce/skins/wordpress/images/*.{png,jpg,gif,jpeg}'
    501                                 ],
    502                                 dest: SOURCE_DIR
    503                         }
    504                 },
    505                 _watch: {
    506                         all: {
    507                                 files: [
    508                                         SOURCE_DIR + '**',
    509                                         // Ignore version control directories.
    510                                         '!' + SOURCE_DIR + '**/.{svn,git}/**'
    511                                 ],
    512                                 tasks: ['clean:dynamic', 'copy:dynamic'],
    513                                 options: {
    514                                         dot: true,
    515                                         spawn: false,
    516                                         interval: 2000
    517                                 }
    518                         },
    519                         browserify: {
    520                                 files: [
    521                                         SOURCE_DIR + 'wp-includes/js/media/*.js',
    522                                         '!' + SOURCE_DIR + 'wp-includes/js/media/*.manifest.js'
    523                                 ],
    524                                 tasks: ['uglify:media']
    525                         },
    526                         config: {
    527                                 files: 'Gruntfile.js'
    528                         },
    529                         colors: {
    530                                 files: [SOURCE_DIR + 'wp-admin/css/colors/**'],
    531                                 tasks: ['sass:colors']
    532                         },
    533                         rtl: {
    534                                 files: [
    535                                         SOURCE_DIR + 'wp-admin/css/*.css',
    536                                         SOURCE_DIR + 'wp-includes/css/*.css'
    537                                 ],
    538                                 tasks: ['rtlcss:dynamic'],
    539                                 options: {
    540                                         spawn: false,
    541                                         interval: 2000
    542                                 }
    543                         },
    544                         test: {
    545                                 files: [
    546                                         'tests/qunit/**',
    547                                         '!tests/qunit/editor/**'
    548                                 ],
    549                                 tasks: ['qunit']
    550                         }
    551                 }
     28                sass: wpGrunt.sass( SOURCE_DIR, BUILD_DIR ),
     29                cssmin: wpGrunt.cssmin( SOURCE_DIR, BUILD_DIR ),
     30                rtlcss: wpGrunt.rtlcss( SOURCE_DIR, BUILD_DIR ),
     31                jshint: wpGrunt.jshint( grunt, SOURCE_DIR, BUILD_DIR ),
     32                qunit: wpGrunt.qunit,
     33                phpunit: wpGrunt.phpunit,
     34                uglify: wpGrunt.uglify( SOURCE_DIR, BUILD_DIR ),
     35                concat: wpGrunt.concat( SOURCE_DIR, BUILD_DIR ),
     36                compress: wpGrunt.compress( BUILD_DIR ),
     37                jsvalidate: wpGrunt.jsvalidate( BUILD_DIR ),
     38                imagemin: wpGrunt.imagemin( SOURCE_DIR ),
     39                _watch: wpGrunt.watch( SOURCE_DIR )
    55240        });
    55341
    55442        // Register tasks.
  • node_modules/wpGruntfile/lib/grunt/autoprefixer.js

     
     1module.exports = function ( SOURCE_DIR, BUILD_DIR ) {
     2        return {
     3                options: {
     4                        browsers: ['Android >= 2.1', 'Chrome >= 21', 'Explorer >= 7', 'Firefox >= 17', 'Opera >= 12.1', 'Safari >= 6.0'],
     5                        cascade: false
     6                },
     7                core: {
     8                        expand: true,
     9                        cwd: SOURCE_DIR,
     10                        dest: SOURCE_DIR,
     11                        src: [
     12                                'wp-admin/css/*.css',
     13                                'wp-includes/css/*.css'
     14                        ]
     15                },
     16                colors: {
     17                        expand: true,
     18                        cwd: BUILD_DIR,
     19                        dest: BUILD_DIR,
     20                        src: [
     21                        'wp-admin/css/colors/*/colors.css'
     22                        ]
     23                }
     24        };
     25}
  • node_modules/wpGruntfile/lib/grunt/clean.js

     
     1module.exports = function ( BUILD_DIR ) {
     2        return {
     3                all: [BUILD_DIR],
     4                dynamic: {
     5                        dot: true,
     6                        expand: true,
     7                        cwd: BUILD_DIR,
     8                        src: []
     9                },
     10                tinymce: ['<%= concat.tinymce.dest %>'],
     11                qunit: ['tests/qunit/compiled.html']
     12        };
     13}
  • node_modules/wpGruntfile/lib/grunt/compress.js

     
     1module.exports = function( BUILD_DIR ) {
     2        return {
     3                tinymce: {
     4                        options: {
     5                                mode: 'gzip',
     6                                level: 9
     7                        },
     8                        src: '<%= concat.tinymce.dest %>',
     9                        dest: BUILD_DIR + 'wp-includes/js/tinymce/wp-tinymce.js.gz'
     10                }
     11        };
     12}
  • node_modules/wpGruntfile/lib/grunt/concat.js

     
     1module.exports = function( SOURCE_DIR, BUILD_DIR ) {
     2        return {
     3                tinymce: {
     4                        options: {
     5                                separator: '\n',
     6                                process: function( src, filepath ) {
     7                                        return '//Source:' + filepath.replace( BUILD_DIR, '' ) + '\n' + src;
     8                                }
     9                        },
     10                        src: [
     11                                BUILD_DIR + 'wp-includes/js/tinymce/tinymce.min.js',
     12                                BUILD_DIR + 'wp-includes/js/tinymce/themes/modern/theme.min.js',
     13                                BUILD_DIR + 'wp-includes/js/tinymce/plugins/*/plugin.min.js'
     14                        ],
     15                        dest: BUILD_DIR + 'wp-includes/js/tinymce/wp-tinymce.js'
     16                }
     17        };
     18}
  • node_modules/wpGruntfile/lib/grunt/copy.js

     
     1module.exports = function ( grunt, SOURCE_DIR, BUILD_DIR ) {
     2        return {
     3                files: {
     4                        files: [
     5                                {
     6                                dot: true,
     7                                expand: true,
     8                                cwd: SOURCE_DIR,
     9                                src: [
     10                                        '**',
     11                                        '!**/.{svn,git}/**', // Ignore version control directories.
     12                                        // Ignore unminified versions of external libs we don't ship:
     13                                        '!wp-includes/js/backbone.js',
     14                                        '!wp-includes/js/underscore.js',
     15                                        '!wp-includes/js/jquery/jquery.masonry.js',
     16                                        '!wp-includes/js/jquery/ui/*.js',
     17                                        '!wp-includes/js/tinymce/tinymce.js',
     18                                        '!wp-includes/version.php' // Exclude version.php
     19                                ],
     20                                dest: BUILD_DIR
     21                                },
     22                                {
     23                                        src: 'wp-config-sample.php',
     24                                        dest: BUILD_DIR
     25                                }
     26                        ]
     27                },
     28                'wp-admin-rtl': {
     29                        options: {
     30                                processContent: function( src ) {
     31                                        return src.replace( /\.css/g, '-rtl.css' );
     32                                }
     33                        },
     34                        src: SOURCE_DIR + 'wp-admin/css/wp-admin.css',
     35                        dest: BUILD_DIR + 'wp-admin/css/wp-admin-rtl.css'
     36                },
     37                version: {
     38                        options: {
     39                                processContent: function( src ) {
     40                                        return src.replace( /^\$wp_version = '(.+?)';/m, function( str, version ) {
     41                                                version = version.replace( /-src$/, '' );
     42
     43                                                // If the version includes an SVN commit (-12345), it's not a released alpha/beta. Append a date.
     44                                                version = version.replace( /-[\d]{5}$/, '-' + grunt.template.today( 'yyyymmdd' ) );
     45
     46                                                /* jshint quotmark: true */
     47                                                return "$wp_version = '" + version + "';";
     48                                        });
     49                                }
     50                        },
     51                        src: SOURCE_DIR + 'wp-includes/version.php',
     52                        dest: BUILD_DIR + 'wp-includes/version.php'
     53                },
     54                dynamic: {
     55                        dot: true,
     56                        expand: true,
     57                        cwd: SOURCE_DIR,
     58                        dest: BUILD_DIR,
     59                        src: []
     60                },
     61                qunit: {
     62                        src: 'tests/qunit/index.html',
     63                        dest: 'tests/qunit/compiled.html',
     64                        options: {
     65                                processContent: function( src ) {
     66                                        src = src.replace( /([^\.])*\.\.\/src/ig , '/../build' );
     67                                        src = src.replace( '/jquery/ui/core.js', '/jquery/ui/core.min.js' );
     68                                        return src;
     69                                }
     70                        }
     71                }
     72        };
     73}
  • node_modules/wpGruntfile/lib/grunt/cssmin.js

     
     1module.exports = function ( SOURCE_DIR, BUILD_DIR ) {
     2        return {
     3                options: {
     4                        'wp-admin': ['wp-admin', 'color-picker', 'customize-controls', 'customize-widgets', 'ie', 'install', 'login', 'press-this', 'deprecated-*']
     5                },
     6                core: {
     7                        expand: true,
     8                        cwd: SOURCE_DIR,
     9                        dest: BUILD_DIR,
     10                        ext: '.min.css',
     11                        src: [
     12                                'wp-admin/css/{<%= cssmin.options["wp-admin"] %>}.css',
     13                                'wp-includes/css/*.css'
     14                        ]
     15                },
     16                rtl: {
     17                        expand: true,
     18                        cwd: BUILD_DIR,
     19                        dest: BUILD_DIR,
     20                        ext: '.min.css',
     21                        src: [
     22                                'wp-admin/css/{<%= cssmin.options["wp-admin"] %>}-rtl.css',
     23                                'wp-includes/css/*-rtl.css'
     24                        ]
     25                },
     26                colors: {
     27                        expand: true,
     28                        cwd: BUILD_DIR,
     29                        dest: BUILD_DIR,
     30                        ext: '.min.css',
     31                        src: [
     32                                'wp-admin/css/colors/*/*.css'
     33                        ]
     34                }
     35        };
     36}
  • node_modules/wpGruntfile/lib/grunt/imagemin.js

     
     1module.exports = function( SOURCE_DIR ) {
     2        return {
     3                core: {
     4                        expand: true,
     5                        cwd: SOURCE_DIR,
     6                        src: [
     7                                'wp-{admin,includes}/images/**/*.{png,jpg,gif,jpeg}',
     8                                'wp-includes/js/tinymce/skins/wordpress/images/*.{png,jpg,gif,jpeg}'
     9                        ],
     10                        dest: SOURCE_DIR
     11                }
     12        };
     13}
  • node_modules/wpGruntfile/lib/grunt/jshint.js

     
     1module.exports = function( grunt, SOURCE_DIR, BUILD_DIR ) {
     2        return {
     3                options: grunt.file.readJSON('.jshintrc'),
     4                grunt: {
     5                        src: ['Gruntfile.js']
     6                },
     7                tests: {
     8                        src: [
     9                                'tests/qunit/**/*.js',
     10                                '!tests/qunit/vendor/*',
     11                                '!tests/qunit/editor/**'
     12                        ],
     13                        options: grunt.file.readJSON('tests/qunit/.jshintrc')
     14                },
     15                themes: {
     16                        expand: true,
     17                        cwd: SOURCE_DIR + 'wp-content/themes',
     18                        src: [
     19                                'twenty*/**/*.js',
     20                                '!twenty{eleven,twelve,thirteen}/**',
     21                                // Third party scripts
     22                                '!twenty{fourteen,fifteen}/js/html5.js'
     23                        ]
     24                },
     25                media: {
     26                        options: {
     27                                browserify: true
     28                        },
     29                        expand: true,
     30                        cwd: SOURCE_DIR,
     31                        src: [
     32                                'wp-includes/js/media/**/*.js',
     33                                '!wp-includes/js/media/*.js',
     34                                'wp-includes/js/media/*.manifest.js'
     35                        ]
     36                },
     37                core: {
     38                        expand: true,
     39                        cwd: SOURCE_DIR,
     40                        src: [
     41                                'wp-admin/js/*.js',
     42                                'wp-includes/js/*.js',
     43                                // WordPress scripts inside directories
     44                                'wp-includes/js/jquery/jquery.table-hotkeys.js',
     45                                'wp-includes/js/mediaelement/wp-mediaelement.js',
     46                                'wp-includes/js/plupload/handlers.js',
     47                                'wp-includes/js/plupload/wp-plupload.js',
     48                                'wp-includes/js/tinymce/plugins/wordpress/plugin.js',
     49                                'wp-includes/js/tinymce/plugins/wp*/plugin.js',
     50                                // Third party scripts
     51                                '!wp-admin/js/farbtastic.js',
     52                                '!wp-includes/js/backbone*.js',
     53                                '!wp-includes/js/swfobject.js',
     54                                '!wp-includes/js/underscore*.js',
     55                                '!wp-includes/js/colorpicker.js',
     56                                '!wp-includes/js/hoverIntent.js',
     57                                '!wp-includes/js/json2.js',
     58                                '!wp-includes/js/tw-sack.js',
     59                                '!wp-includes/js/twemoji.js',
     60                                '!**/*.min.js'
     61                        ],
     62                        // Remove once other JSHint errors are resolved
     63                        options: {
     64                                curly: false,
     65                                eqeqeq: false
     66                        },
     67                        // Limit JSHint's run to a single specified file:
     68                        //
     69                        // grunt jshint:core --file=filename.js
     70                        //
     71                        // Optionally, include the file path:
     72                        //
     73                        // grunt jshint:core --file=path/to/filename.js
     74                        //
     75                        filter: function( filepath ) {
     76                                var index, file = grunt.option( 'file' );
     77
     78                                // Don't filter when no target file is specified
     79                                if ( ! file ) {
     80                                        return true;
     81                                }
     82
     83                                // Normalize filepath for Windows
     84                                filepath = filepath.replace( /\\/g, '/' );
     85                                index = filepath.lastIndexOf( '/' + file );
     86
     87                                // Match only the filename passed from cli
     88                                if ( filepath === file || ( -1 !== index && index === filepath.length - ( file.length + 1 ) ) ) {
     89                                        return true;
     90                                }
     91
     92                                return false;
     93                        }
     94                },
     95                plugins: {
     96                        expand: true,
     97                        cwd: SOURCE_DIR + 'wp-content/plugins',
     98                        src: [
     99                                '**/*.js',
     100                                '!**/*.min.js'
     101                        ],
     102                        // Limit JSHint's run to a single specified plugin directory:
     103                        //
     104                        // grunt jshint:plugins --dir=foldername
     105                        //
     106                        filter: function( dirpath ) {
     107                                var index, dir = grunt.option( 'dir' );
     108
     109                                // Don't filter when no target folder is specified
     110                                if ( ! dir ) {
     111                                        return true;
     112                                }
     113
     114                                dirpath = dirpath.replace( /\\/g, '/' );
     115                                index = dirpath.lastIndexOf( '/' + dir );
     116
     117                                // Match only the folder name passed from cli
     118                                if ( -1 !== index ) {
     119                                        return true;
     120                                }
     121
     122                                return false;
     123                        }
     124                }
     125        };
     126}
  • node_modules/wpGruntfile/lib/grunt/jsvalidate.js

     
     1module.exports = function( BUILD_DIR ) {
     2        return {
     3                options: {
     4                        globals: {},
     5                        esprimaOptions: {},
     6                        verbose: false
     7                },
     8                build: {
     9                        files: {
     10                                src: [
     11                                        BUILD_DIR + 'wp-{admin,includes}/**/*.js',
     12                                        BUILD_DIR + 'wp-content/themes/twenty*/**/*.js'
     13                                ]
     14                        }
     15                }
     16        };
     17}
  • node_modules/wpGruntfile/lib/grunt/phpunit.js

     
     1module.exports = {
     2        'default': {
     3                cmd: 'phpunit',
     4                args: ['-c', 'phpunit.xml.dist']
     5        },
     6        ajax: {
     7                cmd: 'phpunit',
     8                args: ['-c', 'phpunit.xml.dist', '--group', 'ajax']
     9        },
     10        multisite: {
     11                cmd: 'phpunit',
     12                args: ['-c', 'tests/phpunit/multisite.xml']
     13        },
     14        'external-http': {
     15                cmd: 'phpunit',
     16                args: ['-c', 'phpunit.xml.dist', '--group', 'external-http']
     17        }
     18}
  • node_modules/wpGruntfile/lib/grunt/qunit.js

     
     1module.exports = {
     2        files: [
     3                'tests/qunit/**/*.html',
     4                '!tests/qunit/editor/**'
     5        ]
     6}
  • node_modules/wpGruntfile/lib/grunt/rtlcss.js

     
     1module.exports = function( SOURCE_DIR, BUILD_DIR ) {
     2        return {
     3                options: {
     4                        // rtlcss options
     5                        config: {
     6                                swapLeftRightInUrl: false,
     7                                swapLtrRtlInUrl: false,
     8                                autoRename: false,
     9                                preserveDirectives: true,
     10                                stringMap: [
     11                                        {
     12                                                name: 'import-rtl-stylesheet',
     13                                                search: [ '.css' ],
     14                                                replace: [ '-rtl.css' ],
     15                                                options: {
     16                                                        scope: 'url',
     17                                                        ignoreCase: false
     18                                                }
     19                                        }
     20                                ]
     21                        },
     22                        properties : [
     23                                {
     24                                        name: 'swap-dashicons-left-right-arrows',
     25                                        expr: /content/im,
     26                                        action: function( prop, value ) {
     27                                                if ( value === '"\\f141"' ) { // dashicons-arrow-left
     28                                                        value = '"\\f139"';
     29                                                } else if ( value === '"\\f340"' ) { // dashicons-arrow-left-alt
     30                                                        value = '"\\f344"';
     31                                                } else if ( value === '"\\f341"' ) { // dashicons-arrow-left-alt2
     32                                                        value = '"\\f345"';
     33                                                } else if ( value === '"\\f139"' ) { // dashicons-arrow-right
     34                                                        value = '"\\f141"';
     35                                                } else if ( value === '"\\f344"' ) { // dashicons-arrow-right-alt
     36                                                        value = '"\\f340"';
     37                                                } else if ( value === '"\\f345"' ) { // dashicons-arrow-right-alt2
     38                                                        value = '"\\f341"';
     39                                                }
     40                                                return { prop: prop, value: value };
     41                                        }
     42                                }
     43                        ],
     44                        saveUnmodified: false
     45                },
     46                core: {
     47                        expand: true,
     48                        cwd: SOURCE_DIR,
     49                        dest: BUILD_DIR,
     50                        ext: '-rtl.css',
     51                        src: [
     52                                'wp-admin/css/*.css',
     53                                'wp-includes/css/*.css',
     54
     55                                // Exceptions
     56                                '!wp-includes/css/dashicons.css'
     57                        ]
     58                },
     59                colors: {
     60                        expand: true,
     61                        cwd: BUILD_DIR,
     62                        dest: BUILD_DIR,
     63                        ext: '-rtl.css',
     64                        src: [
     65                                'wp-admin/css/colors/*/colors.css'
     66                        ]
     67                },
     68                dynamic: {
     69                        expand: true,
     70                        cwd: SOURCE_DIR,
     71                        dest: BUILD_DIR,
     72                        ext: '-rtl.css',
     73                        src: []
     74                }
     75        };
     76}
  • node_modules/wpGruntfile/lib/grunt/sass.js

     
     1module.exports = function ( SOURCE_DIR, BUILD_DIR ) {
     2        return {
     3                colors: {
     4                        expand: true,
     5                        cwd: SOURCE_DIR,
     6                        dest: BUILD_DIR,
     7                        ext: '.css',
     8                        src: ['wp-admin/css/colors/*/colors.scss'],
     9                        options: {
     10                                outputStyle: 'expanded'
     11                        }
     12                }
     13        };
     14}
  • node_modules/wpGruntfile/lib/grunt/uglify.js

     
     1module.exports = function( SOURCE_DIR, BUILD_DIR ) {
     2        return {
     3                core: {
     4                        expand: true,
     5                        cwd: SOURCE_DIR,
     6                        dest: BUILD_DIR,
     7                        ext: '.min.js',
     8                        src: [
     9                                'wp-admin/js/*.js',
     10                                'wp-includes/js/*.js',
     11                                'wp-includes/js/plupload/handlers.js',
     12                                'wp-includes/js/plupload/wp-plupload.js',
     13                                'wp-includes/js/tinymce/plugins/wordpress/plugin.js',
     14                                'wp-includes/js/tinymce/plugins/wp*/plugin.js',
     15
     16                                // Exceptions
     17                                '!wp-admin/js/custom-header.js', // Why? We should minify this.
     18                                '!wp-admin/js/farbtastic.js',
     19                                '!wp-admin/js/iris.min.js',
     20                                '!wp-admin/js/bookmarklet.*', // Minified and updated in /src with the precommit task. See uglify:bookmarklet.
     21                                '!wp-includes/js/backbone.min.js',
     22                                '!wp-includes/js/swfobject.js',
     23                                '!wp-includes/js/underscore.min.js',
     24                                '!wp-includes/js/zxcvbn.min.js'
     25                        ]
     26                },
     27                media: {
     28                        expand: true,
     29                        cwd: SOURCE_DIR,
     30                        dest: BUILD_DIR,
     31                        ext: '.min.js',
     32                        src: [
     33                                'wp-includes/js/media/audio-video.js',
     34                                'wp-includes/js/media/grid.js',
     35                                'wp-includes/js/media/models.js',
     36                                'wp-includes/js/media/views.js'
     37                        ]
     38                },
     39                jqueryui: {
     40                        options: {
     41                                preserveComments: 'some'
     42                        },
     43                        expand: true,
     44                        cwd: SOURCE_DIR,
     45                        dest: BUILD_DIR,
     46                        ext: '.min.js',
     47                        src: ['wp-includes/js/jquery/ui/*.js']
     48                },
     49                bookmarklet: {
     50                        options: {
     51                                compress: {
     52                                        negate_iife: false
     53                                }
     54                        },
     55                        src: SOURCE_DIR + 'wp-admin/js/bookmarklet.js',
     56                        dest: SOURCE_DIR + 'wp-admin/js/bookmarklet.min.js'
     57                }
     58        };
     59}
  • node_modules/wpGruntfile/lib/grunt/watch.js

     
     1module.exports = function( SOURCE_DIR ) {
     2        return {
     3                all: {
     4                        files: [
     5                                SOURCE_DIR + '**',
     6                                // Ignore version control directories.
     7                                '!' + SOURCE_DIR + '**/.{svn,git}/**'
     8                        ],
     9                        tasks: ['clean:dynamic', 'copy:dynamic'],
     10                        options: {
     11                                dot: true,
     12                                spawn: false,
     13                                interval: 2000
     14                        }
     15                },
     16                browserify: {
     17                        files: [
     18                                SOURCE_DIR + 'wp-includes/js/media/*.js',
     19                                '!' + SOURCE_DIR + 'wp-includes/js/media/*.manifest.js'
     20                        ],
     21                        tasks: ['uglify:media']
     22                },
     23                config: {
     24                        files: 'Gruntfile.js'
     25                },
     26                colors: {
     27                        files: [SOURCE_DIR + 'wp-admin/css/colors/**'],
     28                        tasks: ['sass:colors']
     29                },
     30                rtl: {
     31                        files: [
     32                                SOURCE_DIR + 'wp-admin/css/*.css',
     33                                SOURCE_DIR + 'wp-includes/css/*.css'
     34                        ],
     35                        tasks: ['rtlcss:dynamic'],
     36                        options: {
     37                                spawn: false,
     38                                interval: 2000
     39                        }
     40                },
     41                test: {
     42                        files: [
     43                                'tests/qunit/**',
     44                                '!tests/qunit/editor/**'
     45                        ],
     46                        tasks: ['qunit']
     47                }
     48        };
     49}
  • node_modules/wpGruntfile/lib/wpgrunt.js

     
     1function wpRequire(name) {
     2  return require('./grunt/' + name);
     3}
     4
     5module.exports.autoprefixer = wpRequire( 'autoprefixer' );
     6module.exports.clean = wpRequire( 'clean' );
     7module.exports.copy = wpRequire( 'copy' );
     8module.exports.sass = wpRequire( 'sass' );
     9module.exports.cssmin = wpRequire( 'cssmin' );
     10module.exports.rtlcss = wpRequire( 'rtlcss' );
     11module.exports.jshint = wpRequire( 'jshint' );
     12module.exports.qunit = wpRequire( 'qunit' );
     13module.exports.phpunit = wpRequire( 'phpunit' );
     14module.exports.uglify = wpRequire( 'uglify' );
     15module.exports.concat = wpRequire( 'concat' );
     16module.exports.compress = wpRequire( 'compress' );
     17module.exports.jsvalidate = wpRequire( 'jsvalidate' );
     18module.exports.imagemin = wpRequire( 'imagemin' );
     19module.exports.watch = wpRequire( 'watch' );
  • node_modules/wpGruntfile/package.json

     
     1{
     2  "name": "wpGruntfile",
     3  "description": "WordPress Gruntfile.js configurations",
     4  "version": "0.1",
     5  "author": {
     6    "name": "Garth \"voldemortensen\" Mortensen"
     7  },
     8  "homepage": "http://make.wordpress.org/core",
     9  "repository": {
     10    "type": "svn",
     11    "url": "http://develop.svn.wordpress.org/"
     12  },
     13  "bugs": {
     14    "url": "https://core.trac.wordpress.org"
     15  },
     16  "licenses": [
     17    {
     18      "type": "GPL"
     19    }
     20  ],
     21  "main": "lib/wpgrunt",
     22  "engines": {
     23    "node": ">= 0.8.0"
     24  }
     25}
  • package.json

     
    2727    "grunt-patch-wordpress": "~0.3.0",
    2828    "grunt-rtlcss": "~1.6.0",
    2929    "grunt-sass": "~0.18.0",
    30     "matchdep": "~0.3.0"
     30    "matchdep": "~0.3.0",
     31    "wpGruntfile": "~0.1"
    3132  }
    3233}