What’s new in Gutenberg? (25th January)

This release iterates further on some design and writing flow details — lighter up/down movers, engaging the UIUI User interface-less focus mode more often, etc. It also brings many extensibility 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. improvements, exposing internal editor state through selectors, enhancements to the 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.-box handling, and implements the "Copy All" button as if it was a 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 as an example of how to leverage native 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..

2.1 🦔

  • Iterate on the design of up/down arrows and how focus is managed. This seeks to further reduce the visual and cognitive weight of the up/down movers.
  • Show immediate visual feedback when dragging and dropping images into the editor. (Expands on the previous release work.)
  • Expose state through data module using selectors. This is an important piece of the extensibility puzzle.
  • New button outline and focus styles.
  • Show original block icon after converting to reusable 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.. Also hides the generic reusable block from inserters. This moves data logic out of the inserter.
  • Introduce a migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. function for block versioning.
  • Add HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. handler to dropzone. Allows drag and dropping images from other web pages directly.
  • Trigger typing mode when ENTER or BACKSPACE are pressed. This improves the writing flow but engaging the UI-less mode more frequently.

Other changes:

  • Added ability to align the text content of a cover image to the right, left, or center of the image.
  • Refactor CopyContentButton as a core extension to illustrate how to add functionality to the editor outside of blocks.
  • Allow collapsing/sorting meta-boxes panels.
  • Remove dirty-checking from meta-boxes state, fixes issues with default values and updating certain text fields.
  • Defer registration of all core blocks until editor loads. Improves ability to hook into registerBlockType.
  • Only trigger select block action when block is unselected.
  • Try new markup for Galleries using lists.
  • New: trying a Subheading block.
  • Reduce sibling inserter initial height.
  • Force an update when a new 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. is added or removed while using withFilters higher-order component. This improves the rendering flow of filters.
  • Refactor the MediaUploadButton to be agnostic to its rendered UI.
  • Change "size" label to "level" in Heading block settings.
  • Remove breaking spaces logic on List block.
  • Update progress button color state based on theme used.
  • Update Video block description.
  • Refactor the multi-selection behavior to dispatch the multi-selection start action only after the cursor begins to move after a mousedown event.
  • Avoid persisting mobile and publish sidebars.
  • Move drag handling to instance-bound handler.
  • Remove "Open in new window" link option.
  • Use username slug instead of name and remove ephemeral link from it.
  • Ensure isLoading set to false after request error.
  • Allow copying individual text from a block that is not purely text without copying the whole block.
  • Match consistency of tooltip text with Classic Editor.
  • Fix issue with Lists having additional lines when used in a reusable block.
  • Fix errors when adding duplicate tags.
  • Fix inconsistency with applyOrUnset().
  • Fix incorrect display when loading a saved block with no content.
  • Fix issue where black rectangle would briefly blink on new paragraphs.
  • Fix cursor jumps in link-editing dialog.
  • Fix post content validation.
  • Fix scrolling issues around nav menus.
  • Remove Vine embed support as it's no longer supported.
  • Ensure editor still exists after timeout.
  • Add regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. check for block edit interface using snapshots.
  • Add missing alt attributes to image (and gallery) blocks when alt returns an empty value.
  • Better build tools with Docker.
  • Register 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/ scripts & styles before enqueuing.
  • Force wp-api.js to use HTTP/1.0 for better compatibility.
  • Avoid the deprecated (from 5.0 to 5.2) is_a() function.
  • Remove unused dependency.
  • Update contributing instructions with steps.
  • Consistency cleanup in doc return statements.
  • Include how to assign a template to a default Post Type in the documentation. Also add more context to the code.
  • Improve incremental development build performance by only minimizing -rtl files for production builds.
  • More JSDoc fixes.
  • Remove warning from plugin 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..
  • Add new page explaining how to create a block using WP-CLI.
  • Add security reporting instructions.
  • Improve useOnce documentation.
  • Bump copyright year to 2018 in license.md.
  • Disable Travis 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". builds except for master.

What's next?

As we approach the final stages of features, we are looking at finalizing the nested blocks interface (with its own Columns component), some remaining important extensibility hooks for plugins, and adding drag-drop functionality for moving and inserting blocks. ⛰

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