SlideShare a Scribd company logo
1 of 20
Download to read offline
The “Gutenberg”
Block Editor
WL Training Sessions
https://wordpress.org/
gutenberg/
The “Gutenberg” Block
Editor
• Goal: Make writing rich posts effortless.

• How? Treating a post as being composed of distinct pieces
of content called “blocks”. 

• Approach: 

• These pieces should be easy to insert and manipulate,
providing rich and contextual interfaces to interact with as
you craft a post.

• Easy to search and understand, and easy to dynamically
shift around the page. 
The “Gutenberg” Block
Editor : Technical
• Transition from the content blob to each piece of content
being its own “block”

• Instead of the crude mixture of custom HTML,
"shortcodes" and "embeds", every element will be a
block

• Each block has its own properties and attributes

• React.js based
Why does this matter?
• The front-end of pretty much every WordPress site up
until this moment is a template displaying content in a
relatively rigid way

• Within the next few months – the block concept will spill
outside the content area to take over the whole view.

• Keeping up-to-date and not be in denial against what the
future holds.

• New business opportunities. New learning opportunities.
What we think of as a
“WordPress theme” is
already an outdated concept!
9 priorities outlined by Matt
1. Creating a block for navigation menus.

2. Port all existing widgets to blocks.

3. Upgrade the widgets-editing areas and the Customizer to support blocks.

4. Provide a way for themes to visually register content areas, and expose them in Gutenberg.

5. Merge the site health check plugin into Core, to assist with debugging and encourage
good software hygiene.

6. Provide a way for users to opt-in to automatic plugin and theme updates.

7. Provide a way for users to opt-in to automatic updates of major Core releases.

8. Build a WordPress.org directory for discovering blocks, and a way to seamlessly install
them.

9. Form a Triage team to tackle our 6,500 open issues on Trac.
5 priorities are with Blocks
1.Creating a block for navigation menus. (BLOCK RELATED)

2.Port all existing widgets to blocks. (BLOCK RELATED)

3.Upgrade the widgets-editing areas and the Customizer to support blocks. (BLOCK RELATED)

4.Provide a way for themes to visually register content areas, and expose them in Gutenberg. <—
_______ (BLOCK RELATED)

5.Merge the site health check plugin into Core, to assist with debugging and encourage good software
hygiene.

6.Provide a way for users to opt-in to automatic plugin and theme updates.

7.Provide a way for users to opt-in to automatic updates of major Core releases.

8.Build a WordPress.org directory for discovering blocks, and a way to seamlessly install them. <—_
___ (BLOCK RELATED)

9.Form a Triage team to tackle our 6,500 open issues on Trac.
Block Design
• The primary interface for a block is the content area of the
block (“fill in the blanks” approach)

• After the user has added content, selecting the block can
reveal additional controls to adjust or edit that content.

• The Block Toolbar is a secondary place for required options
& controls. The Settings Toolbar is hidden on mobile.

• Setup states, sometimes referred to as “placeholders”, can
be used to walk users through an initial process before
showing the live preview state of the block
https://developer.wordpress.org/block-editor/designers/block-design/
Block Development
• Register

• Block edit and save
• How a block is going to be rendered within the editor,
how it will operate and be manipulated, and how it will
be saved.

• wp_enqueue your js file and use
blocks.registerBlockType
Block Development
• https://ahmadawais.com/create-guten-block-toolkit/

• hides all configuration away in an npm package
called cgb-scripts
Validation
• When the editor loads, all blocks within post content are
validated to determine their accuracy in order to protect
against content loss. 

• During editor init, the saved markup for each block is
regenerated using the attributes that were parsed from the
post’s content. 

• If the newly-generated markup does not match what was
already stored in post content, the block is marked as
invalid.

•Overwrite, Convert or Edit as HTML
Deprecated Blocks
• When updating static blocks markup and attributes, block authors
need to consider existing posts using the old versions of their
block.

• Strategies:
• Do not deprecate the block and create a new one (a different
name)

• Provide a “deprecated” version of the block allowing users
opening these in the block editor to edit them using the updated
block.

• A block can have several deprecated versions.
Templates
• A block template is defined as a list of block items. 

• Such blocks can have predefined attributes, placeholder
content, and be static or dynamic. 

• Block templates allow to specify a default initial state for
an editor session.
https://developer.wordpress.org/block-editor/developers/block-api/block-templates/
const { registerBlockType } = wp.blocks;
const { InnerBlocks } = wp.editor;
 
const BLOCKS_TEMPLATE = [
    [ 'core/image', {} ],
    [ 'core/paragraph', { placeholder: 'Image Details' } ],
];
 
registerBlockType( 'myplugin/template', {
    title: 'My Template Block',
    category: 'widgets',
    edit: ( props ) => {
•
Block Variations
• Alternative styles and functionality to existing blocks.

• They work by adding a className to the block’s wrapper.

• This className can be used to provide an alternative
styling for the block if the style variation is selected. 
Dynamic Blocks
• render_callback runs on PHP

• The possibilities are endless.
Exercise
• Writing your first block: http://bit.ly/guten-start
@WidgiLabs
• We’ve started creating Blocks using ACF Pro.

• Further exploration is needed.

• Learning React.js is mandatory, not optional :-) 

• WidgiLabs Block Directory: ?

• wpconferenceblocks.com ?
@morgadin
11.10.2019
Thanks!

More Related Content

What's hot

Building a Joomla Module
Building a Joomla ModuleBuilding a Joomla Module
Building a Joomla ModuleCory Webb
 
Bundle Splitting in Volto
Bundle Splitting in VoltoBundle Splitting in Volto
Bundle Splitting in VoltoPloneFoundation
 
Tools and Tips for Moodle Developers - #mootus16
 Tools and Tips for Moodle Developers - #mootus16 Tools and Tips for Moodle Developers - #mootus16
Tools and Tips for Moodle Developers - #mootus16Dan Poltawski
 
Knock out Introduction with samples (jsfiddle.net)
Knock out Introduction with samples (jsfiddle.net)Knock out Introduction with samples (jsfiddle.net)
Knock out Introduction with samples (jsfiddle.net)Balakrishnanan Ganesan
 
Introduction to TomatoCMS
Introduction to TomatoCMSIntroduction to TomatoCMS
Introduction to TomatoCMSPhuoc Nguyen
 
Drupal - Introduction to Building Library Web Site Using Drupal
Drupal - Introduction to Building Library Web Site Using DrupalDrupal - Introduction to Building Library Web Site Using Drupal
Drupal - Introduction to Building Library Web Site Using DrupalVibrant Technologies & Computers
 
Web browser architecture
Web browser architectureWeb browser architecture
Web browser architectureNguyen Quang
 
Sugarcoating your frontend one ViewModel at a time
Sugarcoating your frontend one ViewModel at a timeSugarcoating your frontend one ViewModel at a time
Sugarcoating your frontend one ViewModel at a timeEinar Ingebrigtsen
 
Nuxeo WebEngine: a practical introduction
Nuxeo WebEngine: a practical introductionNuxeo WebEngine: a practical introduction
Nuxeo WebEngine: a practical introductionNuxeo
 
DrupalCamp Baltics: Creating Landing Pages for Drupal 8
DrupalCamp Baltics: Creating Landing Pages for Drupal 8DrupalCamp Baltics: Creating Landing Pages for Drupal 8
DrupalCamp Baltics: Creating Landing Pages for Drupal 8Exove
 
Rapid site production with Drupal
Rapid site production with DrupalRapid site production with Drupal
Rapid site production with DrupalRob Sawyer
 
Hardware Acceleration in WebKit
Hardware Acceleration in WebKitHardware Acceleration in WebKit
Hardware Acceleration in WebKitJoone Hur
 
Drupal 8 Deep Dive: Plugin System
Drupal 8 Deep Dive: Plugin SystemDrupal 8 Deep Dive: Plugin System
Drupal 8 Deep Dive: Plugin SystemAcquia
 
20120621 creating rich, responsive display and editor
20120621 creating rich, responsive display and editor20120621 creating rich, responsive display and editor
20120621 creating rich, responsive display and editorBIWUG
 
Debugging WordPress
Debugging WordPressDebugging WordPress
Debugging WordPressMario Peshev
 
Web browser architecture.87 to 88
Web browser architecture.87 to 88Web browser architecture.87 to 88
Web browser architecture.87 to 88myrajendra
 

What's hot (20)

Building a Joomla Module
Building a Joomla ModuleBuilding a Joomla Module
Building a Joomla Module
 
Bundle Splitting in Volto
Bundle Splitting in VoltoBundle Splitting in Volto
Bundle Splitting in Volto
 
Tools and Tips for Moodle Developers - #mootus16
 Tools and Tips for Moodle Developers - #mootus16 Tools and Tips for Moodle Developers - #mootus16
Tools and Tips for Moodle Developers - #mootus16
 
Knock out Introduction with samples (jsfiddle.net)
Knock out Introduction with samples (jsfiddle.net)Knock out Introduction with samples (jsfiddle.net)
Knock out Introduction with samples (jsfiddle.net)
 
Introduction to TomatoCMS
Introduction to TomatoCMSIntroduction to TomatoCMS
Introduction to TomatoCMS
 
Drupal - Introduction to Building Library Web Site Using Drupal
Drupal - Introduction to Building Library Web Site Using DrupalDrupal - Introduction to Building Library Web Site Using Drupal
Drupal - Introduction to Building Library Web Site Using Drupal
 
Web browser architecture
Web browser architectureWeb browser architecture
Web browser architecture
 
Intro to Vue
Intro to Vue Intro to Vue
Intro to Vue
 
Sugarcoating your frontend one ViewModel at a time
Sugarcoating your frontend one ViewModel at a timeSugarcoating your frontend one ViewModel at a time
Sugarcoating your frontend one ViewModel at a time
 
Nuxeo WebEngine: a practical introduction
Nuxeo WebEngine: a practical introductionNuxeo WebEngine: a practical introduction
Nuxeo WebEngine: a practical introduction
 
DrupalCamp Baltics: Creating Landing Pages for Drupal 8
DrupalCamp Baltics: Creating Landing Pages for Drupal 8DrupalCamp Baltics: Creating Landing Pages for Drupal 8
DrupalCamp Baltics: Creating Landing Pages for Drupal 8
 
Module 4 - Dreamweaver Templates (Static vs. Dynamic Content)
Module 4 - Dreamweaver Templates (Static vs. Dynamic Content)Module 4 - Dreamweaver Templates (Static vs. Dynamic Content)
Module 4 - Dreamweaver Templates (Static vs. Dynamic Content)
 
Rapid site production with Drupal
Rapid site production with DrupalRapid site production with Drupal
Rapid site production with Drupal
 
Html5
Html5Html5
Html5
 
Hardware Acceleration in WebKit
Hardware Acceleration in WebKitHardware Acceleration in WebKit
Hardware Acceleration in WebKit
 
Drupal 8 Deep Dive: Plugin System
Drupal 8 Deep Dive: Plugin SystemDrupal 8 Deep Dive: Plugin System
Drupal 8 Deep Dive: Plugin System
 
20120621 creating rich, responsive display and editor
20120621 creating rich, responsive display and editor20120621 creating rich, responsive display and editor
20120621 creating rich, responsive display and editor
 
Debugging WordPress
Debugging WordPressDebugging WordPress
Debugging WordPress
 
Web browser architecture.87 to 88
Web browser architecture.87 to 88Web browser architecture.87 to 88
Web browser architecture.87 to 88
 
Webpack
WebpackWebpack
Webpack
 

Similar to Gutenberg (WidgiLabs Training Sessions)

Build and save your own Gutenberg Block Patterns
Build and save your own Gutenberg Block PatternsBuild and save your own Gutenberg Block Patterns
Build and save your own Gutenberg Block PatternsPlasterdog Web Design
 
Getting Started with Gutenberg Development
Getting Started with Gutenberg DevelopmentGetting Started with Gutenberg Development
Getting Started with Gutenberg DevelopmentJason Yingling
 
Blockity McBlock Blocks, Oh My!
Blockity McBlock Blocks, Oh My!Blockity McBlock Blocks, Oh My!
Blockity McBlock Blocks, Oh My!Evan Mullins
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfOrtus Solutions, Corp
 
Tech Talk Live on Share Extensibility
Tech Talk Live on Share ExtensibilityTech Talk Live on Share Extensibility
Tech Talk Live on Share ExtensibilityAlfresco Software
 
[Webinar] Discover eZ platform v2.4
[Webinar]  Discover eZ platform v2.4[Webinar]  Discover eZ platform v2.4
[Webinar] Discover eZ platform v2.4eZ Systems
 
Stupid Index Block Tricks
Stupid Index Block TricksStupid Index Block Tricks
Stupid Index Block Trickshannonhill
 
full-site-editing-theme-presentation.pptx
full-site-editing-theme-presentation.pptxfull-site-editing-theme-presentation.pptx
full-site-editing-theme-presentation.pptxPlasterdog Web Design
 
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon BaltimoreCreating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon BaltimoreSuzanne Dergacheva
 
Introduction to Gutenberg- Imran Sayed
Introduction to Gutenberg- Imran SayedIntroduction to Gutenberg- Imran Sayed
Introduction to Gutenberg- Imran SayedImran Sayed
 
Between a Block & a Hard Place
Between a Block & a Hard PlaceBetween a Block & a Hard Place
Between a Block & a Hard PlaceWP Engine
 
CUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in ShareCUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in ShareAlfresco Software
 
WordCamp Kent 2019 - WP 101: Guten.. What?
WordCamp Kent 2019 - WP 101: Guten.. What?WordCamp Kent 2019 - WP 101: Guten.. What?
WordCamp Kent 2019 - WP 101: Guten.. What?Joe Querin
 
Blisstering drupal module development ppt v1.2
Blisstering drupal module development ppt v1.2Blisstering drupal module development ppt v1.2
Blisstering drupal module development ppt v1.2Anil Sagar
 
X All The Things: Enterprise Content Management
X All The Things: Enterprise Content ManagementX All The Things: Enterprise Content Management
X All The Things: Enterprise Content ManagementPhase2
 
Untangling spring week5
Untangling spring week5Untangling spring week5
Untangling spring week5Derek Jacoby
 
Taming Drupal Blocks for Content Editors a.k.a. "Snippets"
Taming Drupal Blocks for Content Editors a.k.a. "Snippets"Taming Drupal Blocks for Content Editors a.k.a. "Snippets"
Taming Drupal Blocks for Content Editors a.k.a. "Snippets"Brian Hay
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityTeamstudio
 

Similar to Gutenberg (WidgiLabs Training Sessions) (20)

Build and save your own Gutenberg Block Patterns
Build and save your own Gutenberg Block PatternsBuild and save your own Gutenberg Block Patterns
Build and save your own Gutenberg Block Patterns
 
Getting Started with Gutenberg Development
Getting Started with Gutenberg DevelopmentGetting Started with Gutenberg Development
Getting Started with Gutenberg Development
 
Blockity McBlock Blocks, Oh My!
Blockity McBlock Blocks, Oh My!Blockity McBlock Blocks, Oh My!
Blockity McBlock Blocks, Oh My!
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
 
Tech Talk Live on Share Extensibility
Tech Talk Live on Share ExtensibilityTech Talk Live on Share Extensibility
Tech Talk Live on Share Extensibility
 
[Webinar] Discover eZ platform v2.4
[Webinar]  Discover eZ platform v2.4[Webinar]  Discover eZ platform v2.4
[Webinar] Discover eZ platform v2.4
 
Stupid Index Block Tricks
Stupid Index Block TricksStupid Index Block Tricks
Stupid Index Block Tricks
 
full-site-editing-theme-presentation.pptx
full-site-editing-theme-presentation.pptxfull-site-editing-theme-presentation.pptx
full-site-editing-theme-presentation.pptx
 
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon BaltimoreCreating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
Creating Landing Pages and Layouts for Drupal 8 - DrupalCon Baltimore
 
BackboneJS
BackboneJSBackboneJS
BackboneJS
 
Introduction to Gutenberg- Imran Sayed
Introduction to Gutenberg- Imran SayedIntroduction to Gutenberg- Imran Sayed
Introduction to Gutenberg- Imran Sayed
 
Between a Block & a Hard Place
Between a Block & a Hard PlaceBetween a Block & a Hard Place
Between a Block & a Hard Place
 
CUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in ShareCUST-2 New Client Configuration & Extension Points in Share
CUST-2 New Client Configuration & Extension Points in Share
 
WordCamp Kent 2019 - WP 101: Guten.. What?
WordCamp Kent 2019 - WP 101: Guten.. What?WordCamp Kent 2019 - WP 101: Guten.. What?
WordCamp Kent 2019 - WP 101: Guten.. What?
 
Blisstering drupal module development ppt v1.2
Blisstering drupal module development ppt v1.2Blisstering drupal module development ppt v1.2
Blisstering drupal module development ppt v1.2
 
Bootstrap [part 1]
Bootstrap [part 1]Bootstrap [part 1]
Bootstrap [part 1]
 
X All The Things: Enterprise Content Management
X All The Things: Enterprise Content ManagementX All The Things: Enterprise Content Management
X All The Things: Enterprise Content Management
 
Untangling spring week5
Untangling spring week5Untangling spring week5
Untangling spring week5
 
Taming Drupal Blocks for Content Editors a.k.a. "Snippets"
Taming Drupal Blocks for Content Editors a.k.a. "Snippets"Taming Drupal Blocks for Content Editors a.k.a. "Snippets"
Taming Drupal Blocks for Content Editors a.k.a. "Snippets"
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate Usability
 

More from Nuno Morgadinho

Democracy in PM (and operations)
Democracy in PM (and operations)Democracy in PM (and operations)
Democracy in PM (and operations)Nuno Morgadinho
 
Está na altura de renovar o site da sua empresa?
Está na altura de renovar o site da sua empresa?Está na altura de renovar o site da sua empresa?
Está na altura de renovar o site da sua empresa?Nuno Morgadinho
 
Os maiores desafios ao criar ou remodelar um website
Os maiores desafios ao criar ou remodelar um websiteOs maiores desafios ao criar ou remodelar um website
Os maiores desafios ao criar ou remodelar um websiteNuno Morgadinho
 
O Preço De Projetos WordPress
O Preço De Projetos WordPressO Preço De Projetos WordPress
O Preço De Projetos WordPressNuno Morgadinho
 
Entrepreneurship as Couple
Entrepreneurship as CoupleEntrepreneurship as Couple
Entrepreneurship as CoupleNuno Morgadinho
 
Sistemas de Controlo de Versões
Sistemas de Controlo de VersõesSistemas de Controlo de Versões
Sistemas de Controlo de VersõesNuno Morgadinho
 
De curioso a poeta – a comunidade e a cultura WordPress
De curioso a poeta – a comunidade e a cultura WordPressDe curioso a poeta – a comunidade e a cultura WordPress
De curioso a poeta – a comunidade e a cultura WordPressNuno Morgadinho
 
Distributed Multi-Threading in GNU-Prolog
Distributed Multi-Threading in GNU-PrologDistributed Multi-Threading in GNU-Prolog
Distributed Multi-Threading in GNU-PrologNuno Morgadinho
 

More from Nuno Morgadinho (10)

Democracy in PM (and operations)
Democracy in PM (and operations)Democracy in PM (and operations)
Democracy in PM (and operations)
 
Está na altura de renovar o site da sua empresa?
Está na altura de renovar o site da sua empresa?Está na altura de renovar o site da sua empresa?
Está na altura de renovar o site da sua empresa?
 
Os maiores desafios ao criar ou remodelar um website
Os maiores desafios ao criar ou remodelar um websiteOs maiores desafios ao criar ou remodelar um website
Os maiores desafios ao criar ou remodelar um website
 
O Preço De Projetos WordPress
O Preço De Projetos WordPressO Preço De Projetos WordPress
O Preço De Projetos WordPress
 
WidgiLabs in 3 minutes
WidgiLabs in 3 minutesWidgiLabs in 3 minutes
WidgiLabs in 3 minutes
 
Entrepreneurship as Couple
Entrepreneurship as CoupleEntrepreneurship as Couple
Entrepreneurship as Couple
 
iOS & Arduino
iOS & ArduinoiOS & Arduino
iOS & Arduino
 
Sistemas de Controlo de Versões
Sistemas de Controlo de VersõesSistemas de Controlo de Versões
Sistemas de Controlo de Versões
 
De curioso a poeta – a comunidade e a cultura WordPress
De curioso a poeta – a comunidade e a cultura WordPressDe curioso a poeta – a comunidade e a cultura WordPress
De curioso a poeta – a comunidade e a cultura WordPress
 
Distributed Multi-Threading in GNU-Prolog
Distributed Multi-Threading in GNU-PrologDistributed Multi-Threading in GNU-Prolog
Distributed Multi-Threading in GNU-Prolog
 

Recently uploaded

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 

Recently uploaded (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 

Gutenberg (WidgiLabs Training Sessions)

  • 3. The “Gutenberg” Block Editor • Goal: Make writing rich posts effortless. • How? Treating a post as being composed of distinct pieces of content called “blocks”. • Approach: • These pieces should be easy to insert and manipulate, providing rich and contextual interfaces to interact with as you craft a post. • Easy to search and understand, and easy to dynamically shift around the page. 
  • 4. The “Gutenberg” Block Editor : Technical • Transition from the content blob to each piece of content being its own “block” • Instead of the crude mixture of custom HTML, "shortcodes" and "embeds", every element will be a block • Each block has its own properties and attributes • React.js based
  • 5. Why does this matter? • The front-end of pretty much every WordPress site up until this moment is a template displaying content in a relatively rigid way • Within the next few months – the block concept will spill outside the content area to take over the whole view. • Keeping up-to-date and not be in denial against what the future holds. • New business opportunities. New learning opportunities.
  • 6. What we think of as a “WordPress theme” is already an outdated concept!
  • 7. 9 priorities outlined by Matt 1. Creating a block for navigation menus. 2. Port all existing widgets to blocks. 3. Upgrade the widgets-editing areas and the Customizer to support blocks. 4. Provide a way for themes to visually register content areas, and expose them in Gutenberg. 5. Merge the site health check plugin into Core, to assist with debugging and encourage good software hygiene. 6. Provide a way for users to opt-in to automatic plugin and theme updates. 7. Provide a way for users to opt-in to automatic updates of major Core releases. 8. Build a WordPress.org directory for discovering blocks, and a way to seamlessly install them. 9. Form a Triage team to tackle our 6,500 open issues on Trac.
  • 8. 5 priorities are with Blocks 1.Creating a block for navigation menus. (BLOCK RELATED) 2.Port all existing widgets to blocks. (BLOCK RELATED) 3.Upgrade the widgets-editing areas and the Customizer to support blocks. (BLOCK RELATED) 4.Provide a way for themes to visually register content areas, and expose them in Gutenberg. <— _______ (BLOCK RELATED) 5.Merge the site health check plugin into Core, to assist with debugging and encourage good software hygiene. 6.Provide a way for users to opt-in to automatic plugin and theme updates. 7.Provide a way for users to opt-in to automatic updates of major Core releases. 8.Build a WordPress.org directory for discovering blocks, and a way to seamlessly install them. <—_ ___ (BLOCK RELATED) 9.Form a Triage team to tackle our 6,500 open issues on Trac.
  • 9. Block Design • The primary interface for a block is the content area of the block (“fill in the blanks” approach) • After the user has added content, selecting the block can reveal additional controls to adjust or edit that content. • The Block Toolbar is a secondary place for required options & controls. The Settings Toolbar is hidden on mobile. • Setup states, sometimes referred to as “placeholders”, can be used to walk users through an initial process before showing the live preview state of the block https://developer.wordpress.org/block-editor/designers/block-design/
  • 10. Block Development • Register • Block edit and save • How a block is going to be rendered within the editor, how it will operate and be manipulated, and how it will be saved. • wp_enqueue your js file and use blocks.registerBlockType
  • 11. Block Development • https://ahmadawais.com/create-guten-block-toolkit/ • hides all configuration away in an npm package called cgb-scripts
  • 12. Validation • When the editor loads, all blocks within post content are validated to determine their accuracy in order to protect against content loss.  • During editor init, the saved markup for each block is regenerated using the attributes that were parsed from the post’s content.  • If the newly-generated markup does not match what was already stored in post content, the block is marked as invalid. •Overwrite, Convert or Edit as HTML
  • 13. Deprecated Blocks • When updating static blocks markup and attributes, block authors need to consider existing posts using the old versions of their block. • Strategies: • Do not deprecate the block and create a new one (a different name) • Provide a “deprecated” version of the block allowing users opening these in the block editor to edit them using the updated block. • A block can have several deprecated versions.
  • 14. Templates • A block template is defined as a list of block items. • Such blocks can have predefined attributes, placeholder content, and be static or dynamic. • Block templates allow to specify a default initial state for an editor session. https://developer.wordpress.org/block-editor/developers/block-api/block-templates/
  • 15. const { registerBlockType } = wp.blocks; const { InnerBlocks } = wp.editor;   const BLOCKS_TEMPLATE = [     [ 'core/image', {} ],     [ 'core/paragraph', { placeholder: 'Image Details' } ], ];   registerBlockType( 'myplugin/template', {     title: 'My Template Block',     category: 'widgets',     edit: ( props ) => { •
  • 16. Block Variations • Alternative styles and functionality to existing blocks. • They work by adding a className to the block’s wrapper. • This className can be used to provide an alternative styling for the block if the style variation is selected. 
  • 17. Dynamic Blocks • render_callback runs on PHP • The possibilities are endless.
  • 18. Exercise • Writing your first block: http://bit.ly/guten-start
  • 19. @WidgiLabs • We’ve started creating Blocks using ACF Pro. • Further exploration is needed. • Learning React.js is mandatory, not optional :-) • WidgiLabs Block Directory: ? • wpconferenceblocks.com ?