MCPcopy Index your code
hub / github.com/WordPress/gutenberg

github.com/WordPress/gutenberg @v23.5.0 sqlite

repository ↗ · DeepWiki ↗ · release v23.5.0 ↗
13,991 symbols 54,853 edges 6,635 files 1,531 documented · 11%
README

Gutenberg

End-to-End Tests Static Analysis (Linting, License, Type checks...) Unit Tests Create Block

Storybook Badge

lerna

Screenshot of the Gutenberg Editor, editing a post in WordPress

Welcome to the development hub for the WordPress Gutenberg project!

"Gutenberg" is a codename for a whole new paradigm in WordPress site building and publishing that aims to revolutionize the entire publishing experience as much as Gutenberg did the printed word. Right now, the project is in the second phase of a four-phase process that will touch every piece of WordPress -- Editing, Customization, Collaboration (which includes Real-time collaboration, Asynchronous collaboration, Publishing flows, Post revisions interface, Admin design, Library), and Multilingual -- and is focused on a new editing experience, the block editor.

The block editor introduces a modular approach to pages and posts: each piece of content in the editor, from a paragraph to an image gallery to a headline, is its own block. And just like physical blocks, WordPress blocks can be added, arranged, and rearranged, allowing WordPress users to create media-rich pages in a visually intuitive way -- and without workarounds like shortcodes or custom HTML.

The block editor first became available in December 2018, and we're still hard at work refining the experience, creating more and better blocks, and laying the groundwork for the next three phases of work. The Gutenberg plugin gives you the latest version of the block editor, so you can join us in testing bleeding-edge features, start playing with blocks, and maybe get inspired to build your own.

Check out the Keeping up with Gutenberg Index.

Getting Started

Get hands-on: check out the block editor live demo to play with a test instance of the editor.

Using Gutenberg

Developing for Gutenberg

Extending and customizing is at the heart of the WordPress platform, this is no different for the Gutenberg project. The editor and future products can be extended by third-party developers using plugins.

Review the Quick Start Guide for the fastest way to get started extending the block editor. See the Block Editor Handbook for extensive tutorials, documentation, and API references. Also, check the WordPress Developer Blog for great articles about block development, among other topics.

Contribute to Gutenberg

Gutenberg is an open-source project and welcomes all contributors from code to design, and from documentation to triage. The project is built by many contributors and volunteers, and we'd love your help building it.

See the Contributors Handbook for all the details on how you can contribute.

To get up and running quickly with code contribution, see Getting Started With Code Contribution. Also check out the other resources available on the Code Contributions page.

In whichever way you wish to contribute, please be sure to read the Contributing Guidelines first.

As with all WordPress projects, we want to ensure a welcoming environment for everyone. With that in mind, all contributors are expected to follow our Code of Conduct.

Get Involved

You can join us in the #core-editor channel in Slack, see the WordPress Slack page for signup information; it is free to join.

License

WordPress is free software, and is released under the terms of the GNU General Public License version 2 or (at your option) any later version. See LICENSE.md for complete license.

Code is Poetry.

Extension points exported contracts — how you extend this code

Options (Interface)
* @typedef Options * @property {string} [activeClassName=''] Classname for active highl
packages/components/src/text/utils.ts
UltraHdrInfo (Interface)
* Information returned by getUltraHdrInfo() for a successfully probed * UltraHDR JPEG.
packages/vips/src/index.ts
PresetMetadata (Interface)
* Preset metadata for CSS variable generation
packages/global-styles-engine/src/core/render.tsx
DTCGToken (Interface)
* @see https://tr.designtokens.org/format/
packages/theme/bin/terrazzo-plugin-mode-overrides/index.ts
BaseWidgetGridSettings (Interface)
* Settings common to every grid model. Column count is resolved from * the dashboard container width (see * `utils/res
packages/widget-dashboard/src/types.ts
AugmentedReduxStore (Interface)
* Augment the Redux store with internal properties used by the data module.
packages/data/src/redux-store/index.ts
MediaPreviewContentProps (Interface)
* Props for MediaPreviewContent component.
packages/media-editor/src/components/media-preview/index.tsx
OverlayContext (Interface)
Common parameters passed to cursor/selection computation helpers.
packages/editor/src/components/collaborators-overlay/compute-selection.ts

Core symbols most depended-on inside this repo

render
called by 2482
tools/react-19/react-polyfill.js
map
called by 1865
packages/sync/src/quill-delta/Delta.ts
push
called by 1253
packages/sync/src/quill-delta/Delta.ts
get
called by 1192
packages/shortcode/src/index.ts
filter
called by 1098
packages/sync/src/quill-delta/Delta.ts
useSelect
called by 1051
packages/data/src/components/use-select/index.ts
unlock
called by 1016
packages/private-apis/src/implementation.ts
useMemo
called by 841
packages/interactivity/src/utils.ts

Shape

Function 11,393
Interface 965
Method 961
Class 660
Enum 12

Languages

TypeScript100%

Modules by API surface

packages/global-styles-ui/src/font-library/lib/lib-font.browser.js648 symbols
packages/block-editor/src/store/selectors.js98 symbols
packages/block-editor/src/store/reducer.js73 symbols
packages/block-editor/src/store/actions.js67 symbols
packages/block-editor/src/components/global-styles/dimensions-panel.js53 symbols
packages/block-editor/src/components/global-styles/typography-panel.js51 symbols
packages/core-data/src/selectors.ts50 symbols
packages/editor/src/store/selectors.js48 symbols
packages/block-editor/src/store/private-selectors.js48 symbols
packages/wp-build/lib/build.mjs46 symbols
packages/components/src/form-token-field/index.tsx43 symbols
packages/editor/src/store/actions.js40 symbols

Dependencies from manifests, versioned

composer/installers1.0 || ^2.0 · 1×
phpcsstandards/phpcsutils1.0.8 · 1×
squizlabs/php_codesniffer3.7.2 · 1×
@actions/core1.9.1 · 1×
@actions/github5.0.1 · 1×
@apidevtools/json-schema-ref-parser11.6.4 · 1×
@ariakit/react0.4.29 · 1×
@ariakit/test0.4.13 · 1×
@arraypress/waveform-player1.2.1 · 1×
@babel/core7.25.7 · 1×
@babel/eslint-parser7.28.6 · 1×

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add gutenberg \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact