Prototyping since 1440. Development hub for the editor focus in core.
JavaScript CSS PHP HTML Shell
Switch branches/tags
Nothing to show
Latest commit 0bf22a4 Jun 16, 2017 @mkaz mkaz committed on GitHub Merge pull request #1215 from WordPress/fix/link-escape
Fix issues with Escape key while editing link
Permalink
Failed to load latest commit information.
.storybook Documentation: Gather all Gutenberg Documentation in Storybook Jun 15, 2017
assets Add image assets for the plugin directory. (#1208) Jun 16, 2017
bin Add image assets for the plugin directory. (#1208) Jun 16, 2017
blocks Switch back to keyCode for compatibility Jun 16, 2017
components Merge branch 'master' into update/1038-freeform-block-add-more-drawer Jun 16, 2017
date WP Date: Fix JS unit tests May 25, 2017
docs Install `phpcs` using Composer (#1022) Jun 6, 2017
editor Merge pull request #1203 from WordPress/fix/1201-validate-empty Jun 16, 2017
element Documentation: Gather all Gutenberg Documentation in Storybook Jun 15, 2017
i18n Documentation: Gather all Gutenberg Documentation in Storybook Jun 15, 2017
languages Remove .pot file again (#646) May 4, 2017
lib Update block registration function docs and signature. Jun 14, 2017
phpunit Update block registration function docs and signature. Jun 14, 2017
utils Fix ENTER keycode (#1010) Jun 2, 2017
vendor Install `phpcs` using Composer (#1022) Jun 6, 2017
.babelrc Replace babel-preset-latest with babel-preset-env May 4, 2017
.editorconfig Install `phpcs` using Composer (#1022) Jun 6, 2017
.eslintignore Include vendor directory as ignored by ESLint May 19, 2017
.eslintrc.json Fix syntax on camelcase rule Jun 7, 2017
.gitignore Documentation: Adding Deploy storybook script Jun 7, 2017
.jshintignore Add .jshintignore to ignore all since eslint is employed May 25, 2017
.nvmrc Plugin: Implement block registering API (#289) Mar 22, 2017
.travis.yml Documentation: Adding Deploy storybook script Jun 7, 2017
CONTRIBUTING.md Update CONTRIBUTING.md May 13, 2017
README.md Remove Commandline docs from readme Jun 5, 2017
TESTS.md Add tests file. Mar 17, 2017
_config.yml Set theme jekyll-theme-cayman May 16, 2017
bootstrap-test.js Remove TinyMCE-based parser (#1150) Jun 14, 2017
composer.json Install `phpcs` using Composer (#1022) Jun 6, 2017
composer.lock Install `phpcs` using Composer (#1022) Jun 6, 2017
gutenberg.php Revert "Plugin: use beta with YYMMDD date format." (#1207) Jun 16, 2017
index.php Restructure PHP code into separate files (#985) Jun 5, 2017
package.json Bump rememo dependency to 1.1.1 Jun 13, 2017
phpcs.xml Do not download vendor JS files in released plugin versions (#1025) Jun 12, 2017
phpunit.xml.dist Setup server side unit tests (#617) May 10, 2017
post-content.js One block per paragraph Jun 15, 2017
webpack.config.js Remove TinyMCE-based parser (#1150) Jun 14, 2017

README.md

Gutenberg

Prototyping since 1440.

Text block

This is the development and prototyping hub for the editor focus in core. Gutenberg is the project name. Conversations and discussions take place in #core-editor in Slack. This is our 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. — Matt Mullenweg

WordPress already supports a large amount of "blocks", but doesn't surface them very well, nor does it give them much in the way of layout options. By embracing the blocky nature, we can hopefully surface the blocks that already exist, as well as attach more advanced layout options to each of them, allowing you to easily write richer posts, like this example post.

Overview

How You Can Contribute

Please see CONTRIBUTING.md.

Why

One thing that sets WordPress apart from other systems is that it allows you to create as rich a post layout as you can imagine. But only if you know HTML & CSS and build your own custom theme. By thinking of the editor as a tool to let you write rich posts, and in a few clicks create beautiful layouts, hopefully we can make people start to love WordPress, as opposed to pick it because it's what everyone else uses to blog.

Ingredients

The Block

The web is mostly a vertical flow of content, as dictated by the document markup underneath. By surfacing each section of the document as a block to manipulate, we can contextually attach features that are unique to each block. Inspired by desktop layout apps, it's a way to add a breadth of advanced features without weighing down the UI.

By showing critical UI in the body of the content, many can get their basic blogging done, with rich layouts, without ever having to see the post settings.

Advanced Formatting

When the Post Settings sidebar is open — which it is by default — you are essentially in advanced layout mode. By default you'll see all your metaboxes right there.

Every block can be inspected by clicking it. And every block has advanced layout options available in the inspector; text might have drop-cap, image might have fixed position scrolling. As such, block attributes fall in two camps — the most important ones available right on the block, advanced ones living in the sidebar inspector.