SlideShare une entreprise Scribd logo
1  sur  57
Télécharger pour lire hors ligne
THE BLOB, THE CHUNK,
& THE BLOCK:
STRUCTURED CONTENT IN
THE AGE OF GUTENBERG
WO R D C A M P M I N N E A P O L I S 2 0 1 8
John Eckman • @jeckman • #wcmsp
C H U N K S V S B LO B S
John Eckman • @jeckman • #wcmsp
John Eckman • @jeckman • #wcmsp
B LO B S V S C H U N K S
• Blobs:
• Content all mashed together into a
single big field
• Mix presentation and structure
• Make reuse difficult
• Faster to create
• “Web Publishing System”

• Chunks:
• Content broken down into small,
structured components
• Separate presentation & structure
• Facilitate reuse
• Require more planning
• “Content Management System”
https://wordpress.tv/2014/01/05/john-eckman-beyond-posts-and-pages-getting-chunky-with-wordpress/
John Eckman • @jeckman • #wcmsp
John Eckman • @jeckman • #wcmsp
E N T E R G U T E N B E R G
https://en.wikipedia.org/wiki/File:Metal_movable_type.jpg
John Eckman • @jeckman • #wcmsp
John Eckman • @jeckman • #wcmsp
E N T E R G U T E N B E R G
https://en.wikipedia.org/wiki/File:Metal_movable_type.jpg
John Eckman • @jeckman • #wcmsp
https://twitter.com/jeckman/status/1021092249885659136
John Eckman • @jeckman • #wcmsp
“The Gutenberg editor uses blocks to create all types of content,
replacing a half-dozen inconsistent ways of customizing WordPress,
bringing it in line with modern coding standards, and aligning with
open web initiatives. These content blocks transform how users,
developers, and hosts interact with WordPress to make building rich
web content easier and more intuitive, democratizing publishing —
and work — for everyone, regardless of technical ability.”
E N T E R G U T E N B E R G
https://en.wikipedia.org/wiki/File:Metal_movable_type.jpg
John Eckman • @jeckman • #wcmsp
John Eckman • @jeckman • #wcmsp
A R E B LO C K S B LO B BY, O R C H U N KY ?
Photo by Bruno Martins on Unsplashhttps://unsplash.com/photos/OhJmwB4XWLE
John Eckman • @jeckman • #wcmsp
<!--	wp:heading	-->	
<h2>Verse	Block</h2>	
<!--	/wp:heading	-->	
<!--	wp:verse	-->	
<pre	class="wp-block-verse">Write	poetry	and	other	literary	
expressions	honoring	all	spaces	and	line-breaks.</pre>	
<!--	/wp:verse	-->	
<!--	wp:heading	-->	
<h2>Table	Block</h2>	
<!--	/wp:heading	-->	
<!--	wp:table	-->	
<table	class="wp-block-table">	
	 <tbody>	
	 	 <tr	style="height:45px">	
	 	 	 <td	style="height:45px">Row	1	Column	1</td>	
	 	 	 <td	style="height:45px">Row	1	Column	2</td>	
	 	 </tr>	
	 	 <tr	style="height:45px">	
	 	 	 <td	style="height:45px">Row	2	Column	1</td>	
	 	 	 <td	style="height:45px">Row	2	Column	2</td>	
	 	 </tr>	
	 	 <tr	style="height:45px">	
	 	 	 <td	style="height:45px">Row	3	Column	1</td>	
	 	 	 <td	style="height:45px">Row	3	Column	2</td>	
	 	 </tr>	
	 </tbody>	
</table>	
<!--	/wp:table	-->	
<!--	wp:heading	-->	
<h2>Separator	Block</h2>	
<!--	/wp:heading	-->	
<!--	wp:separator	-->	
https://sridharkatakam.com/dummy-content-for-gutenberg/ John Eckman • @jeckman • #wcmsp
</tr>	
	 	 <tr	style="height:45px">	
	 	 	 <td	style="height:45px">Row	3	Column	1</td>	
	 	 	 <td	style="height:45px">Row	3	Column	2</td>	
	 	 </tr>	
	 </tbody>	
</table>	
<!--	/wp:table	-->	
<!--	wp:heading	-->	
<h2>Separator	Block</h2>	
<!--	/wp:heading	-->	
<!--	wp:separator	-->	
<hr	class="wp-block-separator"	/>	
<!--	/wp:separator	-->	
<!--	wp:heading	{"className":"has-top-margin"}	-->	
<h2	class="has-top-margin">Spacer	Block</h2>	
<!--	/wp:heading	-->	
<!--	wp:spacer	-->	
<div	style="height:100px"	aria-hidden="true"	class="wp-
block-spacer"></div>	
<!--	/wp:spacer	-->	
<!--	wp:heading	-->	
<h2>Categories	Block</h2>	
<!--	/wp:heading	-->	
<!--	wp:categories	/-->	
<!--	wp:heading	-->	
<h2>Latest	Posts	Block</h2>	
<!--	/wp:heading	-->	
<!--	wp:latest-posts	/-->
https://sridharkatakam.com/dummy-content-for-gutenberg/ John Eckman • @jeckman • #wcmsp
<!--	wp:heading	-->	
<h2>Twitter	Embed	Block</h2>	
<!--	/wp:heading	-->	
<!--	wp:core-embed/twitter	{"url":"https://
twitter.com/MKBHD/status/
993606431126548481","type":"rich","providerNameSl
ug":"twitter"}	-->	
<figure	class="wp-block-embed-twitter	wp-block-
embed	is-type-rich	is-provider-twitter">	
	 https://twitter.com/MKBHD/status/
993606431126548481	
</figure>	
<!--	/wp:core-embed/twitter	-->	
<!--	wp:heading	-->	
<h2>YouTube	Embed	Block</h2>	
<!--	/wp:heading	-->	
<!--	wp:core-embed/youtube	{"url":"https://
www.youtube.com/watch?v=V-Ma40uyo-
I","type":"video","providerNameSlug":"youtube"}	
-->	
<figure	class="wp-block-embed-youtube	wp-block-
embed	is-type-video	is-provider-youtube">	
	 https://www.youtube.com/watch?v=V-Ma40uyo-I	
</figure>	
<!--	/wp:core-embed/youtube	-->	
<!--	wp:heading	-->	
<h2>Facebook	Embed	Block</h2>	
<!--	/wp:heading	-->	
<!--	wp:core-embed/facebook	{"url":"https://
www.facebook.com/groups/
macpowerusers/","providerNameSlug":"embed-
handler"}	-->	
https://sridharkatakam.com/dummy-content-for-gutenberg/ John Eckman • @jeckman • #wcmsp
993606431126548481","type":"rich","providerNameSl
ug":"twitter"}	-->	
<figure	class="wp-block-embed-twitter	wp-block-
embed	is-type-rich	is-provider-twitter">	
	 https://twitter.com/MKBHD/status/
993606431126548481	
</figure>	
<!--	/wp:core-embed/twitter	-->	
<!--	wp:heading	-->	
<h2>YouTube	Embed	Block</h2>	
<!--	/wp:heading	-->	
<!--	wp:core-embed/youtube	{"url":"https://
www.youtube.com/watch?v=V-Ma40uyo-
I","type":"video","providerNameSlug":"youtube"}	
-->	
<figure	class="wp-block-embed-youtube	wp-block-
embed	is-type-video	is-provider-youtube">	
	 https://www.youtube.com/watch?v=V-Ma40uyo-I	
</figure>	
<!--	/wp:core-embed/youtube	-->	
<!--	wp:heading	-->	
<h2>Facebook	Embed	Block</h2>	
<!--	/wp:heading	-->	
<!--	wp:core-embed/facebook	{"url":"https://
www.facebook.com/groups/
macpowerusers/","providerNameSlug":"embed-
handler"}	-->	
<figure	class="wp-block-embed-facebook	wp-block-
embed	is-provider-embed-handler">	
	 https://www.facebook.com/groups/macpowerusers/	
</figure>	
<!--	/wp:core-embed/facebook	-->	
https://sridharkatakam.com/dummy-content-for-gutenberg/ John Eckman • @jeckman • #wcmsp
John Eckman • @jeckman • #wcmsp
A R E B LO C K S B LO B BY, O R C H U N KY ?
• Blocks can have structure and can store metadata
• Blocks get stored inside the post content, in a semi-structured way
• Is a block just a chunk stored inside a blob?
• Block editing works on the structured data, reconstructs rendering
• How can we get the benefits of blocks (user experience, flexibility,
previewability) while preserving the value of structured content (reuse,
extensibility, future-proofing, presentation independence)?
• How can we transition to blocks without going all blobby?
Photo by Joanna Kosinska on Unsplash
https://unsplash.com/photos/xFTNsGW1isI
John Eckman • @jeckman • #wcmsp
John Eckman • @jeckman • #wcmsp
( H Y P OT H E T I C A L ) C AS E S T U DY
John Eckman • @jeckman • #wcmsp
( H Y P OT H E T I C A L ) C AS E S T U DY
John Eckman • @jeckman • #wcmsp
• Review
• Author
• Date
• Score / flag
• Subhead / Deck
M E TA DATA
John Eckman • @jeckman • #wcmsp
• Review
• Author
• Date
• Score / flag
• Subhead / Deck
M E TA DATA
• Album
• Artist
• Title
• Cover Image
• Label
• Release Year
John Eckman • @jeckman • #wcmsp
P R E - G U T E N B E R G , R O U N D O N E
• WYSIWYG editor in content
• Very blobby
• No real reuse
• No real consistency
• Very very fast and simple
• Blobbiest of blobs
• Don’t do this!
John Eckman • @jeckman • #wcmsp
P R E - G U T E N B E R G , R O U N D O N E
• WYSIWYG editor in content
• Very blobby
• No real reuse
• No real consistency
• Very very fast and simple
• Blobbiest of blobs
• Don’t do this!
John Eckman • @jeckman • #wcmsp
P R E - G U T E N B E R G , R O U N D O N E
• WYSIWYG editor in content
• Very blobby
• No real reuse
• No real consistency
• Very very fast and simple
• Blobbiest of blobs
• Don’t do this!
John Eckman • @jeckman • #wcmsp
P R E - G U T E N B E R G , R O U N D O N E
• WYSIWYG editor in content
• Very blobby
• No real reuse
• No real consistency
• Very very fast and simple
• Blobbiest of blobs
• Don’t do this!
John Eckman • @jeckman • #wcmsp
P R E - G U T E N B E R G , R O U N D O N E ( B )
• Shortcode to insert Album bit
• Structures the data slightly
• Use shortcode UI (shortcake)
• Still pretty blobby
• Hard to access data inside
the shortcode
• Hard to track relationship of
shortcode to posts using it
John Eckman • @jeckman • #wcmsp
P R E - G U T E N B E R G , R O U N D O N E ( B )
• Shortcode to insert Album bit
• Structures the data slightly
• Use shortcode UI (shortcake)
• Still pretty blobby
• Hard to access data inside
the shortcode
• Hard to track relationship of
shortcode to posts using it
John Eckman • @jeckman • #wcmsp
P R E - G U T E N B E R G , R O U N D O N E ( B )
• Shortcode to insert Album bit
• Structures the data slightly
• Use shortcode UI (shortcake)
• Still pretty blobby
• Hard to access data inside
the shortcode
• Hard to track relationship of
shortcode to posts using it
John Eckman • @jeckman • #wcmsp
P R E - G U T E N B E R G , R O U N D O N E ( B )
• Shortcode to insert Album bit
• Structures the data slightly
• Use shortcode UI (shortcake)
• Still pretty blobby
• Hard to access data inside
the shortcode
• Hard to track relationship of
shortcode to posts using it
John Eckman • @jeckman • #wcmsp
P R E - G U T E N B E R G , R O U N D O N E ( B )
• Shortcode to insert Album bit
• Structures the data slightly
• Use shortcode UI (shortcake)
• Still pretty blobby
• Hard to access data inside
the shortcode
• Hard to track relationship of
shortcode to posts using it
John Eckman • @jeckman • #wcmsp
P R E - G U T E N B E R G , R O U N D O N E ( B )
• Shortcode to insert Album bit
• Structures the data slightly
• Use shortcode UI (shortcake)
• Still pretty blobby
• Hard to access data inside
the shortcode
• Hard to track relationship of
shortcode to posts using it
John Eckman • @jeckman • #wcmsp
P R E - G U T E N B E R G , R O U N D O N E ( B )
• Shortcode to insert Album bit
• Structures the data slightly
• Use shortcode UI (shortcake)
• Still pretty blobby
• Hard to access data inside
the shortcode
• Hard to track relationship of
shortcode to posts using it
John Eckman • @jeckman • #wcmsp
P R E - G U T E N B E R G , R O U N D T WO
• Review CPT, with specific
post meta and taxonomy
• Template for CPT
• More consistency
(templated layout, structured
input)
• More reuse: reviews of other
albums by this artist, from
this label, in this category
become taxonomy lookups
John Eckman • @jeckman • #wcmsp
P R E - G U T E N B E R G , R O U N D T WO
• Review CPT, with specific
post meta and taxonomy
• Template for CPT
• More consistency
(templated layout, structured
input)
• More reuse: reviews of other
albums by this artist, from
this label, in this category
become taxonomy lookups
John Eckman • @jeckman • #wcmsp
P R E - G U T E N B E R G , R O U N D T WO
• Review CPT, with specific
post meta and taxonomy
• Template for CPT
• More consistency
(templated layout, structured
input)
• More reuse: reviews of other
albums by this artist, from
this label, in this category
become taxonomy lookups
John Eckman • @jeckman • #wcmsp
P R E - G U T E N B E R G , R O U N D T H R E E
• Review & Album CPTs, w/
relationship
• Artist or Label as CPT or
Taxonomy
• Enables reuse: show other
albums by this artist, other
reviews of this album
• Editing process more complex/
abstract - create album first
then the review of it
John Eckman • @jeckman • #wcmsp
ENTER GUTENBERG
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D O N E
• WYSIWYG blocks for
albums
• Editors can put it anywhere
• No real reuse
• No real consistency
• Better than the blobby old
way?
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D O N E
• WYSIWYG blocks for
albums
• Editors can put it anywhere
• No real reuse
• No real consistency
• Better than the blobby old
way?
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D O N E
• WYSIWYG blocks for
albums
• Editors can put it anywhere
• No real reuse
• No real consistency
• Better than the blobby old
way?
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D O N E
• WYSIWYG blocks for
albums
• Editors can put it anywhere
• No real reuse
• No real consistency
• Better than the blobby old
way?
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D T WO
• Reviews CPT & block template
• Consistency of layout, structure
- but not necessarily content
• Some reuse of reviews
(taxonomies on review CPT)
• But not really reuse of albums
independent of reviews
• Could set post-meta on review
that really “belongs” to album
(artist, genre)
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D T WO
• Reviews CPT & block template
• Consistency of layout, structure
- but not necessarily content
• Some reuse of reviews
(taxonomies on review CPT)
• But not really reuse of albums
independent of reviews
• Could set post-meta on review
that really “belongs” to album
(artist, genre)
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D T WO
• Reviews CPT & block template
• Consistency of layout, structure
- but not necessarily content
• Some reuse of reviews
(taxonomies on review CPT)
• But not really reuse of albums
independent of reviews
• Could set post-meta on review
that really “belongs” to album
(artist, genre)
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D T WO
• Reviews CPT & block template
• Consistency of layout, structure
- but not necessarily content
• Some reuse of reviews
(taxonomies on review CPT)
• But not really reuse of albums
independent of reviews
• Could set post-meta on review
that really “belongs” to album
(artist, genre)
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D T WO ( B )
• Albums as “reusable” / “saved”
/ “shared” blocks
• Underneath the hood, saved
blocks are just a CPT with
block content
• Not easy to see if they exist
already
• Still pretty blobby
• Weak “global” blocks
implementation
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D T WO ( B )
• Albums as “reusable” / “saved”
/ “shared” blocks
• Underneath the hood, saved
blocks are just a CPT with
block content
• Not easy to see if they exist
already
• Still pretty blobby
• Weak “global” blocks
implementation
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D T WO ( B )
• Albums as “reusable” / “saved”
/ “shared” blocks
• Underneath the hood, saved
blocks are just a CPT with
block content
• Not easy to see if they exist
already
• Still pretty blobby
• Weak “global” blocks
implementation
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D T WO ( B )
• Albums as “reusable” / “saved”
/ “shared” blocks
• Underneath the hood, saved
blocks are just a CPT with
block content
• Not easy to see if they exist
already
• Still pretty blobby
• Weak “global” blocks
implementation
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D T WO ( B )
• Albums as “reusable” / “saved”
/ “shared” blocks
• Underneath the hood, saved
blocks are just a CPT with
block content
• Not easy to see if they exist
already
• Still pretty blobby
• Weak “global” blocks
implementation
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D T WO ( B )
• Albums as “reusable” / “saved”
/ “shared” blocks
• Underneath the hood, saved
blocks are just a CPT with
block content
• Not easy to see if they exist
already
• Still pretty blobby
• Weak “global” blocks
implementation
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D T H R E E
• Reviews & Albums as CPTs, each
with Post Meta & Taxonomy
• Custom block to pulls in an
existing Album CPT into a
Review (store in post meta)
• Album CPT could still use a
block template for editing
• Set taxonomies on review based
on Album CPT pulled in?
• Decent reuse
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D T H R E E
• Reviews & Albums as CPTs, each
with Post Meta & Taxonomy
• Custom block to pulls in an
existing Album CPT into a
Review (store in post meta)
• Album CPT could still use a
block template for editing
• Set taxonomies on review based
on Album CPT pulled in?
• Decent reuse
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D T H R E E
• Reviews & Albums as CPTs, each
with Post Meta & Taxonomy
• Custom block to pulls in an
existing Album CPT into a
Review (store in post meta)
• Album CPT could still use a
block template for editing
• Set taxonomies on review based
on Album CPT pulled in?
• Decent reuse
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D T H R E E
• Reviews & Albums as CPTs, each
with Post Meta & Taxonomy
• Custom block to pulls in an
existing Album CPT into a
Review (store in post meta)
• Album CPT could still use a
block template for editing
• Set taxonomies on review based
on Album CPT pulled in?
• Decent reuse
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D T H R E E
• Reviews & Albums as CPTs, each
with Post Meta & Taxonomy
• Custom block to pulls in an
existing Album CPT into a
Review (store in post meta)
• Album CPT could still use a
block template for editing
• Set taxonomies on review based
on Album CPT pulled in?
• Decent reuse
John Eckman • @jeckman • #wcmsp
John Eckman • @jeckman • #wcmsp
G U T E N B E R G , R O U N D F O U R
• Reviews & Albums as CPTs
• If Album doesn’t exist, create inside the
editing window for the Review
• Set taxonomies and relationships on album
save - enable editing as a block but saving
to CPT
• Goal:
• Get the editing experience of a blobby
system (where you are editing in a more
wysiwyg model, with a preview of what
you will get)
• Preserve the structured content utility of
a chunky system (in terms of how data
gets stored and can be reused)
John Eckman • @jeckman • #wcmsp
W H Y C H U N K ?
• Future Proofing:
• What happens when new devices
get introduced & necessitate
different combinations of output?
• New features (e.g. link all reviews
to spotify version of album if
available)
• Consistency
• Single record for each object

• Enable Relationships:
• Show other albums by this artist
(for which we have reviews)
• Show other albums on this label or
in this category
• Show other reviews of this album
• Other Albums to which this artist
contributed?
https://wordpress.tv/2014/01/05/john-eckman-beyond-posts-and-pages-getting-chunky-with-wordpress/
John Eckman • @jeckman • #wcmsp
John Eckman • @jeckman • #wcmsp
C O N C LU S I O N S
• Block-based editing can improve experience
• Closer representation to the thing being edited
• More flexibility to move blocks within a page/post
• Block-based editing can make WP blobby
• Mixing presentation and structure in post content
• Structured blocks inside blobby post containers
• Proper content modeling and planning required
• You can still leverage many benefits of blocks
• More complex “save” events and block interfaces Photo by Markus Spiske on Unsplash
https://unsplash.com/photos/OO89_95aUC0
John Eckman • @jeckman • #wcmsp
Thank You!
Feedback Welcome: @jeckman or john.eckman@10up.com
https://wapu.us/wapuu/gutenpuu/

Contenu connexe

Plus de John Eckman

Gutenberg for Agencies
Gutenberg for AgenciesGutenberg for Agencies
Gutenberg for AgenciesJohn Eckman
 
Engaging in Digital: Sites for Non-Profits
Engaging in Digital: Sites for Non-ProfitsEngaging in Digital: Sites for Non-Profits
Engaging in Digital: Sites for Non-ProfitsJohn Eckman
 
Dear Firstname Lastname: Personalization & Content Targeting
Dear Firstname Lastname: Personalization & Content TargetingDear Firstname Lastname: Personalization & Content Targeting
Dear Firstname Lastname: Personalization & Content TargetingJohn Eckman
 
But Why? Use Cases for the REST API
But Why? Use Cases for the REST APIBut Why? Use Cases for the REST API
But Why? Use Cases for the REST APIJohn Eckman
 
WPDrama & The Four Agreements
WPDrama & The Four AgreementsWPDrama & The Four Agreements
WPDrama & The Four AgreementsJohn Eckman
 
Distributed, not Disconnected: Employee Engagement for Remote Companies
Distributed, not Disconnected: Employee Engagement for Remote CompaniesDistributed, not Disconnected: Employee Engagement for Remote Companies
Distributed, not Disconnected: Employee Engagement for Remote CompaniesJohn Eckman
 
Disrupting Distribution
Disrupting DistributionDisrupting Distribution
Disrupting DistributionJohn Eckman
 
Managing Clients without Going Crazy
Managing Clients without Going CrazyManaging Clients without Going Crazy
Managing Clients without Going CrazyJohn Eckman
 
Stop Gathering Requirements - Start Defining Success
Stop Gathering Requirements - Start Defining SuccessStop Gathering Requirements - Start Defining Success
Stop Gathering Requirements - Start Defining SuccessJohn Eckman
 
Client Diplomacy: From Adversaries to Allies
Client Diplomacy: From Adversaries to AlliesClient Diplomacy: From Adversaries to Allies
Client Diplomacy: From Adversaries to AlliesJohn Eckman
 
WordPress as a CMS Platform: Gilbane 2015
WordPress as a CMS Platform: Gilbane 2015WordPress as a CMS Platform: Gilbane 2015
WordPress as a CMS Platform: Gilbane 2015John Eckman
 
WordPress and the Enterprise Disconnect
WordPress and the Enterprise DisconnectWordPress and the Enterprise Disconnect
WordPress and the Enterprise DisconnectJohn Eckman
 
The Future of WordPress (and Your Role In It)
The Future of WordPress (and Your Role In It)The Future of WordPress (and Your Role In It)
The Future of WordPress (and Your Role In It)John Eckman
 
Design From the Content Out
Design From the Content OutDesign From the Content Out
Design From the Content OutJohn Eckman
 
Design From the Content Out
Design From the Content OutDesign From the Content Out
Design From the Content OutJohn Eckman
 
Outside the WordPress Bubble
Outside the WordPress BubbleOutside the WordPress Bubble
Outside the WordPress BubbleJohn Eckman
 
Enterprise Video the Easy Way: Previewing the Brightcove Connector for WordPress
Enterprise Video the Easy Way: Previewing the Brightcove Connector for WordPressEnterprise Video the Easy Way: Previewing the Brightcove Connector for WordPress
Enterprise Video the Easy Way: Previewing the Brightcove Connector for WordPressJohn Eckman
 
Building Community, Building Software
Building Community, Building SoftwareBuilding Community, Building Software
Building Community, Building SoftwareJohn Eckman
 
WordPress and the Enterprise Disconnect
WordPress and the Enterprise DisconnectWordPress and the Enterprise Disconnect
WordPress and the Enterprise DisconnectJohn Eckman
 
Engineering Influence: Talking to Developers about Content
Engineering Influence: Talking to Developers about ContentEngineering Influence: Talking to Developers about Content
Engineering Influence: Talking to Developers about ContentJohn Eckman
 

Plus de John Eckman (20)

Gutenberg for Agencies
Gutenberg for AgenciesGutenberg for Agencies
Gutenberg for Agencies
 
Engaging in Digital: Sites for Non-Profits
Engaging in Digital: Sites for Non-ProfitsEngaging in Digital: Sites for Non-Profits
Engaging in Digital: Sites for Non-Profits
 
Dear Firstname Lastname: Personalization & Content Targeting
Dear Firstname Lastname: Personalization & Content TargetingDear Firstname Lastname: Personalization & Content Targeting
Dear Firstname Lastname: Personalization & Content Targeting
 
But Why? Use Cases for the REST API
But Why? Use Cases for the REST APIBut Why? Use Cases for the REST API
But Why? Use Cases for the REST API
 
WPDrama & The Four Agreements
WPDrama & The Four AgreementsWPDrama & The Four Agreements
WPDrama & The Four Agreements
 
Distributed, not Disconnected: Employee Engagement for Remote Companies
Distributed, not Disconnected: Employee Engagement for Remote CompaniesDistributed, not Disconnected: Employee Engagement for Remote Companies
Distributed, not Disconnected: Employee Engagement for Remote Companies
 
Disrupting Distribution
Disrupting DistributionDisrupting Distribution
Disrupting Distribution
 
Managing Clients without Going Crazy
Managing Clients without Going CrazyManaging Clients without Going Crazy
Managing Clients without Going Crazy
 
Stop Gathering Requirements - Start Defining Success
Stop Gathering Requirements - Start Defining SuccessStop Gathering Requirements - Start Defining Success
Stop Gathering Requirements - Start Defining Success
 
Client Diplomacy: From Adversaries to Allies
Client Diplomacy: From Adversaries to AlliesClient Diplomacy: From Adversaries to Allies
Client Diplomacy: From Adversaries to Allies
 
WordPress as a CMS Platform: Gilbane 2015
WordPress as a CMS Platform: Gilbane 2015WordPress as a CMS Platform: Gilbane 2015
WordPress as a CMS Platform: Gilbane 2015
 
WordPress and the Enterprise Disconnect
WordPress and the Enterprise DisconnectWordPress and the Enterprise Disconnect
WordPress and the Enterprise Disconnect
 
The Future of WordPress (and Your Role In It)
The Future of WordPress (and Your Role In It)The Future of WordPress (and Your Role In It)
The Future of WordPress (and Your Role In It)
 
Design From the Content Out
Design From the Content OutDesign From the Content Out
Design From the Content Out
 
Design From the Content Out
Design From the Content OutDesign From the Content Out
Design From the Content Out
 
Outside the WordPress Bubble
Outside the WordPress BubbleOutside the WordPress Bubble
Outside the WordPress Bubble
 
Enterprise Video the Easy Way: Previewing the Brightcove Connector for WordPress
Enterprise Video the Easy Way: Previewing the Brightcove Connector for WordPressEnterprise Video the Easy Way: Previewing the Brightcove Connector for WordPress
Enterprise Video the Easy Way: Previewing the Brightcove Connector for WordPress
 
Building Community, Building Software
Building Community, Building SoftwareBuilding Community, Building Software
Building Community, Building Software
 
WordPress and the Enterprise Disconnect
WordPress and the Enterprise DisconnectWordPress and the Enterprise Disconnect
WordPress and the Enterprise Disconnect
 
Engineering Influence: Talking to Developers about Content
Engineering Influence: Talking to Developers about ContentEngineering Influence: Talking to Developers about Content
Engineering Influence: Talking to Developers about Content
 

Dernier

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
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
 

Dernier (20)

E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
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?
 

The Blob, the Chunk, & the Block: Structured Content in the Age of Gutenberg

  • 1. THE BLOB, THE CHUNK, & THE BLOCK: STRUCTURED CONTENT IN THE AGE OF GUTENBERG WO R D C A M P M I N N E A P O L I S 2 0 1 8
  • 2. John Eckman • @jeckman • #wcmsp C H U N K S V S B LO B S John Eckman • @jeckman • #wcmsp
  • 3. John Eckman • @jeckman • #wcmsp B LO B S V S C H U N K S • Blobs: • Content all mashed together into a single big field • Mix presentation and structure • Make reuse difficult • Faster to create • “Web Publishing System”
 • Chunks: • Content broken down into small, structured components • Separate presentation & structure • Facilitate reuse • Require more planning • “Content Management System” https://wordpress.tv/2014/01/05/john-eckman-beyond-posts-and-pages-getting-chunky-with-wordpress/ John Eckman • @jeckman • #wcmsp
  • 4. John Eckman • @jeckman • #wcmsp E N T E R G U T E N B E R G https://en.wikipedia.org/wiki/File:Metal_movable_type.jpg John Eckman • @jeckman • #wcmsp
  • 5. John Eckman • @jeckman • #wcmsp E N T E R G U T E N B E R G https://en.wikipedia.org/wiki/File:Metal_movable_type.jpg John Eckman • @jeckman • #wcmsp https://twitter.com/jeckman/status/1021092249885659136
  • 6. John Eckman • @jeckman • #wcmsp “The Gutenberg editor uses blocks to create all types of content, replacing a half-dozen inconsistent ways of customizing WordPress, bringing it in line with modern coding standards, and aligning with open web initiatives. These content blocks transform how users, developers, and hosts interact with WordPress to make building rich web content easier and more intuitive, democratizing publishing — and work — for everyone, regardless of technical ability.” E N T E R G U T E N B E R G https://en.wikipedia.org/wiki/File:Metal_movable_type.jpg John Eckman • @jeckman • #wcmsp
  • 7. John Eckman • @jeckman • #wcmsp A R E B LO C K S B LO B BY, O R C H U N KY ? Photo by Bruno Martins on Unsplashhttps://unsplash.com/photos/OhJmwB4XWLE John Eckman • @jeckman • #wcmsp
  • 8. <!-- wp:heading --> <h2>Verse Block</h2> <!-- /wp:heading --> <!-- wp:verse --> <pre class="wp-block-verse">Write poetry and other literary expressions honoring all spaces and line-breaks.</pre> <!-- /wp:verse --> <!-- wp:heading --> <h2>Table Block</h2> <!-- /wp:heading --> <!-- wp:table --> <table class="wp-block-table"> <tbody> <tr style="height:45px"> <td style="height:45px">Row 1 Column 1</td> <td style="height:45px">Row 1 Column 2</td> </tr> <tr style="height:45px"> <td style="height:45px">Row 2 Column 1</td> <td style="height:45px">Row 2 Column 2</td> </tr> <tr style="height:45px"> <td style="height:45px">Row 3 Column 1</td> <td style="height:45px">Row 3 Column 2</td> </tr> </tbody> </table> <!-- /wp:table --> <!-- wp:heading --> <h2>Separator Block</h2> <!-- /wp:heading --> <!-- wp:separator --> https://sridharkatakam.com/dummy-content-for-gutenberg/ John Eckman • @jeckman • #wcmsp
  • 9. </tr> <tr style="height:45px"> <td style="height:45px">Row 3 Column 1</td> <td style="height:45px">Row 3 Column 2</td> </tr> </tbody> </table> <!-- /wp:table --> <!-- wp:heading --> <h2>Separator Block</h2> <!-- /wp:heading --> <!-- wp:separator --> <hr class="wp-block-separator" /> <!-- /wp:separator --> <!-- wp:heading {"className":"has-top-margin"} --> <h2 class="has-top-margin">Spacer Block</h2> <!-- /wp:heading --> <!-- wp:spacer --> <div style="height:100px" aria-hidden="true" class="wp- block-spacer"></div> <!-- /wp:spacer --> <!-- wp:heading --> <h2>Categories Block</h2> <!-- /wp:heading --> <!-- wp:categories /--> <!-- wp:heading --> <h2>Latest Posts Block</h2> <!-- /wp:heading --> <!-- wp:latest-posts /--> https://sridharkatakam.com/dummy-content-for-gutenberg/ John Eckman • @jeckman • #wcmsp
  • 10. <!-- wp:heading --> <h2>Twitter Embed Block</h2> <!-- /wp:heading --> <!-- wp:core-embed/twitter {"url":"https:// twitter.com/MKBHD/status/ 993606431126548481","type":"rich","providerNameSl ug":"twitter"} --> <figure class="wp-block-embed-twitter wp-block- embed is-type-rich is-provider-twitter"> https://twitter.com/MKBHD/status/ 993606431126548481 </figure> <!-- /wp:core-embed/twitter --> <!-- wp:heading --> <h2>YouTube Embed Block</h2> <!-- /wp:heading --> <!-- wp:core-embed/youtube {"url":"https:// www.youtube.com/watch?v=V-Ma40uyo- I","type":"video","providerNameSlug":"youtube"} --> <figure class="wp-block-embed-youtube wp-block- embed is-type-video is-provider-youtube"> https://www.youtube.com/watch?v=V-Ma40uyo-I </figure> <!-- /wp:core-embed/youtube --> <!-- wp:heading --> <h2>Facebook Embed Block</h2> <!-- /wp:heading --> <!-- wp:core-embed/facebook {"url":"https:// www.facebook.com/groups/ macpowerusers/","providerNameSlug":"embed- handler"} --> https://sridharkatakam.com/dummy-content-for-gutenberg/ John Eckman • @jeckman • #wcmsp
  • 11. 993606431126548481","type":"rich","providerNameSl ug":"twitter"} --> <figure class="wp-block-embed-twitter wp-block- embed is-type-rich is-provider-twitter"> https://twitter.com/MKBHD/status/ 993606431126548481 </figure> <!-- /wp:core-embed/twitter --> <!-- wp:heading --> <h2>YouTube Embed Block</h2> <!-- /wp:heading --> <!-- wp:core-embed/youtube {"url":"https:// www.youtube.com/watch?v=V-Ma40uyo- I","type":"video","providerNameSlug":"youtube"} --> <figure class="wp-block-embed-youtube wp-block- embed is-type-video is-provider-youtube"> https://www.youtube.com/watch?v=V-Ma40uyo-I </figure> <!-- /wp:core-embed/youtube --> <!-- wp:heading --> <h2>Facebook Embed Block</h2> <!-- /wp:heading --> <!-- wp:core-embed/facebook {"url":"https:// www.facebook.com/groups/ macpowerusers/","providerNameSlug":"embed- handler"} --> <figure class="wp-block-embed-facebook wp-block- embed is-provider-embed-handler"> https://www.facebook.com/groups/macpowerusers/ </figure> <!-- /wp:core-embed/facebook --> https://sridharkatakam.com/dummy-content-for-gutenberg/ John Eckman • @jeckman • #wcmsp
  • 12. John Eckman • @jeckman • #wcmsp A R E B LO C K S B LO B BY, O R C H U N KY ? • Blocks can have structure and can store metadata • Blocks get stored inside the post content, in a semi-structured way • Is a block just a chunk stored inside a blob? • Block editing works on the structured data, reconstructs rendering • How can we get the benefits of blocks (user experience, flexibility, previewability) while preserving the value of structured content (reuse, extensibility, future-proofing, presentation independence)? • How can we transition to blocks without going all blobby? Photo by Joanna Kosinska on Unsplash https://unsplash.com/photos/xFTNsGW1isI John Eckman • @jeckman • #wcmsp
  • 13. John Eckman • @jeckman • #wcmsp ( H Y P OT H E T I C A L ) C AS E S T U DY
  • 14. John Eckman • @jeckman • #wcmsp ( H Y P OT H E T I C A L ) C AS E S T U DY
  • 15. John Eckman • @jeckman • #wcmsp • Review • Author • Date • Score / flag • Subhead / Deck M E TA DATA
  • 16. John Eckman • @jeckman • #wcmsp • Review • Author • Date • Score / flag • Subhead / Deck M E TA DATA • Album • Artist • Title • Cover Image • Label • Release Year
  • 17. John Eckman • @jeckman • #wcmsp P R E - G U T E N B E R G , R O U N D O N E • WYSIWYG editor in content • Very blobby • No real reuse • No real consistency • Very very fast and simple • Blobbiest of blobs • Don’t do this!
  • 18. John Eckman • @jeckman • #wcmsp P R E - G U T E N B E R G , R O U N D O N E • WYSIWYG editor in content • Very blobby • No real reuse • No real consistency • Very very fast and simple • Blobbiest of blobs • Don’t do this!
  • 19. John Eckman • @jeckman • #wcmsp P R E - G U T E N B E R G , R O U N D O N E • WYSIWYG editor in content • Very blobby • No real reuse • No real consistency • Very very fast and simple • Blobbiest of blobs • Don’t do this!
  • 20. John Eckman • @jeckman • #wcmsp P R E - G U T E N B E R G , R O U N D O N E • WYSIWYG editor in content • Very blobby • No real reuse • No real consistency • Very very fast and simple • Blobbiest of blobs • Don’t do this!
  • 21. John Eckman • @jeckman • #wcmsp P R E - G U T E N B E R G , R O U N D O N E ( B ) • Shortcode to insert Album bit • Structures the data slightly • Use shortcode UI (shortcake) • Still pretty blobby • Hard to access data inside the shortcode • Hard to track relationship of shortcode to posts using it
  • 22. John Eckman • @jeckman • #wcmsp P R E - G U T E N B E R G , R O U N D O N E ( B ) • Shortcode to insert Album bit • Structures the data slightly • Use shortcode UI (shortcake) • Still pretty blobby • Hard to access data inside the shortcode • Hard to track relationship of shortcode to posts using it
  • 23. John Eckman • @jeckman • #wcmsp P R E - G U T E N B E R G , R O U N D O N E ( B ) • Shortcode to insert Album bit • Structures the data slightly • Use shortcode UI (shortcake) • Still pretty blobby • Hard to access data inside the shortcode • Hard to track relationship of shortcode to posts using it
  • 24. John Eckman • @jeckman • #wcmsp P R E - G U T E N B E R G , R O U N D O N E ( B ) • Shortcode to insert Album bit • Structures the data slightly • Use shortcode UI (shortcake) • Still pretty blobby • Hard to access data inside the shortcode • Hard to track relationship of shortcode to posts using it
  • 25. John Eckman • @jeckman • #wcmsp P R E - G U T E N B E R G , R O U N D O N E ( B ) • Shortcode to insert Album bit • Structures the data slightly • Use shortcode UI (shortcake) • Still pretty blobby • Hard to access data inside the shortcode • Hard to track relationship of shortcode to posts using it
  • 26. John Eckman • @jeckman • #wcmsp P R E - G U T E N B E R G , R O U N D O N E ( B ) • Shortcode to insert Album bit • Structures the data slightly • Use shortcode UI (shortcake) • Still pretty blobby • Hard to access data inside the shortcode • Hard to track relationship of shortcode to posts using it
  • 27. John Eckman • @jeckman • #wcmsp P R E - G U T E N B E R G , R O U N D O N E ( B ) • Shortcode to insert Album bit • Structures the data slightly • Use shortcode UI (shortcake) • Still pretty blobby • Hard to access data inside the shortcode • Hard to track relationship of shortcode to posts using it
  • 28. John Eckman • @jeckman • #wcmsp P R E - G U T E N B E R G , R O U N D T WO • Review CPT, with specific post meta and taxonomy • Template for CPT • More consistency (templated layout, structured input) • More reuse: reviews of other albums by this artist, from this label, in this category become taxonomy lookups
  • 29. John Eckman • @jeckman • #wcmsp P R E - G U T E N B E R G , R O U N D T WO • Review CPT, with specific post meta and taxonomy • Template for CPT • More consistency (templated layout, structured input) • More reuse: reviews of other albums by this artist, from this label, in this category become taxonomy lookups
  • 30. John Eckman • @jeckman • #wcmsp P R E - G U T E N B E R G , R O U N D T WO • Review CPT, with specific post meta and taxonomy • Template for CPT • More consistency (templated layout, structured input) • More reuse: reviews of other albums by this artist, from this label, in this category become taxonomy lookups
  • 31. John Eckman • @jeckman • #wcmsp P R E - G U T E N B E R G , R O U N D T H R E E • Review & Album CPTs, w/ relationship • Artist or Label as CPT or Taxonomy • Enables reuse: show other albums by this artist, other reviews of this album • Editing process more complex/ abstract - create album first then the review of it
  • 32. John Eckman • @jeckman • #wcmsp ENTER GUTENBERG
  • 33. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D O N E • WYSIWYG blocks for albums • Editors can put it anywhere • No real reuse • No real consistency • Better than the blobby old way?
  • 34. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D O N E • WYSIWYG blocks for albums • Editors can put it anywhere • No real reuse • No real consistency • Better than the blobby old way?
  • 35. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D O N E • WYSIWYG blocks for albums • Editors can put it anywhere • No real reuse • No real consistency • Better than the blobby old way?
  • 36. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D O N E • WYSIWYG blocks for albums • Editors can put it anywhere • No real reuse • No real consistency • Better than the blobby old way?
  • 37. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D T WO • Reviews CPT & block template • Consistency of layout, structure - but not necessarily content • Some reuse of reviews (taxonomies on review CPT) • But not really reuse of albums independent of reviews • Could set post-meta on review that really “belongs” to album (artist, genre)
  • 38. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D T WO • Reviews CPT & block template • Consistency of layout, structure - but not necessarily content • Some reuse of reviews (taxonomies on review CPT) • But not really reuse of albums independent of reviews • Could set post-meta on review that really “belongs” to album (artist, genre)
  • 39. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D T WO • Reviews CPT & block template • Consistency of layout, structure - but not necessarily content • Some reuse of reviews (taxonomies on review CPT) • But not really reuse of albums independent of reviews • Could set post-meta on review that really “belongs” to album (artist, genre)
  • 40. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D T WO • Reviews CPT & block template • Consistency of layout, structure - but not necessarily content • Some reuse of reviews (taxonomies on review CPT) • But not really reuse of albums independent of reviews • Could set post-meta on review that really “belongs” to album (artist, genre)
  • 41. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D T WO ( B ) • Albums as “reusable” / “saved” / “shared” blocks • Underneath the hood, saved blocks are just a CPT with block content • Not easy to see if they exist already • Still pretty blobby • Weak “global” blocks implementation
  • 42. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D T WO ( B ) • Albums as “reusable” / “saved” / “shared” blocks • Underneath the hood, saved blocks are just a CPT with block content • Not easy to see if they exist already • Still pretty blobby • Weak “global” blocks implementation
  • 43. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D T WO ( B ) • Albums as “reusable” / “saved” / “shared” blocks • Underneath the hood, saved blocks are just a CPT with block content • Not easy to see if they exist already • Still pretty blobby • Weak “global” blocks implementation
  • 44. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D T WO ( B ) • Albums as “reusable” / “saved” / “shared” blocks • Underneath the hood, saved blocks are just a CPT with block content • Not easy to see if they exist already • Still pretty blobby • Weak “global” blocks implementation
  • 45. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D T WO ( B ) • Albums as “reusable” / “saved” / “shared” blocks • Underneath the hood, saved blocks are just a CPT with block content • Not easy to see if they exist already • Still pretty blobby • Weak “global” blocks implementation
  • 46. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D T WO ( B ) • Albums as “reusable” / “saved” / “shared” blocks • Underneath the hood, saved blocks are just a CPT with block content • Not easy to see if they exist already • Still pretty blobby • Weak “global” blocks implementation
  • 47. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D T H R E E • Reviews & Albums as CPTs, each with Post Meta & Taxonomy • Custom block to pulls in an existing Album CPT into a Review (store in post meta) • Album CPT could still use a block template for editing • Set taxonomies on review based on Album CPT pulled in? • Decent reuse
  • 48. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D T H R E E • Reviews & Albums as CPTs, each with Post Meta & Taxonomy • Custom block to pulls in an existing Album CPT into a Review (store in post meta) • Album CPT could still use a block template for editing • Set taxonomies on review based on Album CPT pulled in? • Decent reuse
  • 49. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D T H R E E • Reviews & Albums as CPTs, each with Post Meta & Taxonomy • Custom block to pulls in an existing Album CPT into a Review (store in post meta) • Album CPT could still use a block template for editing • Set taxonomies on review based on Album CPT pulled in? • Decent reuse
  • 50. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D T H R E E • Reviews & Albums as CPTs, each with Post Meta & Taxonomy • Custom block to pulls in an existing Album CPT into a Review (store in post meta) • Album CPT could still use a block template for editing • Set taxonomies on review based on Album CPT pulled in? • Decent reuse
  • 51. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D T H R E E • Reviews & Albums as CPTs, each with Post Meta & Taxonomy • Custom block to pulls in an existing Album CPT into a Review (store in post meta) • Album CPT could still use a block template for editing • Set taxonomies on review based on Album CPT pulled in? • Decent reuse
  • 53. John Eckman • @jeckman • #wcmsp G U T E N B E R G , R O U N D F O U R • Reviews & Albums as CPTs • If Album doesn’t exist, create inside the editing window for the Review • Set taxonomies and relationships on album save - enable editing as a block but saving to CPT • Goal: • Get the editing experience of a blobby system (where you are editing in a more wysiwyg model, with a preview of what you will get) • Preserve the structured content utility of a chunky system (in terms of how data gets stored and can be reused)
  • 54. John Eckman • @jeckman • #wcmsp W H Y C H U N K ? • Future Proofing: • What happens when new devices get introduced & necessitate different combinations of output? • New features (e.g. link all reviews to spotify version of album if available) • Consistency • Single record for each object
 • Enable Relationships: • Show other albums by this artist (for which we have reviews) • Show other albums on this label or in this category • Show other reviews of this album • Other Albums to which this artist contributed? https://wordpress.tv/2014/01/05/john-eckman-beyond-posts-and-pages-getting-chunky-with-wordpress/ John Eckman • @jeckman • #wcmsp
  • 55. John Eckman • @jeckman • #wcmsp C O N C LU S I O N S • Block-based editing can improve experience • Closer representation to the thing being edited • More flexibility to move blocks within a page/post • Block-based editing can make WP blobby • Mixing presentation and structure in post content • Structured blocks inside blobby post containers • Proper content modeling and planning required • You can still leverage many benefits of blocks • More complex “save” events and block interfaces Photo by Markus Spiske on Unsplash https://unsplash.com/photos/OO89_95aUC0
  • 56.
  • 57. John Eckman • @jeckman • #wcmsp Thank You! Feedback Welcome: @jeckman or john.eckman@10up.com https://wapu.us/wapuu/gutenpuu/