diff --git a/docs/faq.md b/docs/faq.md index 5f5fd2c312061c..d14bfcabf6318a 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -2,92 +2,130 @@ ## What is Gutenberg? -"Gutenberg" is the codename for the 2017 WordPress editor focus. The goal of this focus is to create a new post and page editing experience that makes it easy for anyone to create rich post layouts. This was the kickoff goal: +"Gutenberg" is the name of the project to create a new editor experience for WordPress. The goal is to create a new post and page editing experience that makes it easy for anyone to create rich post layouts. This was the kickoff goal: > The editor will endeavour to create a new page and post building experience that makes writing rich posts effortless, and has “blocks” to make it easy what today might take shortcodes, custom HTML, or “mystery meat” embed discovery. -Key take-aways from parsing that paragraph: +Key takeaways include the following points: -- Authoring richly laid out posts is a key strength of WordPress. -- By embracing blocks as an interaction paradigm we can potentially unify multiple different interfaces into one. Instead of learning how to write shortcodes, custom HTML, or paste URLs to embed, there's a common flow for inserting any kind of content that is reliable and expected. -- "Mystery meat" refers to hidden features in software, features that you have to discover. WordPress already supports a large amount of blocks and 30+ embeds, so let's surface them. +- Authoring richly laid-out posts is a key strength of WordPress. +- By embracing blocks as an interaction paradigm, we can unify multiple different interfaces into one. Instead of learning how to write shortcodes and custom HTML, or pasting URLs to embed media, there's a common, reliable flow for inserting any kind of content. +- "Mystery meat" refers to hidden features in software, features that you have to discover. WordPress already supports a large number of blocks and 30+ embeds, so let's surface them. -Gutenberg is being developed on Github, and you can try an early beta version today from the plugin repository. Though keep in mind it's not fully functional, feature complete, or production ready. +Gutenberg is being developed on GitHub under the WordPress organization, and you can try a beta version today—it's available in the plugin repository. It's important to keep in mind that Gutenberg is not yet fully functional, feature complete, or production ready. But we'd love your help to make that a reality. ## When will Gutenberg be merged into WordPress? -We are hoping that Gutenberg will be sufficiently polished, tested, iterated and proven, that it can be merged into WordPress 5.0. -The editor focus so far has taken 6 months. The first 3 months were spent designing, planning, prototyping and testing prototypes, to help us inform how to approach this. The actual plugin you can test in the repository right now has come together in the other 3 months (at the time of writing). +We are hoping that Gutenberg will be sufficiently polished, tested, iterated, and proven enough to be merged into WordPress 5.0, with an estimated release date of 2018. -We are far from done yet, but we are moving fast. Please help us by giving feedback, surfacing issues, testing, or even contributing, so hopefully we can be ready in time for WordPress 5.0. +The editor focus started in early 2017 with the first three months spent designing, planning, prototyping, and testing prototypes, to help us inform how to approach this project. The actual plugin, which you can install from the repository, was launched during WordCamp Europe in June. + +There is still plenty of work to do, but we are moving fast. New updates tend to be released on a weekly basis. Please help us by giving feedback, surfacing issues, testing, or even contributing, so we can be ready in time for WordPress 5.0. + +## What are “blocks” and why are we using them? + +The current WordPress editor is an open text window—it’s always been a wonderful blank canvas for writing, but when it comes to building posts and pages with images, multimedia, embedded content from social media, polls, and other elements, it required a mix of different approaches that were not always intuitive: + +- Media library/HTML for images, multimedia and approved files. +- Pasted links for embeds. +- `Shortcodes` for specialized assets from plugins. +- Featured images for the image at the top of a post or page. +- Excerpts for subheads. +- Widgets for content on the side of a page. + +As we thought about these uses and how to make them obvious and consistent, we began to embrace the concept of “blocks.” All of the above items could be blocks: easy to search and understand, and easy to dynamically shift around the page. The block concept is very powerful, and if designed thoughtfully, can offer an outstanding editing and publishing experience. + +## What is the writing experience like? + +Our goal with Gutenberg is not just to create a seamless post- and page-building experience. We also want to ensure that it provides a seamless writing experience. Though individual paragraphs of text will become their own “blocks,” the creation and editing of these blocks are being designed in a way that could be just as simple—if not more so—than the current WordPress editor experience. Here is a brief animation illustrating the Gutenberg writing experience: + +![Typing](https://make.wordpress.org/core/files/2017/08/typing.gif) ## Is Gutenberg built on top of TinyMCE? -No. -TinyMCE is one of the best tools for enabling rich text on the web. In Gutenberg, TinyMCE does exactly that. Nearly every textfield you'll find is augmented with TinyMCE for rich text. Whether it be text, lists, or even just a single caption, TinyMCE can be invoked on blocks for rich text enhancements. +No. TinyMCE is one of the best tools for enabling rich text on the web. In Gutenberg, TinyMCE does exactly that. Nearly every text field you'll find is augmented with TinyMCE for rich text. Whether it be text, lists, or even just a single caption, TinyMCE can be invoked on blocks for rich text enhancements. ## What browsers will Gutenberg support? Gutenberg will work in modern browsers, and Internet Explorer 11. ## How do I make my own block? -The API for creating blocks is a crucial aspect of the project. We are working on improved documentation and tutorials. Current documentation lives here: https://github.com/WordPress/gutenberg/tree/master/blocks -## Does Gutenberg involve editing posts/pages in the frontend? -No, Gutenberg is a replacement for the post and page editing screens. +The API for creating blocks is a crucial aspect of the project. We are working on improved documentation and tutorials. Check out the [Creating Block Types](http://gutenberg-devdoc.surge.sh/blocks/) section to get started. + +## Does Gutenberg involve editing posts/pages in the front-end? + +No, we are designing Gutenberg primarily as a replacement for the post and page editing screens. That said, front-end editing is often confused with an editor that looks exactly like the front end. And that is something that Gutenberg will allow as themes customize individual blocks and provide those styles to the editor. Since content is designed to be distributed across so many different experiences—from desktop and mobile to full-text feeds and syndicated article platforms—we believe it's not ideal to create or design posts from just one front-end experience. ## Given Gutenberg is built in JavaScript, how will old metaboxes (PHP) work? -We expect to have a dedicated "advanced" area at the bottom of the editor. It’s not yet implemented, we are tracking it here: https://github.com/WordPress/gutenberg/issues/952 + +We plan to continue supporting existing metaboxes while providing new ways to extend the interface. + +*See:* https://github.com/WordPress/gutenberg/pull/2804 ## How can plugins extend the Gutenberg UI? -The main extension point we want to emphasize is creating new blocks. We are still working on how to extend the rest of the UI that is build in JS. We are tracking it here: https://github.com/WordPress/gutenberg/issues/1352 + +The main extension point we want to emphasize is creating new blocks. We are still working on how to extend the rest of the UI that is built in JS. We are tracking it here: https://github.com/WordPress/gutenberg/issues/1352 ## Will Custom Post Types be supported? -Yes, for the most part. If a post type disables the content field the idea is the "advanced" section at the bottom would fill the page. + +Indeed. There are multiple ways in which custom post types can leverage Gutenberg. The plan is to allow them to specify the blocks they support, as well as defining a default block for the post type. It's not currently the case, but if a post type disables the content field, the "advanced" section at the bottom would fill the page. ## Will there be columns? -Columns are not meant to be part of the initial version since we want to focus on a solid block foundation first. As Gutenberg ties into the following customization focus, things like columns are going to be explored. -See also https://github.com/WordPress/gutenberg/issues/219 +Our primary goal is on a solid block foundation before exploring column support. + +*See:* https://github.com/WordPress/gutenberg/issues/219 ## Will there be nested blocks? -Block authors can nest components and any HTML they want inside of a block during construction. But, for the initial editor focus, we won't provide a UI for the user to include or remove blocks within blocks. This is likely to be visited as the customization focus looks at page building. + +We are currently implementing the infrastructure for nested blocks support. We expect this to open further customization opportunities. Block authors also can nest components and HTML inside of a block during construction. The UI for manipulating nested blocks is still being refined, and depending on the timing, it might not be included in the first version of Gutenberg. See also https://github.com/WordPress/gutenberg/issues/428 ## Will drag and drop be used for rearranging blocks? -A key value for Gutenberg has been to see drag and drop as an _additive enhancement_. Only when explicit actions (click or tab & space) exist, can we add drag and drop as an enhancement on top of it. -So yes, we expect drag and drop to be part of Gutenberg, even if it isn't today. +A key value for Gutenberg has been to see drag and drop as an _additive enhancement_. When explicit actions (_click_ or _tab_ + _space_) exist can we add drag and drop as an enhancement on top of it. So yes, we expect drag and drop to be part of Gutenberg, even if it isn't today. ## Can themes _style_ blocks? -Yes. -Blocks can provide their own styles, which themes can add to or override, or they can provide no styles at all, and rely fully on what the theme provides. +Yes. Blocks can provide their own styles, which themes can add to or override, or they can provide no styles at all and rely fully on what the theme provides. + +## How will block styles work in both the front-end and back-end? -## How will block styles work in the frontend and backend both? -Blocks will be able to provide base structural CSS styles, and the theme can add styles on top of this. Some blocks, like a Separator (`