-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
List block: Add migration from v1 to v2 #39799
Conversation
Size Change: +455 B (0%) Total Size: 1.22 MB
ℹ️ View Unchanged
|
64df197
to
59b4b38
Compare
59b4b38
to
6a608bf
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I found some issues with migrating blocks that have formats:
This block was created using the old list block:
<!-- wp:list -->
<ul><li>dsfdsf<ul><li>dsfdsf<ul><li>ds<strong>fdsfd</strong>s</li><li>sdfdsdsf<em>dsfds</em><ul><li><em>fdsf</em></li></ul></li></ul></li></ul></li><li>fghfgg<strong>fhgf</strong><ul><li><strong>fdgdf</strong>gdf</li></ul></li></ul>
<!-- /wp:list -->
Gets migrated to (some formats are broken):
<!-- wp:list -->
<ul><!-- wp:list-item -->
<li>dsfdsf<!-- wp:list -->
<ul><!-- wp:list-item -->
<li>dsfdsf<!-- wp:list -->
<ul><!-- wp:list-item -->
<li>ds<strong>fdsfd</strong>s</li>
<!-- /wp:list-item -->
<!-- wp:list-item -->
<li>sdfdsdsf<em>dsfds</em><!-- wp:list -->
<ul><!-- wp:list-item -->
<li><em>fdsf</em></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list --></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list --></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list --></li>
<!-- /wp:list-item -->
<!-- wp:list-item -->
<li>fghfgg<strong>fhgf</strong><!-- wp:list -->
<ul><!-- wp:list-item -->
<li><strong>fdgdf</strong>gdf</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list --></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->
For this simple block:
<!-- wp:list -->
<ul><li>1<strong>a</strong></li><li><strong>2</strong>b</li></ul>
<!-- /wp:list -->
We say it is invalid. The issue happens when we add a format that affects two list items.
This one I was not able to reproduce For the first example (the complex one), it should be fixed. |
88f64c6
to
2a2a894
Compare
@@ -76,4 +76,4 @@ const v1 = { | |||
* | |||
* See block-deprecation.md | |||
*/ | |||
export default [ v1 ]; | |||
export default [ v0 ]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's version 0? :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just a random name for the first deprecated version :P
Looks like there's an e2e test that's failing a bit too often in trunk |
Hi @youknowriad I'm noticing a small issue on the migrations:
I get this block:
Notice the added spaces. |
@jorgefilipecosta good catch Jorge, I'll take a look. |
closes #39521
What?
This PR adds a function to migrate list block v1 to list block v2 and applies this function in two places:
Why and How ?
Third-party developers can inject block in multiple ways: saved content (post, reusable blocks ...), CPT templates...
1- For the first one, we need a way to migrate from old markup to new markup, the block deprecations are here to solve that
2- For the second one, we don't have a framework API to deal with block format (attributes) migration. This PR solves that by keeping the old attributes in the block definition and running a block migration on first load (edit function).
Testing Instructions
Test also the Post CPT templates, you can do so by pasting this code in
gutenberg.php
for instance:Now, load a new post editor, you should be able to see a "full" list as a starting point.