Make WordPress Core

Ticket #45145: 45145.6.diff

File 45145.6.diff, 12.8 KB (added by mcsf, 3 years ago)

First pass at update for Gutenberg 4.5 / WordPress 5.0 RC

  • package.json

     
    3939                "grunt-replace": "~1.0.1",
    4040                "grunt-rtlcss": "~2.0.1",
    4141                "grunt-sass": "~2.0.0",
    4242                "grunt-webpack": "^3.0.2",
    4343                "ink-docstrap": "^1.3.0",
    4444                "matchdep": "~2.0.0",
    4545                "source-map-loader": "^0.2.4",
    4646                "uglify-js": "^3.4.9",
    4747                "webpack": "^4.24.0",
    4848                "webpack-dev-server": "^3.1.9",
    4949                "webpack-livereload-plugin": "^2.1.1"
    5050        },
    5151        "dependencies": {
    5252                "@babel/polyfill": "^7.0.0",
    5353                "@wordpress/a11y": "^2.0.2",
    54                 "@wordpress/annotations": "^1.0.1",
    55                 "@wordpress/api-fetch": "^2.2.4",
     54                "@wordpress/annotations": "^1.0.2",
     55                "@wordpress/api-fetch": "^2.2.5",
    5656                "@wordpress/autop": "^2.0.2",
    5757                "@wordpress/blob": "^2.1.0",
    58                 "@wordpress/block-library": "^2.2.4",
     58                "@wordpress/block-library": "^2.2.5",
    5959                "@wordpress/block-serialization-default-parser": "^2.0.0",
    60                 "@wordpress/blocks": "^6.0.0",
    61                 "@wordpress/components": "^6.0.2",
     60                "@wordpress/blocks": "^6.0.1",
     61                "@wordpress/components": "^7.0.0",
    6262                "@wordpress/compose": "^3.0.0",
    63                 "@wordpress/core-data": "^2.0.13",
    64                 "@wordpress/data": "^4.0.0",
     63                "@wordpress/core-data": "^2.0.14",
     64                "@wordpress/data": "^4.0.1",
    6565                "@wordpress/date": "^3.0.0",
    6666                "@wordpress/deprecated": "^2.0.3",
    67                 "@wordpress/dom": "^2.0.6",
     67                "@wordpress/dom": "^2.0.7",
    6868                "@wordpress/dom-ready": "^2.0.2",
    69                 "@wordpress/edit-post": "^3.0.2",
    70                 "@wordpress/editor": "^8.0.0",
     69                "@wordpress/edit-post": "^3.1.0",
     70                "@wordpress/editor": "^9.0.0",
    7171                "@wordpress/element": "^2.1.8",
    7272                "@wordpress/escape-html": "^1.0.1",
    73                 "@wordpress/format-library": "^1.2.2",
     73                "@wordpress/format-library": "^1.2.3",
    7474                "@wordpress/hooks": "^2.0.3",
    7575                "@wordpress/html-entities": "^2.0.2",
    7676                "@wordpress/i18n": "^3.1.0",
    7777                "@wordpress/is-shallow-equal": "^1.1.4",
    78                 "@wordpress/keycodes": "^2.0.3",
    79                 "@wordpress/list-reusable-blocks": "^1.1.12",
    80                 "@wordpress/notices": "^1.0.5",
    81                 "@wordpress/nux": "^3.0.0",
     78                "@wordpress/keycodes": "^2.0.4",
     79                "@wordpress/list-reusable-blocks": "^1.1.13",
     80                "@wordpress/notices": "^1.1.0",
     81                "@wordpress/nux": "^3.0.1",
    8282                "@wordpress/plugins": "^2.0.9",
    8383                "@wordpress/redux-routine": "^3.0.3",
    84                 "@wordpress/rich-text": "^3.0.0",
     84                "@wordpress/rich-text": "^3.0.1",
    8585                "@wordpress/shortcode": "^2.0.2",
    86                 "@wordpress/token-list": "^1.0.2",
    87                 "@wordpress/url": "^2.3.0",
    88                 "@wordpress/viewport": "^2.0.11",
     86                "@wordpress/token-list": "^1.1.0",
     87                "@wordpress/url": "^2.3.1",
     88                "@wordpress/viewport": "^2.0.12",
    8989                "@wordpress/wordcount": "^2.0.3",
    9090                "element-closest": "^2.0.2",
    9191                "formdata-polyfill": "^3.0.12",
    9292                "lodash": "^4.17.11",
    9393                "moment": "^2.22.2",
    9494                "polyfill-library": "^3.26.0-0",
    9595                "react": "^16.6.3",
    9696                "react-dom": "^16.6.3",
    9797                "whatwg-fetch": "^3.0.0"
    9898        },
    9999        "scripts": {
    100100                "grunt": "grunt"
    101101        }
    102102}
  • src/wp-admin/edit-form-blocks.php

     
    165165
    166166// Media settings.
    167167$max_upload_size = wp_max_upload_size();
    168168if ( ! $max_upload_size ) {
    169169        $max_upload_size = 0;
    170170}
    171171
    172172// Editor Styles.
    173173$styles = array(
    174174        array(
    175175                'css' => file_get_contents(
    176176                        ABSPATH . WPINC . '/css/dist/editor/editor-styles.css'
    177177                ),
    178178        ),
    179179);
     180
     181/*
     182 * Set a locale specific default font.
     183 * Translators: Use this to specify the CSS font family for the default font
     184 */
     185$locale_font_family = esc_html_x( 'Noto Serif', 'CSS Font Family for Editor Font' );
     186$styles[]           = array(
     187        'css' => "body { font-family: '$locale_font_family' }",
     188);
     189
    180190if ( $editor_styles && current_theme_supports( 'editor-styles' ) ) {
    181191        foreach ( $editor_styles as $style ) {
    182192                if ( preg_match( '~^(https?:)?//~', $style ) ) {
    183193                        $response = wp_remote_get( $style );
    184194                        if ( ! is_wp_error( $response ) ) {
    185195                                $styles[] = array(
    186196                                        'css' => wp_remote_retrieve_body( $response ),
    187197                                );
    188198                        }
    189199                } else {
    190200                        $file     = get_theme_file_path( $style );
    191201                        $styles[] = array(
    192202                                'css'     => file_get_contents( get_theme_file_path( $style ) ),
    193203                                'baseURL' => get_theme_file_uri( $style ),
    194204                        );
  • src/wp-includes/script-loader.php

     
    6868 * `js/dist/vendor/` location.
    6969 *
    7070 * For the order of `$scripts->add` see `wp_default_scripts`.
    7171 *
    7272 * @since 5.0.0
    7373 *
    7474 * @param WP_Scripts $scripts WP_Scripts object.
    7575 */
    7676function wp_default_packages_vendor( &$scripts ) {
    7777        $dev_suffix = wp_scripts_get_suffix( 'dev' );
    7878
    7979        $vendor_scripts = array(
    8080                'react' => array( 'wp-polyfill' ),
    8181                'react-dom' => array( 'react' ),
    8282                'moment',
     83                'tinymce-latest-lists' => array( 'wp-tinymce' ), // should be added as tinymce plugin?
    8384                'lodash',
    8485                'wp-polyfill-fetch',
    8586                'wp-polyfill-formdata',
    8687                'wp-polyfill-node-contains',
    8788                'wp-polyfill-element-closest',
    8889                'wp-polyfill',
    8990        );
    9091
    9192        foreach ( $vendor_scripts as $handle => $dependencies ) {
    9293                if ( is_string( $dependencies ) ) {
    9394                        $handle = $dependencies;
    9495                        $dependencies = array();
    9596                }
    9697
    9798                $path = "/wp-includes/js/dist/vendor/$handle$dev_suffix.js";
    9899
    99100                $scripts->add( $handle, $path, $dependencies, false, 1 );
    100101        }
    101102
    102103        $scripts->add( 'wp-polyfill', null, array( 'wp-polyfill' ) );
    103         did_action( 'init' ) && $scripts->add_data(
     104        did_action( 'init' ) && $scripts->add_inline_script(
    104105                'wp-polyfill',
    105                 'data',
    106106                wp_get_script_polyfill(
    107107                        $scripts,
    108108                        array(
    109109                                '\'fetch\' in window' => 'wp-polyfill-fetch',
    110110                                'document.contains'   => 'wp-polyfill-node-contains',
    111111                                'window.FormData && window.FormData.prototype.keys' => 'wp-polyfill-formdata',
    112112                                'Element.prototype.matches && Element.prototype.closest' => 'wp-polyfill-element-closest',
    113                         )
     113                        ),
     114                        'after'
    114115                )
    115116        );
    116117
    117118        did_action( 'init' ) && $scripts->add_inline_script( 'lodash', 'window.lodash = _.noConflict();' );
     119
     120        did_action( 'init' ) && $scripts->add_inline_script(
     121                'moment',
     122                sprintf(
     123                        "moment.locale( '%s', %s );",
     124                        get_user_locale(),
     125                        wp_json_encode(
     126                                array(
     127                                        'months'         => array_values( $wp_locale->month ),
     128                                        'monthsShort'    => array_values( $wp_locale->month_abbrev ),
     129                                        'weekdays'       => array_values( $wp_locale->weekday ),
     130                                        'weekdaysShort'  => array_values( $wp_locale->weekday_abbrev ),
     131                                        'week'           => array(
     132                                                'dow' => (int) get_option( 'start_of_week', 0 ),
     133                                        ),
     134                                        'longDateFormat' => array(
     135                                                'LT'   => get_option( 'time_format', __( 'g:i a', 'default' ) ),
     136                                                'LTS'  => null,
     137                                                'L'    => null,
     138                                                'LL'   => get_option( 'date_format', __( 'F j, Y', 'default' ) ),
     139                                                'LLL'  => __( 'F j, Y g:i a', 'default' ),
     140                                                'LLLL' => null,
     141                                        ),
     142                                )
     143                        )
     144                ),
     145                'after'
     146        );
    118147}
    119148
    120149/**
    121150 * Returns contents of an inline script used in appending polyfill scripts for
    122151 * browsers which fail the provided tests. The provided array is a mapping from
    123152 * a condition to verify feature support to its polyfill script handle.
    124153 *
    125154 * @since 5.0.0
    126155 *
    127156 * @param WP_Scripts $scripts WP_Scripts object.
    128157 * @param array      $tests   Features to detect.
    129158 * @return string Conditional polyfill inline script.
    130159 */
    131160function wp_get_script_polyfill( &$scripts, $tests ) {
    132161        $polyfill = '';
     
    209238                        'wp-i18n',
    210239                        'wp-keycodes',
    211240                        'wp-polyfill',
    212241                        'wp-url',
    213242                        'wp-viewport',
    214243                        'wp-rich-text',
    215244                ),
    216245                'block-serialization-default-parser' => array(),
    217246                'block-serialization-spec-parser' => array( 'wp-polyfill' ),
    218247                'components' => array(
    219248                        'lodash',
    220249                        'moment',
    221250                        'wp-a11y',
    222251                        'wp-api-fetch',
    223252                        'wp-compose',
    224                         'wp-deprecated',
    225253                        'wp-dom',
    226254                        'wp-element',
    227255                        'wp-hooks',
    228256                        'wp-html-entities',
    229257                        'wp-i18n',
    230258                        'wp-is-shallow-equal',
    231259                        'wp-keycodes',
    232260                        'wp-polyfill',
    233261                        'wp-rich-text',
    234262                        'wp-url',
    235263                ),
    236264                'compose' => array(
    237265                        'lodash',
    238266                        'wp-element',
    239267                        'wp-is-shallow-equal',
     
    260288                        'media-views',
    261289                        'wp-a11y',
    262290                        'wp-api-fetch',
    263291                        'wp-block-library',
    264292                        'wp-blocks',
    265293                        'wp-components',
    266294                        'wp-compose',
    267295                        'wp-core-data',
    268296                        'wp-data',
    269297                        'wp-dom-ready',
    270298                        'wp-editor',
    271299                        'wp-element',
    272300                        'wp-embed',
    273301                        'wp-i18n',
    274302                        'wp-keycodes',
     303                        'wp-notices',
    275304                        'wp-nux',
    276305                        'wp-plugins',
    277306                        'wp-polyfill',
    278307                        'wp-url',
    279308                        'wp-viewport',
    280309                ),
    281310                'editor' => array(
    282311                        'jquery',
    283312                        'lodash',
    284                         'wp-tinymce-lists',
     313                        'tinymce-latest-lists',
    285314                        'wp-a11y',
    286315                        'wp-api-fetch',
    287316                        'wp-blob',
    288317                        'wp-blocks',
    289318                        'wp-components',
    290319                        'wp-compose',
    291320                        'wp-core-data',
    292321                        'wp-data',
    293322                        'wp-date',
    294323                        'wp-deprecated',
    295324                        'wp-dom',
    296325                        'wp-element',
    297326                        'wp-hooks',
    298327                        'wp-html-entities',
    299328                        'wp-i18n',
     
    332361                        'wp-api-fetch',
    333362                        'wp-components',
    334363                        'wp-compose',
    335364                        'wp-element',
    336365                        'wp-i18n',
    337366                        'wp-polyfill',
    338367                ),
    339368                'notices' => array(
    340369                        'lodash',
    341370                        'wp-a11y',
    342371                        'wp-data',
    343372                        'wp-polyfill',
    344373                ),
    345374                'nux' => array(
    346375                        'wp-element',
     376                        'lodash',
    347377                        'wp-components',
    348378                        'wp-compose',
    349379                        'wp-data',
    350380                        'wp-i18n',
    351381                        'wp-polyfill',
    352382                        'lodash',
    353383                ),
    354384                'plugins' => array( 'lodash', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-polyfill' ),
    355385                'redux-routine' => array( 'wp-polyfill' ),
    356386                'rich-text' => array(
    357387                        'lodash',
    358                         'wp-blocks',
    359388                        'wp-data',
    360389                        'wp-escape-html',
    361390                        'wp-polyfill',
    362391                ),
    363392                'shortcode' => array( 'wp-polyfill', 'lodash' ),
    364393                'token-list' => array( 'lodash', 'wp-polyfill' ),
    365394                'url' => array( 'wp-polyfill' ),
    366395                'viewport' => array( 'wp-polyfill', 'wp-element', 'wp-data', 'wp-compose', 'lodash' ),
    367396                'wordcount' => array( 'wp-polyfill' ),
    368397        );
    369398
    370399        $package_translations = array(
    371400                'api-fetch' => 'default',
    372401                'blocks' => 'default',
    373402                'block-library' => 'default',
     
    521550        $toolbar1 = array(
    522551                'formatselect',
    523552                'bold',
    524553                'italic',
    525554                'bullist',
    526555                'numlist',
    527556                'blockquote',
    528557                'alignleft',
    529558                'aligncenter',
    530559                'alignright',
    531560                'link',
    532561                'unlink',
    533562                'wp_more',
    534563                'spellchecker',
    535564                'wp_add_media',
    536                 'wp_adv',
     565                'wp_adv', // FIXME found as 'kitchensink' in Gutenberg
    537566        );
    538567
    539568        /* This filter is documented in wp-includes/class-wp-editor.php */
    540569        $toolbar1 = apply_filters( 'mce_buttons', $toolbar1, 'classic-block' );
    541570
    542571        $toolbar2 = array(
    543572                'strikethrough',
    544573                'hr',
    545574                'forecolor',
    546575                'pastetext',
    547576                'removeformat',
    548577                'charmap',
    549578                'outdent',
    550579                'indent',
    551580                'undo',
     
    16551684                // deprecated
    16561685                'deprecated-media', 'farbtastic',
    16571686        );
    16581687
    16591688        foreach ( $rtl_styles as $rtl_style ) {
    16601689                $styles->add_data( $rtl_style, 'rtl', 'replace' );
    16611690                if ( $suffix ) {
    16621691                        $styles->add_data( $rtl_style, 'suffix', $suffix );
    16631692                }
    16641693        }
    16651694
    16661695        // Packages styles
    16671696        $fonts_url = '';
    16681697
    16691698        /*
    1670          * Translators: If there are characters in your language that are not supported
    1671          * by Noto Serif, translate this to 'off'. Do not translate into your own language.
     1699         * Translators: Use this to specify the proper Google Font name and variants
     1700         * to load that is supported by your language. Do not translate.
     1701         * Set to 'off' to disable loading.
    16721702         */
    1673         if ( 'off' !== _x( 'on', 'Noto Serif font: on or off' ) ) {
    1674                 $fonts_url = 'https://fonts.googleapis.com/css?family=Noto+Serif%3A400%2C400i%2C700%2C700i';
     1703        $font_family = _x( 'Noto Serif:400,400i,700,700i', 'Google Font Name and Variants' );
     1704        if ( 'off' !== $font_family ) {
     1705                $query_args = array(
     1706                        'family' => urlencode( $font_family ),
     1707                );
     1708                $fonts_url  = esc_url_raw( add_query_arg( $query_args, 'https://fonts.googleapis.com/css' ) );
    16751709        }
    16761710        $styles->add( 'wp-editor-font', $fonts_url );
    16771711
    16781712        $styles->add( 'wp-block-library-theme', "/wp-includes/css/dist/block-library/theme$suffix.css" );
    16791713        $styles->add_data( 'wp-block-library-theme', 'rtl', 'replace' );
    16801714
    16811715        $styles->add(
    16821716                'wp-edit-blocks',
    16831717                "/wp-includes/css/dist/block-library/editor$suffix.css",
    16841718                array(
    16851719                        'wp-components',
    16861720                        'wp-editor',
    16871721                        // Always include visual styles so the editor never appears broken.
    16881722                        'wp-block-library-theme',
    16891723                )
  • tools/webpack/packages.js

     
    213213                module: {
    214214                        rules: [
    215215                                {
    216216                                        test: /\.js$/,
    217217                                        use: [ 'source-map-loader' ],
    218218                                        enforce: 'pre',
    219219                                },
    220220                        ],
    221221                },
    222222                plugins: [
    223223                        new LibraryExportDefaultPlugin( [
    224224                                'api-fetch',
    225225                                'deprecated',
    226226                                'dom-ready',
    227227                                'redux-routine',
     228                                'token-list',
    228229                        ].map( camelCaseDash ) ),
    229230                        new CustomTemplatedPathPlugin( {
    230231                                basename( path, data ) {
    231232                                        let rawRequest;
    232233
    233234                                        const entryModule = get( data, [ 'chunk', 'entryModule' ], {} );
    234235                                        switch ( entryModule.type ) {
    235236                                                case 'javascript/auto':
    236237                                                        rawRequest = entryModule.rawRequest;
    237238                                                        break;
    238239
    239240                                                case 'javascript/esm':
    240241                                                        rawRequest = entryModule.rootModule.rawRequest;
    241242                                                        break;
    242243                                        }