What’s new in Gutenberg (24 June)

GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 8.4 has been released. This is the second last pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software. before WordPress 5.5 BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 and it’s a big one! Gutenberg 8.4 includes image editing, multi blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. controls, and we’ve enabled the Block Directory. This release also includes many fixes, countless refinements, and a tonne of iteration on the Full Sitesite (versus network, blog) Editing and the Navigation experiments.

Image editing

Are you a photography geek who cares about things like the “rule of thirds”? Now you can makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). quick crops without leaving the block editor. Just hit the Crop button in the toolbar and you can adjust the aspect ratio, zoom level, and position.

You can also rotate the image right then and there. Great for when your iPhone-using friend sends you a picture!

Multi block controls

How’s this for a little big improvement: Now, if you select multiple blocks of the same type, you can change their attributes all at once. Nice!

Enabling the Block Directory

Now you can discover, install, and insert third-party blocks into your posts from the comfort of your editor. Search for the block you want in the inserter and, if you don’t already have it, you’ll see a prompt to install it right then and there.

We call this the Block Directory, and it’s one of the big ticketticket Created for both bug reports and feature development on the bug tracker. items in the WordPress Roadmap. It’s powered by the WordPress.org Plugin Directory and we’re super excited to see what our fabulous community of plugin developers will do with it.

We’ll be posting more info about the Block Directory—including how you can publish your own blocks to it—shortly. Watch this space!

8.4 🇧🇷

Features

  • Add image editing. (23349)
  • Enable block directory. (23389)
  • Allow block attributes to be modified while multiple blocks are selected. (22470)

Enhancements

  • Show movers next to block switcher. (22673)
  • Support drag and drop in blocks like Social Links and improve drop zone detection. (23020)
  • Improve the accessibliity of toolbars by implementing roving tab index.
    • Embed block toolbar. (23278)
    • Custom HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. block toolbar. (23277)
    • Table block toolbar. (23252)
    • Grouped blocks toolbars. (23216)
    • HeaderHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. toolbar. (22354)
  • Tweak colors of disabled buttons to match rest of WP Adminadmin (and super admin). (23229)
  • Unify style of subheadings. (23192)
  • Make Popover scrolling and position behavior adapt to the content changes. (23159)
  • Reduce block appender hover delay. (23046)
  • Improve the alignment of children in the CardHeader and CardFooter components. (22916)
  • Add ability to transform a Preformatted block into a Code block. (22634)
  • Add a border to blocks while hovering with the Select tool active. (22508)
  • Consolidate disparate “copy block” actions. (23088)
  • Remove margin from last button if buttons in Buttons block are centered. (23319)
  • Adapt the block switcher styles to the new Popover component. (23232)
  • Make UIUI User interface more consistent. (23202)
  • Remove canvas padding. (22213)
  • Image Editing
    • Update Rich Image Icons. (22819)
    • Consolidate crop ratios. (22817)
    • Use snackbar notifications. (23029)
    • Batch editing in cropper component. (23284)
    • Move to image block. (23053)
    • Change Edit label to crop icon. (23387)
    • Use percentage instead of multiplier. (23362)

New APIs

  • Update the theme colors to rely on CSSCSS Cascading Style Sheets. variables. (23048)
  • Extend register_block_type_from_metadata to handle assets. (22519)
  • Enable custom classnames on <CustomSelectControl>. (23045)
  • Add onFilesPreUpload property toMediaPlaceholder. (23003)
  • Improve error customization inMediaReplaceFlow. (22995)
  • Add context properties to block types REST endpoint. (22686)

Bug Fixes

  • Fix pixel shift for toggles. (23191)
  • Fix useBlockSync race condition. (23292)
  • Avoid overriding popover content padding. (23270)
  • Fix block parent selector border radius. (23250)
  • Fix plus radius. (23240)
  • Fix Inserter’s handling of child blocks. (23231)
  • Create Block: Fix errors reported by CSS linter in ESNext template. (23188)
  • Add context property mapping to block registration. (23180)
  • Remove z-index from placeholder fieldset. (23152)
  • Fix possibly outdated onChange in color palette’s color picker. (23136)
  • Fix updateSlot missing from defaultSlotFillContext. (23108)
  • Add check theme support is an array before indexing. (23104)
  • Add i18ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill. to padding ‘reset’ button. (23099)
  • Fix group block moving animation not working correctly. (23084)
  • Use a light block DOM for the Media & Text block. (23062)
  • Popover: Ensure popovers consider border width’s in their positioning. (23035)
  • Remove child space inTooltip. (23019)
  • Fix drag and drop for blocks that don’t use __experimentalTagName for their inner blocks. (23016)
  • Fix am / pm i18n bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.. (22963)
  • Fix plugin document setting panel name. (22763)
  • Fix plus icon. (22704)
  • Fix Typography panel rendering from style hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.. (22605)
  • Fix “Cannot read property ‘end’ of undefined” error on babel-plugin-makepot. (22394)
  • Fix “ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. does not recognize isSelected prop in ComplementaryAreaToggle” warning. (22967)
  • Cover padding: Fix reset and visualize on hover. (23041)
  • Fix color picker saturation bug. (23272)
  • Fix image size feature. (23342)
  • Remove block preview paddings. (23386)
  • Block Directory
    • Fix “no result” UI flash. (22783)
    • Uninstall unused block types. (22918)
    • Fix installing blocks. (23096)
    • Add plugins REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. endpoints. (22454)
    • Use plugin APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. for installing & deleting block-plugins. (23219)
    • Use a more specific <script> matching pattern. (23407)
    • Fix missing padding. (23346)
  • Image Editing
    • Fix image size on crop. (23173)
    • Avoid re-render on select. (23009)
    • Preserve crop position through rotations. (23374)

Performance

  • Memoize useSelect callbacks on the header toolbar items. (23337)
  • Enqueue assets for rendered blocks only. (22754)
  • Call isMultiSelecting and isNavigationMode selectors where needed. (22135)

Experiments

  • Full Site Editing
    • Move initial template fetch to client. (23186)
    • Fix Template Part Auto-draft creation. (23050)
    • Fix template part switching instability. (23282)
    • Fix $theme-color error in Template Part block. (23221)
    • Add auto-drafting for theme supplied template parts. (23254)
    • Add template part previews to placeholder block. (22760)
    • Fetch template parts in Template Switcher from REST API. (21878)
    • Post Title block: Add alignment and heading level support. (22872)
    • Post Author block: Update functionality and visual parity. (22877)
    • Add theme exporter. (22922)
  • Navigation block & Navigation screen
    • Visual improvements to the block navigator. (22796)
    • Improve flow when creating from menu. (23187)
    • Renamed Navigation Link to Link. (23163)
    • Only show appender for the currently selected block. (22998)
    • Fix navigation block dark style appender. (23165)
    • Fix saving on navigation screen. (23157)
    • Extract and refactor placeholder from navigation block edit function. (23109)
    • Better README for the edit-navigation package. (23018)
    • Remove navigator from the navigation block inspector. (23022)
    • Separate block navigator focus from the editor focus. (22996)
    • Change MenuLocationsEditor to use a card instead of a panel. (23151)
    • Change Create Menu UI to use a Card instead ofPanel. (23150)
    • Enable creation from existing WP Menus. (18869)
    • Don’t announce external value changes in custom select control. (22815)
    • Refactor Navigation screen to use @wordpress/data. (23033)

Documentation

  • @wordpress/env: add login details to documentation. (23343)
  • Grammatical fixes in modularity.md. (23336)
  • Update modularity.md. (23322)
  • Use correct package for importing useState in BoxControl examples. (23243)
  • Rename architecture index.md to readme.md. (23242)
  • Scripts: Update changelog to move unreleased entries to Unreleased section. (23178)
  • Handbook: Udpate documentation for package release. (23162)
  • Use deny/allow list. (23120)
  • Move ESNext as default code example. (23117)
  • Handbook: Update release documentation. (23002)
  • Update theme-support.md for experimental supports. (23310)
  • RichText: Add missing param documentation for getActiveFormats(). (23160)
  • API description: Use a period at the end. (23097)
  • Improve JSDoc comment in ESNext template in edit.js file. (23164)
  • Blocks: Update block registration default values. (23348)

Code Quality

  • Refactor header toolbar items to use @wordpress/data hooks. (23315)
  • Use useLayoutEffect to compute the popover position. (23312)
  • Reduce unnecessary selector specificity for Button block. (23246)
  • Button component – remove isLarge prop. (23239)
  • Upgrade Reakit to version 1.1.0. (23236)
  • Refactor column block to use hooks. (23143)
    RichText: Rewrite with hooks. (23132)
  • Refactor ToggleControl to use functional component. (23116)
  • Refactor Media & Text to use functional components. (23102)
  • Image block: Split huge component. (23093)
  • SimplifyuseImageSizes. (23091)
  • Block: Move align wrapper out of Block element. (23089)
  • Remove Gutenberg plugin’s deprected APIs for version 8.3.0. (23001)
  • Block: Remove animation component so it is just a hook. (22936)
  • Remove asterisk icon. (22855)
  • Image Editing
    • Use hooks. (23008)
    • REST API Code Cleanup. (23037)

Copy

  • Cover block: update copy for Opacity label. (23287)

Build Tooling

  • Packages: Fix the changelong updater for initial npm release. (23166)
  • Scripts: Fix style.css handling in the build and start commands. (23127)
  • Scripts: Clean up the build folder via clean-webpack-plugin. (23135)
  • Scripts: Update stylelint dependencies to latest versions. (23114)
  • Remove volumes and networks in wp-env destroy. (23101)
  • Build: Replace “release” with “build” in script for building a package. (23063)
  • Release tool: Fix bug on reporting message error. (22994)
  • Scripts: Remove temporary workaround in ESLint configuration. (22915)
  • ESLint plugin: Allow ESLint 7.x as peer dependency. (23190)
  • Packages: Add “gutenberg” to the list of keywords in package.json. (23161)
  • Update package-lock.json. (23052)

Various

  • Initialize the content size used in Popover computation. (23279)
  • Make the block grouping test more stable. (23266)
  • Try to improve heading custom color E2E test stability. (23260)
  • Attempt to fix RTL end-to-end test. (23203)
  • Add verification for Create Block to Continues Integration. (23195)
  • Remove padding inheritance on lists in editor-styles. (23080)
  • Change select parent button styles. (23230)
  • Make link color control opt-in. (23049)
  • Use showBlockToolbar consistently in e2e tests. (23311)

Performance Benchmark

The following benchmark compares performance for a particularly sizeable post (~36,000 words, ~1,000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.

Version Loading Time KeyPess Event (typing)
Gutenberg 8.4 7.69 s 31.91 ms
Gutenberg 8.3 7.23 s 28.30 ms
WordPress 5.4 9.00 s 41.17 ms

Kudos for all the contributors that helped with the release. 👏

#core-editor, #editor, #gutenberg-new

Editor Chat Summary: 17th June, 2020

This post summarizes the latest weekly Editor meeting (agenda, slack transcript). This meeting was held in the #core-editor SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel on 2020-06-17 14:00 UTC and was moderated by @annezazu.

GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ version 8.3

Gutenberg 8.3.0 was released last week. Update your sites and check out what’s new. We’re experimenting with new ways to organize the makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). post, so any feedback you may have is welcome!

Monthly Plan

There was limited discussion on the specifics of the current monthly priorities. As a reminder though, WordPress 5.5 betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. is less than a month away! Last week @ellatrix created this board with must-haves and priorities for 5.5. If anyone has the capacity to help, please jump in there.

Task Coordination

Note: Anyone reading this summary outside of the meeting, please drop a comment in the post summary, if you can/want to help with something.  Remember: don’t just focus on code contributions!

@zebulan

  • Working on PRs to get the Buttons blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. polished and to resolve some confusing behavior including making the block’s editor DOM match the front-end more.
  • Need technical help to proceed with this Buttons Block PR. Help with this should also help land a PR from @nfmohit to add a vertical option for the Buttons block.
  • Continuing to make progress on the Heading block heading level validator PR. Currently stuck trying to figure out how to prevent the dropdown from automatically closing when one of the heading level options is clicked.

@nosolosw

  • The releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software. took quite a bit of bandwidth over the last week!
  • Outside of the release, a major focus was preparing presets for line-height and padding (and adapting the UIUI User interface controls accordingly).
  • Next week, I’ll carry on that presets for line-height and padding work, and hope to help porting to coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. for 5.5. 

@mcsf

  • Reviewing a bunch of stuff!
  • Trying to weigh in/unblock a variety of discussions from FSE, design tools, block context, and more.
  • In close contact with @ellatrix to see how I/we can help her in her 5.5 editor lead role.

@youknowriad

  • Worked on improvements to Popover behavior.
  • Updated the colors used in Gutenberg components to rely on CSSCSS Cascading Style Sheets. variables.
  • Opened a PR to expand anchor support to all static blocks.
  • Working on the quick inserter.
  • On my mind to work more on stabilizing e2e tests.

@itsjonq

  • Focused mainly on Design Tools.
  • Looking over issues (feature requests) and researching external designs/experiences to see how we could improve these tools.
  • So far, most applications of design tools have centered around the Cover block. Under the hood, there’s been work to unlock/enable customizations to other blocks though. Approaching it more like APIs, rather than ad-hoc enhancements

@sageshilling

@itsjusteileen 

@mkaz

  • A follow up from last weeks discussion around Documentation, the tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) was switched back to master, so published Gutenberg docs are now top of tree. Exploring ways to create a version switcher. Thanks @coffee2code for the assist in ticket #5266.

@michael-arestad

  • Reviewing issues/PRs for 5.5. Please pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” me if there’s an issue/PR planned for 5.5 that needs design feedback/review/help.
  • Starting in again on designing flows for creating new templates. – might be good for a zoom jam (stay tuned).
  • Proposed an iteration on the reusable block (and template part) UI.
  • Updated the e2e prototype and got good feedback. The next iteration will be broken up into specific flows.

@ntsekoura

  • Worked on a merged PR about consolidating disparate “copy block” actions, when we copy from keyboard and when copy from Block Toolbar.

@ella

  • Focused on figuring out what things need to happen for WP 5.5 Beta, and helping out where I can. Looks like navigation and widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. screens are unlikely to be included given the time that’s left. I’m optimistic about including the currently experimental image editor, but there’s still quite a few things to do.
  • Going forward, will make sure remaining issues are tracked and worked on. Note that any refinements also need to be included before 5.5 Beta as afterwards we only backportbackport A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. regressions.

@poena

  • Stuck on the former FSE post categories / now hierarchical taxonomy block because I don’t know how to get the custom taxonomies that a post (or custom post typeCustom Post Type WordPress can hold and display many different types of content. A single item of such a content is generally called a post, although post is also a specific post type. Custom Post Types gives your site the ability to have templated posts, to simplify the concept.) uses. This was flagged for dev help!

@gziolo

  • Worked on server side rendering for blocks – block.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. + REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. + register_block_type_from_metadata.
  • Worked on bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes and enhancements for npm packages with tooling – wordpress/scripts, wordpress/create-block and other, lots of reviews for work done by @ocean90.

@noisysocks:

  • Working on the Navigation screen, specifically picking up #22656 again which lets you add Search blocks alongside Link blocks.

@annezazu

  • Working on resources for the FSE outreach program (will be dropping drafts for the group to review this week in #fse-outreach-experiment), doing triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. focused on needs-testing, and trying to do my own testing with the Gutenberg experiments (found this fun bug).

Open Floor

Is there any interface for a theme to supply a list of classes that could be used as a datalist for the Block sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. Advanced class input? Raised by @joyously.

For greater context, @joyously is looking for a user to be able to put theme-supplied classes into the Advanced class input box. @youknowriad jumped in to provide context. The closest solution offered was “style variations”. However, you can’t apply multiple styles at the same time or use custom classNames instead of style-*. Both of these suggestions have related issues right now.

Next Step: @joyously can chime in on related GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ discussions around style variations. There’s this main issue here for allowing custom style classNames and a general list of style variation themed issues.

Introduction for the media for block editor proposal. Raised by @sageshilling.

This will be about a year and a half project. If you’re curious to see what’s being proposed, you can see the initial proposal here in #core-media. While there were some questions and concerns raised including making sure this is built step by step within the Gutenberg Repo, this was meant purely as an initial introduction with more information to come in future meetings.

Next step: @sageshilling will share more information in the #core-media meeting tomorrow and in the comments of this post as necessary.

A reminder to not ignore intermittent test failures with e2e tests and to make tests even more robust when possible. Raised by @youknowriad.

I just wanted to share that end 2 end tests has not been very stable lately. And very often when we have an instability we have a tendency to think: oh it’s not related to my PR, so we just restart the test until it passes and forget about it. I have been guilty of doing so myself and I’d like to encourage the regular contributors to “stop” ignoring these intermittent test failures and when possible take time to debug and make the tests more robust even if not directly originating from our own PRs.

Why was the decision made to not have width and height attributes specified at all times for images? Raised by @flixos90.

Recently, @flixos90 opened a trac ticket around specifying missing width and height attributes for images in WordPress. Right now, not having these attributes defined causes an increased amount of layout shifting as images are being loaded. Historically, the classic editor has always provided these attributes, so the user experience has somewhat regressed with Gutenberg in that sense. Gutenberg only provides these attributes in the core/image block when the image is resized.

While there was some discussion here, we agreed this issue seems to have a lot of history and no one in the meeting could answer with certainty.

Next Step: @flixos90 is going to open up a GitHub issue to open up the conversation to see if greater historical information can be found and a way forward can be worked on.

How to resolve issues with Gutenberg.run? Raised by @itsjusteileen.

Right now, there are some issues with getting gutenberg.run, a PR testing tool, to run (pun intended).

Next Step: @itsjusteileen is going to open an issue in the Gutenberg.run repository.

What do people think of the idea of an ESLint pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party to discourage the use of some (but not all) Lodash functions when there’s a close vanilla JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. equivalent? Raised by @zebulan.

There were varying opinions and ideas thrown out including the thought that perhaps this isn’t worth optimizing for. There are a few ESLint plugins of this sort already that could be explored. Generally though, this topic was out of scope for this meeting.

Next Step: @zebulan added this to the agenda for #core-js meeting next week as this is a better spot to discuss this question.

#meeting-notes, #core-editor, #editor, #gutenberg, #core-editor-summary

Editor chat summary: Wednesday, 10 June 2020

This post summarizes the latest weekly Editor meeting (agenda, slack transcript), held in the #core-editor SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel, on Wednesday, June 10, 2020, 14:00 UTC.

GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 8.3.0

Gutenberg 8.3.0 has been released. The team continues iterating on two big projects – Full Sitesite (versus network, blog) Editing and Navigation Screen- while improving other areas of the editor as well.

Includes some great features like padding support for cover blocks, color support for link, enhanced blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. toolbars. Check out the releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software. note for more details.

Monthly Plan

The high-level items that Gutenberg contributors are focusing on for the month are available here

Weekly Priorities

There was limited discussion on the specifics.

Looking to land the Block Inserter for 5.5. Extra eyes are needed on this PR and @ellatrix is looking at reusing an existing endpoint for the front end images, but there could be the possibility an experimental APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. is shipped. The issue will be discussed by the REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. team.

Task Coordination

Note: Anyone reading this summary outside of the meeting, please drop a comment in the post summary, if you can/want to help with something.

@mkaz

  • Working on a new Create a Block tutorial based on the create-block and wp-scripts for developers new to block development.  

@michael-arestad

  • Working on Full Site Editing related items
  • The main priority being WP 5.5 would be reviewing anything related to it, especially issues/PR’s we want to get in, but are stalled or need design feedback.
  • I would appreciate pings on any issues for 5.5 that could use design eyes.

@annezazu

  • Working on some documentation and wrangling proper feedback tools for the Full Site Editing outreach program. This documentation will be specific to helping those in the program know how best to provide feedback, setup Gutenberg.

@zebulan

  • Working on adding a heading level checker. Design feedback to ensure an accessible UIUI User interface would be appreciated 22650.
  • As a follow-up to 22650, working on a PR that refactors PostSavedState to use hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.. (some technical questions that need addressing before I can progress)
  • PR to revise the Save draft and Preview buttons should be ready for final reviews now.
  • Custom HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. block polish PR needs reviews.
  • Table of Contents block PR is still stuck.
  • List block color controls PR is also stuck.
    A code quality PR to refactor ReusableBlockEditPanel to use hooks is ready for review.

@ellatrix

  • Mostly working on image editing refinements (since we’ll try to get it in 5.5) and experimenting with the light block API.

@youknowriad

  • Working essentially on the Inserter and helping with a few other things like Adminadmin (and super admin) Colors handling.

@itsjonq

  • Continue focus on the Cover block, have PRs/branches that enables:
    • positioning coordinates for Video backgrounds (+ improved positioning controls).
    • Extract dominant color from the Cover image
    • Apply background filters (e.g. saturation, contrast, etc… ) (works for video too!)
  • Continuing efforts to improve @wordpress/component components.
    The goal is to makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). them feature-rich so that the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress./3rd party has less overhead when using them. This includes improving internal state management, style rendering, cross-component integration, and built-in UXUX User experience features (e.g. drag to update).

@paaljoachim

  • Working with @mkaz on Create a Block tutorial
  • General Gutenberg design triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors..

@toro_unit

  • Working on getting rid of errors that occur in the console 23019, 22967.

@ntsekouras

  • Working on changing the layout of transform Block to a vertical list and changing a bit the Styles preview 23028.

@retrofox

  • Improvements in the MediaPlaceholder and MediaReplaceFlow, which in short allow us to control the uploading process a little bit more, knowing what are the files that are being uploaded by the user.

Open Floor

@cvoell

  • The Gutenberg-Mobile + Gutenberg Web “Monorepo” effort seems to be approaching final PR Reviews in the next 1-2 weeks, so we wanted to give everyone here a heads up about that.
  • Final PR should go from Draft to Ready for review in the next 2-3 days.
  • Changes that web devs might see are summarized here.
  • For now, would like to highlight
    • We added 4 new CI jobs (as GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ actions) which will run on each PR for e2e testing of the mobile demo app.
    • Three new packages: reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/.-native-aztec, react-native-bridge and react-native-editor
    • A new npm command npm run native to run native scripts in packages/react-native-editor/package.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.
    • After Monorepo changes are merged, you will be able to try the demo app by running npm run native start:reset followed by npm run android (or npm run ios) in a new terminal.
    • You will need either the Android SDK or XCode installed on your machine (a docker based script should come later).

@mkaz

Documentation versioning

  • It was discussed yesterday to switch Gutenberg docs publishing to DevHub back to off the master tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.), and then figure out how to publish sets of versioned docs based off wp version tags. I’m not sure what the next steps should be. I can modify scripts and process and work on it, but don’t know who/where/what/how
  • The problem of using a master is that things change that aren’t in core. So the idea was a version switcher, for a complete set of docs Or somehow version on a per-function/feature, which is how Codex/Reference works in Core.
  • @youknowriad A version switcher would be great. I’d suggest you should ask in #metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. or try to find a developer familiar with the meta repo to help here.
  • I’ll check with them and see what we can work out

#meeting-notes, #core-editor, #editor, #gutenberg

What’s new in Gutenberg (11 June)

GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 8.3 has been released. The team continues iterating on two big projects -Full Sitesite (versus network, blog) Editing and Navigation Screen- while improving other areas of the editor as well.

Design Tools

This releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software. features a few additions to the design tools for the blocks.

A new padding control was added to the cover blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.. This is an opt-in feature that themes have to declare support for via add_theme_support('experimental-custom-spacing').

Also a new link color control was added to the paragraph, heading, group, columns, and media&text blocks. It’s opt-in as well, via add_theme_support('experimental-link-color').

WCEU Contributor DayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/.

As part of the Contributor Day at WCEU 2020, the editor team hosted an online session to help people get started with Gutenberg. It was recorded and you can watch at:

As a result, a good number of Pull Requests were created and are part of this release! If you missed it or you want to start contributing, take a look at the Getting Started guidelines, and grab one of the Good First Issues and/or Good First Pull Requests.

And more

In addition to the above, this release consolidates a new organization of block categories that groups blocks into text, media, design, widgets, and embeds.

The block toolbar also got an upgrade and it now comes with a parent selector to improve navigation in nested contexts:

8.3 🇪🇺

Features

  • New padding control to cover block. (21492, 23041)
  • New link color control to paragraph, heading, group, columns, and media-text blocks. (22722, 23025, 23049)
  • Updated default block categories. (19279)
  • New parent block selector to child blocks. (21056)

Enhancements

  • Blocks:
    • SiteTitle: add alignment and tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) level support. (22843)
    • Heading: use toolbar for heading level control. (20246)
    • LatestPost: add the ability to filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. by author. (16169)
    • Add caption split at end to all caption blocks. (22934)
    • Add transforms between the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. widgets that have equivalent blocks. (22644)
  • Interface package:
    • Add block areas tabbed sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. to the widgets screen. (22467)
    • Use isActiveByDefault prop and local storage to determine whether it is active or not. (22381)
    • Add a mechanism to render them on edit site. (21430)
    • Sidebar reacts to screen size and refactor to use interface package. (22565)
  • Add a heading to the block inserter tips and to the block inserter groups (22898, 22903)
  • Move between nesting levels with arrow keys in navigate mode. (22614)
  • Add icons for image tools, other, and update list icons. (22593)
  • Block Navigator: Use default block appender. (22590)
  • Adds a default text label to the block appender when it can only insert a single block type (22293)
  • Makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). ToolbarButton APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. consistent. (22961)
  • Implement roving tab index on the Image block. (22696)
  • Block Editor: Allow control over drop cap feature with useEditorFeature helper. (22291)
  • REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.:
    • Add block styles register mechanism. (22680)
    • Update default values for fields in the block type schema. (22695)

New APIs

  • Add new package @wordpress/lazy-import for lazily installed packages. (22684)
  • Added _experimental/block-types endpoint to expose all registered blocks. (REST API 21065, register core blocks in the server 22491).

Experimental

  • Added experimental version of rich image editing tools. (21024, 22870)
  • Full Site Editing
    • New template creation flow for EditSite. (22586)
    • Edit Site: Avoid dirtying un-customized templates on first load. (22876)
    • Edit Site: Refactor business logic into store. (22844)
    • Global Styles: make theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. shape consistent with local styles shape. (22744) and take block supports from block.json. (22698)
    • Edit Site: fixes to template lookup and template parts auto-drafts (22954, 23050)
  • Navigation screen
    • Use a panel for navigation structure on small screens only. (22828)
    • Disable the navigator toolbar button. (22792)
    • Atomic save using customizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. API endpoint. (22603)
    • Retain block IDs on save. (22739)
    • Separate concerns in useNavigationBlocks. (22825)
    • Fetch all menus for display in select menu. (22591)
    • Fix keyboard navigation in Navigation block. (22885)
    • Rename EllipsisMenu to BlockNavigationBlockSettings. (22630)
    • Remove BlockNavigationEditor from navigation-link/edit.js. (22629)
  • Block directory:
    • Update the state to store the installing status per block id. (22881)
    • Use semantic element for block directory download heading. (22713)
    • Add the list of installed blocks to the pre-publish sidebar. (22752)
    • Store refactor. (22388)

Bugfixes

  • Blocks
    • Skip null values returned from the server during registration. (22849)
    • LatestPost: fix to display author. (22937)
    • Legacy Widgets: widgets with special chars on classname did not load. (22841)
    • Group: clean up block padding rules. (22746)
    • Gallery: fix initial creation via media library. (22659)
    • Cover: fix height reset on unit change. (22642)
    • Navigation: fix submenu keyboard a11yAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) in IE. (22546)
    • Buttons: fix invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. property value for margin-right. (22211)
  • CustomSelectControl:
    • Use default cursor style (22926)
    • Fix arrow spacing. (22925)
  • Fix Drag and Drop in Safari by upgrading Reakit. (22960)
  • Font size picker reset button: make it visible in all languages. (22896)
  • Components: ToolbarButton use forwardRef. (22970)
  • Remove aria-label from iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. resizers. (22868)
  • LinkControl: avoid showing “Recently updated” when there are no recently updated Pages from the API. (22856)
  • CopyHandler: Fix unintended Copy override when copying from input or textarea elements. (22793)
  • Customizer complementary area should not include the block areas. (22756)
  • Icons: Fix package references. (22702)
  • Fix missing parentheses in usePrevious hook. (22608)
  • Fix presets in themes that use the default color & gradient palettes. (22526)
  • Fix dark menus in canvas, not in top toolbar. (22516)

Performance

  • Remove ifBlockEditSelected internal higher-order component. (22905)
  • Remove withBlockEditContext internal higher-order component. (22942)

Documentation

  • Handbook
    • Fix links for dynamic blocks page. (22945)
    • theme.json specification: document link color feature (22929) and features integration. (22622)
    • Block Registration: document use of innerBlocks in example property. (22633)
    • Initial documentation for architecture decisions. (22751)
    • Reusable blocks: initial improvement to documentation. (21843)
    • Default to ESNext syntax in MetaBoxMetabox A post metabox is a draggable box shown on the post editing screen. Its purpose is to allow the user to select or enter information in addition to the main post content. This information should be related to the post in some way. & Block tutorials. (22748, 22973)
    • Block Tutorial: fixed typo in the wp_register_script function. (22755)
  • JSDoc comments:
  • Contributor docs:
    • Add code examples section. (22974)
    • Update triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. to include release instructions. (22335)
    • Update repository management with proposed guidelines. (22679)
  • Env:
    • Reference destroy command. (22643)
    • Fix use of backticks. (22980)
  • Improve e2e-test README. (22661, 22654)
  • Move BlockDropZone reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. hook and update documentation. (22619)
  • Update PULL_REQUEST_TEMPLATE.md to include PR documentation nudge. (22681)

Code Quality

  • Refactor some components to use hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.:
  • Polish ImageSizeControl. (22917)
  • Latest Posts Block: add key to categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. select box. (22904)
  • Rename the navigation mode BlockBreadcrumb component to BlockSelectionButton. (22882)
  • Extract inserter state into reusable hooks. (22710)
  • Replace function expressions with named function or arrow expression. (22647)
  • Remove unused isDraggable prop from BlockList. (22615)
  • Remove form control resets and include the styles in the components. (22596)
  • Project Management Automation: reorganize folder structure. (22574)
  • Dependency Extraction Webpack PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party: add types. (22498)
  • Blocks: Avoid separate host matching constant for embeds. (13755)

Breaking Change

  • Scripts: Remove legacy env command. (22953)
  • ESLint Plugin/Scripts: Update ESLint and related deps to 7.1.0. (22771)

Build Tooling

  • Env package:
    • Add support for interactive run commands (like bash). (22611)
    • Ensure correct port setting on related wp-config params. (22559)
    • Update Source type to WPSource. (22785)
    • Fix ssh-auth nodegit + better snap pack detection. (22649)
    • Correct multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site support. (22613)
    • Update copy-dir dependency to version 1.3.0. (22682)
  • Create Block:
    • Integrate CSSCSS Cascading Style Sheets. import in JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. with esnext template. (22727)
    • Enhancements for the upcoming npm release. (22978)
  • Scripts:
    • Add support for postcss.config.js. (22735)
    • Support split Jest configuration for test commands. (22477)
    • Split webpack loader rules for CSS and Sass files. (22786)
  • Release tool: warn about open issues in milestone before starting release. (22764)
  • Changelog tool: Enhance entry normalizations. (22601)
  • Performance tool: fixes to run across branches. (22676)

Various

  • Use Card instead of Panel for the block editor. (22827)
  • Revert add selectionStart and selectionEnd to transientEdits. (22933)
  • BlockEditor: fix readme syntax. (22809)
  • Trigger additional widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. setup actions. (22807)
  • Align navigator icon and buttons to top. (22790)
  • Set default selection to the root navigation block. (22737)
  • end-to-end tests:
    • Disable inconsistent test for gallery. (22726)
    • Specify icon for block context test blocks. (22811)
    • Configure Axe to ignore media modal markup. (22719)
    • Define end-to-end test experimental features utility as lifecycle helper. (22712)
  • CODEOWNERS updates. (22725)
  • Add data-handle to all script tags in the adminadmin (and super admin). (22721)
  • Add onDeleteBlock to the extra data to re-render when it has changes. (22716)
  • Add support for page=1 and perPage=-1 to getMergedItemIds. (22707)
  • Replace three experimental flags (ellipsis menu w/ min level, navigator slots) with just __experimentalFeatures. (22670)
  • Add require headers to plugin and readme (php 5.6). (22669)
  • Update package-lock.json so that CI tests pass. (22667)
  • Framework: Upgrade to wp-prettier@2.x. (22610)
  • Remove the multi-block type check to make __experimentalConvert more useful. (22577)
  • Mousetrap: Update to latest stable version. (22548)

Performance Benchmark

The following benchmark compares performance for a particularly sizeable post (~ 36 000 words, ~ 1 000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.

Version Loading Time KeyPess Event (typing)
Gutenberg 8.3 11.94s 47,75ms
Gutenberg 8.2 11.43s 47.95ms
WordPress 5.4 13.79s 39.32ms

Kudos for all the contributors that helped with the release. 👏

#core-editor, #editor, #gutenberg-new

Editor features for WordPress 5.5

In Slack recently, contributors to the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.-editor component were encouraged to focus on features merging into WordPress 5.5. The question arose around which specific tasks required focus. The goal of this post is to communicate the features that will be included and to highlight other features that need help to be included too.

Definite inclusion

Features that need your help

To test the following features, turn them on within the GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Experiments screen.

If you’re uncertain about how to contribute to any of these features, please comment below. There are many issues that focus on a single feature, so while the work is spread out, there are several paths for contributing.  We need additional help testing these features in the plugin, reviewing PRs which can be done using http://gutenberg.run/, and leaving important feedback.  Thank you for contributing!

Thank you to @andreamiddleton, @annezazu, and @chanthaboune for their feedback on the content and phrasing of this post!

#5-5, #editor, #gutenberg

Editor Chat Summary: 27th May, 2020

This post summarizes the latest weekly Editor meeting (agendaslack transcript). This meeting was held in the #core-editor SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel on Wednesday, May 27, 2020,14:00 UTC and was moderated by @itsjusteileen.

Quick Announcements

WordPress 5.5 Upcoming ReleaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software. 

The planning roundup for 5.5 can be found here. There are several features that are under an experimental flag in Gutenberg, and to have a chance to makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). it for 5.5 they’d need to be out of experimental by July 7th. This led to a quick discussion that the widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. screen can soon leave the experimental state!

@matveb chimed in to share the following later on to highlight that there’s plenty to do beyond the main projects that are underway if people want to/can help:

I wanted to mention that while many groups are focused on larger pieces of work (FSE, global styles, navigation, etc) 5.5 will require some focus on ensuring what exists right now is in good shape. That includes shipping the new design, patterns, the new inserter with new categories, new APIs and deprecations, etc.

Gutenberg version 8.2

Gutenberg RC candidate 8.2.0 was released this week with the stable release launched just after this meeting ended. Update your sites and check out what’s new.

Monthly Plan

There was limited discussion on the specifics of the current monthly priorities.

Task Coordination

Note: Anyone reading this summary outside of the meeting, please drop a comment in the post summary, if you can/want to help with something.

@poena

  • Flagged this issue as needing a decision about the dynamic content with @matveb chiming in to say that there needs to be closer parity with the current theme experience as a start.

@paaljoachim

@nosolosw

  • Focusing on a new iteration of theme.json and early documentation for it.
  • Helping with reviews and other PRs, mainly in the areas of styles & blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. registration.

@michael-arestad

  • Dropping a new figma prototype very shortly on inserting saved (and new) template parts that deviates from previous designs and the current implementation. 
  • Planning to create a new issue with designs/discussion around a vertical grid for template building (and general layout things).
  • Planning to update the end to end full site editing prototype (i4).

@sageshilling

  • Working with coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.-media data flow, design gallery, image block, gallery patterns.

@mapk

  • Working on the widgets screen with @jorgefilipecosta.
  • Updating UIUI User interface issues/PRs with Figma label.
  • Providing feedback on FSE work.
  • Redesign of spotlight mode with @youknowriad.

@karmatosed

  • Focusing deeply on navigation with a side order of triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors..

@andraganescu

  • Various work on the navigation screen
  • Added new suggestion types to LinkControl
  • Continued the work on adding delete to Entities

@nrqsnchz

  • working with @michael-arestad on inserting saved (and new) template parts (FSE).

@zebulan

  • Add RichText split-at-end/merge/remove behavior.
  • Add usePrevious hook to @wordpress/compose package.
  • Use toolbar exclusively for heading level controls in Heading Block
  • PR to replace instances of Lodash.includes with native JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. [].includes in the block-editor package is awaiting reviews.
  • PR to refactor ReusableBlockEditPanel to use ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. is awaiting reviews.
  • PR for the Table of Contents Block needs technical help/feedback in order to progress along with accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) feedback.
  • PR for the Reusable Block edit component has made progress thanks to feedback/help but has one remaining behavior issue that’s blocking it.
  • Polish Custom HTML block PR is ready to go, assuming the stylistic changes are okay. Please provide design feedback.
  • Started a PR to update the Quote Block to use a light block wrapper but got stuck and need technical help to move forward. Solving this will help other blocks use light block wrappers.
  • Started a PR to add color controls to the List block but running into problems with style conflicts on most default WordPress themes.
  • Started a PR to add a heading level checker to the Heading block, based on prior efforts in this issue.

@itsjonq

  • Adding Padding controls
  • Working on video Background position controls
  • Working on cover image auto dominant colour detection

Open Floor

@youknowriad shared helpful guidelines for folks creating PRs to make the changelog easier to automatically compile.

  • When working on experimental screens and features, apply the [Type] Experimental label instead of Feature, Enhancement, etc.
  • When working on new features to technical packages (scripts, create-block, adding  react hooks, etc), apply the [Type] New API label instead of Feature, Enhancement, etc.
  • When fixing a bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. or making an enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. to an internal tool used in the project, apply the [Type] Build Tooling instead of Bugs, Enhancement, etc.
  • In PR titles, instead of describing the code change done to fix an issue, consider referring to the actual bug being fixed instead. For example: instead of saying “Check for nullable object in component”, it would be preferable to say “Fix editor breakage when clicking the copy block button”.
  • Take the time to choose the right [Type] label for your PRs. With some updates to the changelog command (type priorities), we should be able to support multiple types on a PR for some of the examples above.

Next step: @annezazu will look into updating both triage documentation and contributor documentation as appropriate.

Will core-editor participate in Contributor Day and should this be mentioned to participants? Raised by @itsjusteileen.

Yes! @youknowriad is planning to do a quick zoom chat to help people setup a Gutenberg environment at the beginning of the day. To come prepared, please have “Docker” + Latest node.JS LTS setup. This is also mentioned above under announcements.

Listing names in the code owners document to better understand who can be pinged for help/a review. Raised by @paaljoachim.

Paal encouraged everyone to review this document and keep it up to date. @karmatosed mentioned that relying on solid labeling alongside bringing in specific people from that list will likely help more for getting everyone to see issues appropriately.

#meeting-notes, #core-editor, #editor, #gutenberg, #core-editor-summary

What’s new in Gutenberg? (27 May)

GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 8.2 is released. The team continues to heavily iterate on the two big projects: Full Sitesite (versus network, blog) Editing and the navigation screen.

The releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software. also includes a number of improvements, features, bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes to the post editor.

BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. Patterns

After the introduction of the search support, the Block Patterns UIUI User interface and APIs continue to improve with the introduction of the block pattern categories. In addition to that, a viewportWidth property has been made available to allow tweaking the width used on the block patterns preview. This is especially useful for large block patterns.

Cover Block content alignment

The Cover block saw the introduction of the new content alignment feature which opens up more design possibilities.

Editing flow

The editing flow is a constant priority for the project, and Gutenberg 8.2 introduces several enhancements to improve the writing experience. Copying, cutting, and pasting single blocks is now much easier. You can also split out of captions and button blocks using “Enter” to continue your writing.

8.2 🇮🇹

Features

  • Cover block: Support customizing the content alignment. (21091) (22322)
  • Add Block Pattern Categories Support. (22164) (22410)
  • Copy the whole block if no text is selected. (22186)

Enhancements

  • Limit the most used blocks in the inserter to 6 elements. (22521)
  • Allow split out of caption on Enter. (22290)
  • Buttons block: Allow split and merge. (22436)
  • Improve video backgrounds for the Cover block in iOSiOS The operating system used on iPhones and iPads.. (22346)
  • Combine Calendar Help and Close buttons in the date and time picker. (22176)
  • wordpress/env: Better run command errors. (22475)
  • Add support for named orientations and literal colors on custom gradients. (22239)
  • Use theme color as focus color. (22261)
  • Refine the specificity of the embed block styles. (21599)
  • Change inserter search placeholder text color. (22444)
  • Improve interactions and add unit parsing to the unit selector used in Cover block. (22329)
  • Use smaller spacer and cover block step values. (22320)
  • A11yAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility): Add explanatory text before the a11y.speak aria-live regions. (22112)
  • Add Animoto, Dailymotion block embed icons. (21882)
  • Group block: Match frontend markup in the editor. (21867)
  • Iterations on the welcome guide. (21847)
  • Don’t show protocol in link suggestions. (20350)
  • New Block Patterns:
    • Hero and two columns. (21130)
    • Features or Services. (20898)

New APIs

  • ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. HooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.:
    • Add new React hook UseCopyOnClick as an alternative to the ClipboardButton component. (22224)
    • Add usePrevious hook to wordpress/compose package. (22540) (22597)
  • wordpress/env:
    • Granular volume mappings. (22256)
    • Add command to display Docker container logs. (21737)
    • Add a destroy command. (21529)
    • Add phpunit support. (20090)
  • wordpress/scripts:
    • Add CSSCSS Cascading Style Sheets. support to start and build scripts. (21730)
    • Support enabling/disabling dev tools, bundle analyzer and externals for build and start scripts. (22310) (22426)
  • Support preloading APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. requests using the fetchAllMiddleware middleware. (22510)
  • Support controlled InnerBlocks. (21368) (22366)
  • Add Close button filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.. (22323)
  • Block API: Allow block registration without categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging.. (22280)
  • Support customizing the viewportWidth for block patterns. (22216)

Bug Fixes

  • Fix theme CSS bleed in the Button component. (22460) (22522)
  • Fix CSS validation error on Button block styles. (22583)
  • Fix editor crash potentially happening when hovering style variations. (22490)
  • wordpress/env: Start database service before running tasks. (22486)
  • Fix editor crash when zooming. (22408)
  • Fix Button border radius set as 0. (22393)
  • Fix Cover block resizing. (22349)
  • Writing Flow: Fix reverse block selection after block deletion from rich text. (22292)
  • A11y: Include reusable blocks in announced inserter search results. (22279)
  • Remove the previous style CSS class when the default style variation is chosen. (22266)
  • Show the global inserter in container blocks nested inside locked templates. (22115)
  • Prevent the Page Break block from showing up as the first block in the inserter. (22523)
  • Polish code editor and fix iOS scrolling issue. (22021)
  • LinkControl component: Fix search result focus state border. (22553)
  • Prevent contributors for accessing the Media Modal. (22306)

Performance

  • Adds a command to run performance tests across branches. (22418)
  • useMovingAnimation: Avoid initial transform animation. (22536)
  • Optimize resizable preview hooks. (22511)
  • Short-circuit validation for identical markup. (22506)
  • More accurate dependency list for useGenericPreviewBlock hook. (22355)
  • Add missing side-effect declarations. (22300)

Experimental

  • Full Site Editing and Site Editor screen:
    • Add page-based navigation. (22368)
    • Page and Template switchers improvements. (22449)
    • Add Query block. (22199) (22364)
    • Use the inserter panel. (22413)
    • Add basic “tools” menu. (22539)
    • Implement post switcher and integrate with “navigate to link”. (22543)
    • Add focus mode and top toolbar modes. (22537)
    • Add entity editor to post content block. (22473)
    • Add ‘Review changes’ button for multi entity saving flow. (22450)
    • Fix Post Author block render issues. (22397)
    • Refactor Post Author block to use block context. (22359)
    • Templates Endpoint: Add resolved query arg to return only relevant templates. (21981)
  • Navigation Block and Screen:
    • Add block movers to the block navigator. (18014)
    • Add ellipsis menu to block navigator. (22427) (22517)
    • Add standard notices to nav menu page. (22374)
    • Implement the creation of menus on the edit navigation screen. (22309)
    • Add menu location management. (21351)
    • Navigation Link block: Add RichText split-at-end/merge/remove behavior. (21764)
    • Fix navigation block placeholder overlap. (22407)
    • Adds orientation class on frontend for the navigation block. (22272)
    • Refactor block navigation block contents. (22487)
    • Fix navigation screen crash with no menu items. (22342)
    • Adds save and failure notices to the navigation screen. (22326)
    • Display the block appender only for the currently active menu. (22311)
    • Allow editing of new menu items from the block inspector. (22210)
    • Submenu nesting and saving new nested items. (21671)
  • Block-based Widgets screen and CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. tab:
    • Use interface package on widgets screen sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. (22304)
    • Use single block editor in the widgets screen. (22140) (22459)
    • Use the mobile view for the Customizer. (22533)
    • Add legacy widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. to calendar transform. (14586)
  • Global Styles and theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.:
    • Implement Managed CSS for Global Styles. (20290)
    • Support theme.json in Post editor. (22520)
  • Block Directory:
    • Activate deactivated blocks if already installed . (22286)
    • Only support an array of assets when injecting assets. (22289)
    • Remove the author rating when none exist. (22184)
    • Update layout for smaller inserter width. (22124)
    • Add error messages inline. (20001)

Documentation

  • Document experimental theme.json. (22518)
  • Fix duplicate grammar docs. (22466)
  • Document the performance testing commands. (22464)
  • Docs: Update note for extraProps filter. (22419)
  • Recommend adding an API docs section. (22415)
  • Add side effect documentation. (22379)
  • Update block editor docs to incorporate the block-toolbar Popover Slot. (22308)
  • Adds a README to MediaReplaceFlow. (22268)
  • Typos and tweaks: (22254) (21968) (21695) (22554)

Code Quality

  • Avoid circular dependency issue in AutoBlockPreview. (22425)
  • Remove opinionated label color from CustomSelectControl component. (22594)
  • Image block:
    • Use hooks. (22499) (22277)
    • Remove extra div wrapper in the editor. (22585)
  • Remove redundant condition from setting default grouping. (22563)
  • Testing: Replace require.requireActual with jest.requireActual. (22370)
  • Use a light block DOM for the Cover block to map frontend markup. (22348)
  • Rename a complementary area component property. (22336)
  • Block API: WP_Block: Document attributes class property. (22222)
  • Polish block wrapper elements file. (21304)
  • Move supports to block.json files for coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks. (22422)
  • Create Block: Simplify the process of defining a config for templates. (22235)
  • Block Edit: Use hooks. (22433)
  • Add BlockContext component to type-checking. (22353)

Build Tooling

  • ESLint PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party: Fix dependency group checking for CommonJS. (22230)
  • Restore Playground GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ Pages deployDeploy Launching code from a local development environment to the production web server, so that it's available to visitors.. (22443)
  • Fix API Docs generation for filenames with spaces. (22513)
  • Fix check-latest-npm.js failure on Windows. (22485)
  • Refactor the changelog script as a release tool command. (22380)
  • Enable import/no-unresolved ESLint rule for Gutenberg. (20905)
  • Only allow ECMAScript stage 4 features. (22083)
  • Storybook: Use a consistent port number. (22552)
  • Add 0BSD to GPLv2 compatible licenses. (22391)
  • Refactor the release tool and split it into several command files. (22003)
  • Replace wp-scripts env usage with wp-env in CI. (20280)

Various

  • Update: ResizableBox makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). showHandle true by default. (22360)
  • Fix dirty state end-to-end test intermittent failuire. (22532)
  • Fix dirty state end-to-end test. (22448)
  • Add a simple block patterns end-to-end tests and a test utility. (22414) (22495)
  • Remove insert block delay from end-to-end tests. (22377)
  • Add an end to end test to verify cover can be resized with drag & drop. (22369)
  • Upgrade Reakit to stable v1.0.0. (22352)
  • Use alternate display for the popover in alignment matrix. (22351)
  • Fix deprecated version used for register_pattern. (22341)
  • API Fetch: Remove deprecated useApiFetch. (22333)
  • Framework: Pin nvmrc to specific current LTS. (22236)

Performance Benchmark

The following benchmark compares performance for a particularly sizeable post (~ 36000 words, ~ 1000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.

Version Loading Time KeyPress event (typing)
Gutenberg 8.2.0 7.4s 29.7ms
Gutenberg 8.1.0 8.6s 29.7ms
WordPress 5.4 9.2s 26.8ms

Kudos for all the contributors that helped with the release. 👏

#core-editor, #editor, #gutenberg-new

What’s new in Gutenberg? (13 May)

GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 8.1 releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software. mostly contains developments/enhancements on experimental screens, bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes, and performance improvements.
It also contains some new features available on the general editor screens, described bellow.

New blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. pattern features

Gutenberg 8.1 brings pattern search to makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). it easier to insert the desired patterns and a new pattern: the testimonials.

Copy block action

The copy block action is a small quality of life improvement for touchscreen users or users who don’t use keyboard shortcuts. Gutenberg 8.1 adds a button to the collapsed block actions (next to duplicate, etc.) to copy the selected block(s). The feature is quite similar to the “Copy all blocks” but then for the selected block.

8.1 🇹🇷

New features

  • Pattern search (21944)
  • Testimonials block pattern. (20894)
  • New Transforms:
    • Embed blocks into Paragraph blocks. (17413)
    • Code to HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. block and the opposite. (21779)
  • Add copy action to the blocks. (22214)

Enhancements

  • Implement Block Navigator selection on the Nav Menus page. (22017)
  • Write block patterns in PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 to allow i18ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.. (21946)
  • Post title: handle paste as blocks. (21758)
  • Clear Publish Date Button. (20914)
  • Add gap between nested submenus. (22227)
  • Block Library: enhance the author’s block. (19894)
  • Add “black” and “white” color options to the default color palette. (22082)
  • Light blocks: social links. (22078)
  • CustomSelectControl: set aria-hidden to empty option list. (21298)
  • Add some more g2 icons. (21825)
  • Allow the column block in the inserter. (20502)
  • Delete menus in nav menus experimental screen. (21486)
  • Visual and experience improvements to existing sub-navigation flow. (22107)
  • Reduce font-size and line-height of “it’s time”. (21627)
  • Template Loader: Introduce get_template_hierarchy(), drop gutenberg_template_include_filter(). (21980)
  • Make parts of the BlockNavigationList overridable using slots. (21948)
  • Change the color alpha input step to match the slider step. (21953)
  • Navigation: fallback for undefined orientation. (22057)
  • Remove the subscription button from the blogblog (versus network, site) template. (22129)
  • Move the Entities Saved States from Modal to SidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. (21522)

APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. Changes

  • Update the Patterns API to avoid ambiguity. (21970)
  • Expose the registered pattern slugs in get_all_registered. (21619)
  • Fix doc-building pre-commit API hook issue. (22116)
  • REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.: Block directory – Typecast author_block_count as integer. (17594)
  • Block API: Block Context: FilterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. content, prepare attributes at render, pass a block to render. (21925)

Experimental

  • Add undo-redo UIUI User interface to edit-sitesite (versus network, blog) and edit-widgets. (21955)
  • Light blocks: site title. (22069)
  • Update: Use EntityProvider on the widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. area. (22008)
  • Site editor:
    • Extract gutenberg_find_template_post helper. (21959)
    • Fix default editor background. (22182)
    • Refactor close button slot. (22179)
    • Make close button replaceable. (22001)
    • Add home icon to template switcher. (22004)
    • Updated template content. (22044)
    • Fix spelling mistake. (21991)

Performance

  • Reduce re-renders from block nodes context. (22134)
  • Move memo() from BlockStyles to BlockPreview. (21993)
  • Avoid rerenders of the entire BlockInspector when block attributes change. (21990)
  • Optimize BlockStyles by using hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. and React.memo (instead of HOCs). (21973)

Bug Fixes

  • Popover: Fix closest().parentNode null error. (22264)
  • Correct color palette in color settings. (22138)
  • Remove import of inexistant component. (22130)
  • Build Tooling: Run packages build before lint. (22088)
  • RangeControl: Fix number input change interaction. (22084)
  • Fix entity selection through save panel. (22011)
  • ESLint PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party: Relax check for i18n-text-domain rule. (21928)
  • Block Library: Fix ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. does not recognize isSelected prop in Spacer block. (21924)
  • Reinitialize the iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. after the parent block is moved around. (21916)
  • Configure the navigation editor with correct __experimentalFetchLinkSuggestions. (21873)
  • Create the proper shortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. on paste. (21864)
  • Refactor FontSizePicker component. Fix bug on undo. (21757)
  • Move caret to the end of pasted content. (21755)
  • Embed: use the same SmugMug URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org regex as the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. (21744)
  • Navigation block: use new icon in placeholder. (21713)
  • Fix Template Part placeholder preview. (21623)
  • Restore the missing background color on the nested submenus. (22228)
  • fix: [#21777] Prevent focusing of FireFox address bar. (22215)
  • Fix flaky test in rich text. (22202)
  • Fix flaky test: tag “target” attribute. (22200)
  • Fix extra tab stop on Modal component. (22063)
  • Writing flow: fix vertical arrow nav in table (and generally grid). (22105)
  • Gallery block / media-placeholder – Preserve changes made while upload in progress. (19134)
  • Add missing dependency. (22086)

Tooling

  • Build Tools: Validate package-lock.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. for “resolved” errors. (22237)
  • Build Tools: Disable ESLint no-console for bin directory. (22033)
  • Build Tools: Changelog: Normalize entry to end with period. (22010)
  • Add analyze-bundles script. (21827)
  • Add changelog generator script. (19866)
  • Add a method for publishing patches to the Lerna scripts. (21844)
  • Add additional e2e debugging option. (21845)
  • Replace espree with babel. (21853)
  • Update diff to 4.0.2 and work around tree-shaking issues. (21994)
  • Increase the severityseverity The seriousness of the ticket in the eyes of the reporter. Generally, severity is a judgment of how bad a bug is, while priority is its relationship to other bugs. of jsdoc/no-undefined-types. . (21942)

Code Quality

  • Block: move new props to hook. (22212)
  • Block: avoid useLayoutEffect. (22108)
  • Try: Reduced specificity base block margins. (22051)
  • Update the audio and video blocks to use a light wrapper in the editor. (22028)
  • Remove unused animation lingering in paragraph file. (22020)
  • Columns. Remove the top and bottom margin from individual column blocks. (22018)
  • Try better inserter toggle styling. (22016)
  • Block Editor: Rename block context in BlockListBlock. (21922)
  • Remove duplicate CopyHanddler. (21817)
  • Types: Restore element, icons, primitives types. (21781)
  • Convert core toolbar buttons into ToolbarButton. (20008)
  • Block Directory: Add end 2 end tests. (20023)
  • ClipboardButton: use hooks. (22220)
  • ClipboardButton: remove wrapper span. (22218)
  • Block Library: Update FSE blocks to use block context. (21696)
  • Group: Zero out the intrinsic margin set to every block in the editor. (22209)
  • Unset the inherit for links. (22160)
  • Template Loader: Get rid of _wp_current_template_part_ids globals. (22143)
  • Block Library: Post Author: Reference attributes by argument. (22114)
  • Remove pass by reference of the $scripts and $styles attributes in client-assets.php. (21987)
  • Use optional chaining, optional catch binding. (21967)
  • Extract block mover buttons so that they can be individually imported. (22122)sss

Documentation

  • Scripts: Mark env script as deprecated. (22158)
  • Docs: Use InspectorControls from wordpress/block-editor. (22153)
  • Fix bundle analysis change location in the changelog. (22136)
  • Documentation: Improve the way CHANGELOG files are maintained. (22126)
  • ESLint Plugin: Add missing rules to root README. (22042)
  • Fix props, in example, code for Edit Post module. (21976)
  • Document e2e test command options. (21962)
  • Add an example for how to choose a style variation for a block variation. (21927)
  • Add documentation for onSelectURL property. (20799)
  • Document the old patterns API deprecation. (22177)
  • Coding Guidelines:
  • Document JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. language support commitment. (22030)
  • Add “gotchas” section about ES2020 optional chaining. (22029)
  • Recommend function components. (22090)

Various

  • Expose presets declared via add_theme_support in global styles. (22076)
  • Update is-promise package to the latest version. (21940)
  • Blocks: Register FSE blocks if the experiment is enabled. (21536)

Mobile App

  • Add missing RTL support for some mobile components. (21502)
  • Remove separatorType prop from TextControl, RangeControl… (21365)
  • Color settings. (21326)
  • Global styles provider. (21637)
  • Update existing templates to use new blocks. (21857)
  • Enable pullquote block. (21930)
  • Merge release branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch". back to master for v1.27.1. (22234)
  • Wrap button blocks with buttons blocks in page templates. (21939)
  • Components: Create a separate .native entry for ToolbarItem. (22229)

Performance Benchmark

The following benchmark compares performance for a particularly sizeable post (~ 36000 words, ~ 1000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.

Version Loading Time KeyPress event (typing)
Gutenberg 8.1.0 10.88s 43.61ms
Gutenberg 8.0.0 13.30s 42.97ms
WordPress 5.4 10.80s 52.87ms
#core-editor, #editor, #gutenberg-new

Editor Chat Summary: 13th May, 2020

This post summarizes the latest weekly Editor meeting (agenda, slack transcript). This meeting was held in the #core-editor SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel on Wednesday, May 13, 2020,14:00 UTC and was moderated by @andraganescu.

GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 8.1.0

Gutenberg 8.1 RC was released on May 11th and is on track for a final releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software.. 8.1 is focused on performance improvements, bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes and multiple enhancements around several areas of the editor and the experimental screens/features. Outside of those focuses, there are also new features like new transforms, pattern search, and a new testimonials pattern.

Weekly Priorities

There was limited discussion on weekly and monthly priorities@andraganescu noted that the new navigation menuNavigation Menu A theme feature introduced with Version 3.0. WordPress includes an easy to use mechanism for giving various control options to get users to click from one place to another on a site. screen is coming together! Overall though, Full Sitesite (versus network, blog) Editing (FSE) is a major focus right now and can be followed here with the overall plan shared here.

Task Coordination

Note: Anyone reading this summary outside of the meeting, please drop a comment in the post summary, if you can/want to help with something.

@nosolosw

  • Main focus has been “Global Styles”. Currently, iterating on some framework tasks that need to be to unlock before resuming work on the UIUI User interface. This will be the focus for this week too.

@aduth

  • Working on some documentation and framework-level improvements, largely summarized in this slack convo.
  • Refreshing and splitting off work around renaming blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. categories.
  • Next up, continuing work on renaming block categories plus follow-up work around block context.

@youknowriad

  • Did two zoom chats to help contributors (one in #core-editor, one in French WordPress slack).
  • Trying to land categories support for patterns.

@nrqsnchz

@retrofox

  • Made progress in the Tips approach. It’s now possible to register tips defining the scope, descriptions, and other parameters.

@earnjam

  • Handling some PR reviews to help with triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. starting with the list of non-draft PRs with no review, less than 2 comments, and sorted by least recently updated to try to find anything that has slipped through the cracks.

@mapk

  • Spent time triaging issues.
  • Search block enhancements.

@itsjonq

  • Continuing to add features to Cover block via new control UIs (“Design Tools”). In doing so, also building a set of incredibly robust and feature rich control primitives (e.g. Input).
  • Longer termer goal would be to (hopefully) refactor/replace existing controls within Gutenberg with these ones. These components would of course be available for block/pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party authors as well, enriching the UI experience of the Gutenberg ecosystem as a whole.

@vindl

  • Working on allowing extensions/replacements of editor close button which is part of this issue. It’s already merged for the site editor, and now I’m looking to expand it to the post editor too.
  • After the above work wraps up, will return to site editor UI tasks

@michael-arestad

  • Working on template part creation/manipulation design patterns. Right now, exploring how they might work as sections. This could be really slick when building templates.
  • Continuing on this path this week and will likely spin up some zooms if anyone wants to help or just watch! Links will be shared in #design.

@sageshilling

  • Working on the image and gallery blocks.

@andraganescu

  • Working on the navigation screen– just merged menu location management.
  • Will continue to work on various issues on this project for the next week.

@zieladam

Working on the experimental navigation screen, in particular:

Open floor

Do we instead of listing packages and versions, need to list components and versions? Raised by @paaljoachim.

This discussion point was raised in reaction to a comment from @clorith in this trac ticket on adding Gutenberg plugin version information to the Site Health section. Right now, this tracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. issue needs feedback to keep the issue moving. It was agreed that there’s no easy solution to this partially because WordPress versions includes features and bug fixes of various versions of Gutenberg. This makes handling bug reports tricky for example.

Next step: Taking the discussion back to the track ticket!

Do we need to apply a max height for the style placeholders in the inspector? Raised by @munirkamal.

The problem right now is that placeholders need to have a preview so if the block is quite large the the preview is too. @matveb chimed in to say that previews are loading example content now so this decision is up to the block author. However, if an example is not provided it falls back to actual block content which is where a max-height could be useful.

Next step: A “Needs Design” Label was added to the issue for design to explore further.

What time and day would work for the discussion about full-site editing and the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. customize component? Raised by @dlh.

The original proposed date and time was 20:00 UTC on May 25th but this time may not work well for the people working on Full Site Editing. @youknowriad suggested meeting more around 15UTC/16UTC but wants to hear from others. Tied to this, @aduth noted that May 25th is Memorial Day in the United States which

Next step: If you’re interested in attending this meeting, please share in the comments below what time might work best. Notes will be taken and posted either way if you can’t makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). it.

Can we add a block ID to each block that is unique and stable to help connect server data to client data? Raised by @sageshilling.

This came up as part of work done on the image and gallery blocks (full context here). There have been various discussions about this historically in the early days of Gutenberg. These discussions always concluded that while there is a need for this from time to time we don’t want to pollute markup and/or we don’t want to keep two separate things in sync. Before discussing anything technically, it was agreed that a case needs to be made for why it should go in core and why extension-based solutions are not apt.

Next step: @sageshilling will collect use cases and details in a post on metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. to propose this idea.

#meeting-notes, #core-editor, #editor, #gutenberg

What’s new in Gutenberg (29 April)

In this releaseRelease A release is the distribution of the final version of an application. A software release may be either public or private and generally constitutes the initial or new generation of a new or upgraded application. A release is preceded by the distribution of alpha and then beta versions of the software. of GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 8.0, there is a continued effort to refine the experience around the new blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. patterns feature. Additional formatting options for subscript and superscript text have been added, and the code editor has been improved to be more like how one would expect a code editor to look and feel.

Patterns Inserter

To allow a user to browse and insert block patterns, a new tab-panel interface has been added to the Block Inserter. In order to afford additional space for browsing patterns, the top-level inserter has been redesigned to appear as a panel that appears adjacent to the block list when toggled.

Animation inserting a block pattern using the inserter

Inline Formatting

Previously, the availability of formatting options was constrained by the limited space available in a block toolbar. The inclusion of a collapsible dropdown list of formatting options opens the possibility to add a variety of new formatting options for more niche use-cases. This release adds two new formatting options: subscript and superscript.

Animation formatting text of chemical formula using subscript

Code Editor

This release improves the code editor by embracing what it is: a code editor. The Code Editor now uses a monospace font for the title, and the editor resizes to the viewport.

Screenshot of code editor as it appears in Gutenberg 8.0

8.0 🇧🇬

Features

  • Add subscript and superscript formatting options. (21819)
  • Move the Block Patterns UIUI User interface to the inserter. (20951)
  • Improve layout and usability of code editor. (21643)

Enhancements

  • Add inserter previews to more blocks. (21740)
  • Performance improvements:
    • Import from individual reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/.-dates component. (21914)
    • Upgrade showdown Markdown processor library. (21862)
  • Allow title and button-based appender to inherit styles. (21749)
  • Output float clearing for all centered blocks. (21608)
  • Update ‘Welcome Guide’ illustrations. (21515)

New APIs

  • A new Block Context API has been partially implemented, currently limited to block settings and editor APIs. PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 APIs will be implemented in the next pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party releases. (21467, 21868, 21921)
  • Add new “G2”-styled icons to the Icons package. (21209)

Bug Fixes

  • Change wp_make_content_images_responsive to wp_filter_content_tags to resolve warnings in WordPress 5.5-alpha. (21514)
  • Collapse selection to end after link insertion. (17126)
  • Fix selected categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. on existing Latest Posts blocks. (21359)
  • Fix overlapping column contents for embeds. (21570)
  • Fix focus styling for date picker calendar days. (21600)
  • NPM Packages
    • Fix “Cannot find module ‘../utils'” error. (21609)
    • Types: Hide element, primitives, icons declarations. (21613, 21784)
  • Inherit font styles in block appender placeholder. (21725)
  • Allow default pasting behavior in FontSizePicker. (21812)
  • Prevent negative custom text sizes. (21815)
  • Fix image center alignment behavior. (21911)
  • Fix centered buttons margins. (21947)
  • Revert the button block to the previous markup. (21923)
  • Avoid using inline RichText element for navigation link. (21856)
  • Ensure resetEditorBlocks is synchronous. (21839)
  • Fix the button outline style for the old button markup. (21816)
  • Fix default attribute on audio preload. (21735)
  • Fix gradient picker double-click bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.. (21732)
  • Fix broken links in handbook. (21686)
  • Makemake A collection of P2 blogs at make.wordpress.org, which are the home to a number of contributor groups, including core development (make/core, formerly "wpdevel"), the UI working group (make/ui), translators (make/polyglots), the theme reviewers (make/themes), resources for plugin authors (make/plugins), and the accessibility working group (make/accessibility). useMediaQuery return the correct value on the first render. (21682)
  • Fix visual issue on windows with 782px. (21661)
  • Allow wrapping for Navigation block links. (21632)
  • Remove redundant margins from the columns block. (21615)
  • Fix media Text padding on inner blocks. (21612)
  • Restore floated image margins. (21500)
  • Fix URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org display for scheduled posts. (21410)
  • Test keycode modifiers for keyboard event as exclusive set. (20733)
  • Fix focus loss for Guide “Finish” button in Internet Explorer. (20599)
  • Replace incorrect Snackbar label attribute with aria-label. (20540)

Experiments

  • Add experimental useEditorFeature hook to simplify access to editor features. (21646)
  • Navigation menuNavigation Menu A theme feature introduced with Version 3.0. WordPress includes an easy to use mechanism for giving various control options to get users to click from one place to another on a site. page:
    • Try a fixed toolbar in the navigation page. (21340)
    • Fix panel collapsing in navigation page. (21633)
    • Fix mobile layout for navigation menu page. (21638)
    • Delete empty spaces in menu REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. endpoint strings. (21453)
  • Edit sitesite (versus network, blog):
    • Add current theme to template switcher. (21578, 21768)
    • Declare attributes for Template Part block in block.json. (21796)
    • Update end-to-end test for multi-entity saving in site editor. (21363)
    • Add preview options component. (21309)
    • Improve template parts resolution and saving behavior. (21766)
    • Support REST API metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. queries. (21851)
    • Add extra validation when loading template parts. (21636)
  • Block directory:
    • Add InserterPanel around block directory results. (21748)
  • Widgets:
    • Fix legacy widgets z-index issue. (21586)
    • Fix legacy widgets visual issues. (21585)

Deprecations

  • Add deprecation notice to useApiFetch hook. (21723)

Code Quality

  • Remove nested breakpoint in fullscreen mode CSSCSS Cascading Style Sheets.. (21496)
  • Update npm-package-jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.-lint from 4.0.3 to 5.0.0. (21597)
  • Update npm dependencies that warn. (21596)
  • Fix license check script to ignore sub-dependencies of ignored packages. (21606)
  • Package TypeScript types improvements:
    • Mark addQueryArgs arguments parameter as optional. (21926)
    • Relax i18ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill. sprintf arguments type. (21919)
  • Update PHPCS to latest version. (21680)
  • Unify how editor alignments are applied across blocks. (21822)
  • Remove obsolete editor alignment classes. (21906)
  • Remove old icons. (21821)
  • Implement block.json for blocks. (21794, 21783, 21782, 21775, 21787, 21774, 21792)
  • Use register_block_type_from_metadata in Latest Posts block. (21788)
  • Polish RSS block code. (21773)
  • Move camelCaseDash to the package where it is consumed. (21736)
  • Improve URLPopover code from review comments. (21621)

Documentation

  • Remove duplicate sentence in glossary documentation. (21565)
  • Update wp-env docs to reflect current functionality of package. (21809)
  • Extract Block Transforms into its own handbook page. (21734)
  • Update the index of Block APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. to reflect current contents. (21726)
  • Clarify attribute type documentation. (21694)
  • Add location for components style.css. (21654)
  • Fix the JSDoc return type for getEntityRecords. (21630)
  • Update triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. links to new document. (21629)
  • Update Getting Started instructions for remote server. (21625)
  • Update the “patterns” to reflect “user interface” instead. (21562)
  • Create document for contributing with triage. (21350)
  • Update triage.md to add more clarity and relevant links. (21802)

Project Management

  • Update bug report template to help identify the editor version. (21564)

Various

  • End-to-end tests:
    • Add test for template part block creation and insertion. (21849)
    • Add test that template part block customizations are loaded from slug and theme attributes. (21852)
    • Fix tests by removing unnecessary assertions and properly install dependencies in @wordpress/api-fetch. (21780)
    • Add end-to-end test for pinned sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. items. (21652)
    • Add test which verifies reusable block after refresh. (20605)
  • Update cleanForSlug() to remove additional non-word characters. (21007)
  • @wordpress/scripts:
    • Support debugging with test-unit-js. (21631, 21861)
    • Install Chromium on demand together with test-e2e script. (20215)
  • @wordpress/create-block block scaffold tool:
    • Make it easier to provide most popular CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress. options. (21751)
    • Split JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. source files into parts for ESNext template. (21750)
  • @wordpress/env development environment:
    • Expose port 3306 of MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. container. (21545)
  • @wordpress/eslint-plugin:
    • Add the recommended Prettier config to enforce WP coding styles. (21602)
    • Fix no-unused-vars-before-return JSX identifier reference. (21358)
  • Navigation block:
    • Revert changes to data fetching mechanics. (21721)
  • Bundle the block autocompleter in the block-editor package. (21534)
  • Storybook:
    • Add FormToggle component. (18085)
  • Simplify Reusable Block description. (21470)
  • Build tooling:
    • Install Composer dependencies as pre-lint step. (21537)
    • Configure Webpack to watch only build files. (21489)
    • Exit with non-zero status on docgen failed parse. (21690)

Performance Benchmark

The following benchmark compares performance for a particularly sizeable post (~36000 words, ~1000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.

Version Loading Time KeyPress event (typing)
Gutenberg 8.0 9.8s 31.4ms
Gutenberg 7.9 12.0s 36.0ms
WordPress 5.4 9.2s 29.4ms

#core-editor, #editor, #gutenberg, #gutenberg-new