Skip to content
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

[Patterns]: Featured patterns from pattern directory #35115

Merged
merged 4 commits into from Oct 11, 2021

Conversation

@ntsekouras
Copy link
Contributor

@ntsekouras ntsekouras commented Sep 24, 2021

This PR is just a quick POC for fetching and showing featured patterns from patterns directory.

Resolves: #33046

Testing instructions

  1. in the main inserter go to patterns tabs and check the first shown category (featured) with patterns from the directory.

Notes

  1. The first pattern that is fetched right now is trying to fetch a non existing image - check the browser console when you are previewing the patterns in the inserter. This means that the validation of patterns submitted in the directory should be checked so as to avoid such issues..
@github-actions
Copy link

@github-actions github-actions bot commented Sep 24, 2021

Size Change: +856 B (0%)

Total Size: 1.07 MB

Filename Size Change
build/block-directory/index.min.js 6.2 kB +4 B (0%)
build/block-editor/index.min.js 134 kB +323 B (0%)
build/block-editor/style-rtl.css 13.9 kB +64 B (0%)
build/block-editor/style.css 13.9 kB +64 B (0%)
build/block-library/blocks/gallery/style-rtl.css 1.6 kB +1 B (0%)
build/block-library/blocks/gallery/style.css 1.59 kB -1 B (0%)
build/block-library/blocks/post-content/editor-rtl.css 0 B -138 B (removed) 🏆
build/block-library/blocks/post-content/editor.css 0 B -138 B (removed) 🏆
build/block-library/blocks/post-featured-image/style-rtl.css 146 B +3 B (+2%)
build/block-library/blocks/post-featured-image/style.css 146 B +3 B (+2%)
build/block-library/editor-rtl.css 9.72 kB -39 B (0%)
build/block-library/editor.css 9.71 kB -38 B (0%)
build/block-library/index.min.js 147 kB -36 B (0%)
build/block-library/style-rtl.css 10.4 kB +6 B (0%)
build/block-library/style.css 10.4 kB +5 B (0%)
build/components/index.min.js 214 kB +69 B (0%)
build/components/style-rtl.css 15.9 kB -3 B (0%)
build/components/style.css 15.9 kB -2 B (0%)
build/customize-widgets/index.min.js 11.2 kB +77 B (+1%)
build/edit-navigation/index.min.js 15.3 kB +11 B (0%)
build/edit-post/index.min.js 29.2 kB +12 B (0%)
build/edit-site/index.min.js 29 kB +234 B (+1%)
build/edit-site/style-rtl.css 5.43 kB +26 B (0%)
build/edit-site/style.css 5.43 kB +26 B (0%)
build/edit-widgets/index.min.js 15.7 kB -1 B (0%)
build/editor/index.min.js 37.5 kB +76 B (0%)
build/format-library/index.min.js 5.93 kB +245 B (+4%)
build/widgets/index.min.js 7.11 kB +3 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 931 B
build/admin-manifest/index.min.js 1.09 kB
build/annotations/index.min.js 2.7 kB
build/api-fetch/index.min.js 2.21 kB
build/autop/index.min.js 2.08 kB
build/blob/index.min.js 459 B
build/block-directory/style-rtl.css 1.01 kB
build/block-directory/style.css 1.01 kB
build/block-editor/default-editor-styles-rtl.css 378 B
build/block-editor/default-editor-styles.css 378 B
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 65 B
build/block-library/blocks/archives/style.css 65 B
build/block-library/blocks/audio/editor-rtl.css 58 B
build/block-library/blocks/audio/editor.css 58 B
build/block-library/blocks/audio/style-rtl.css 111 B
build/block-library/blocks/audio/style.css 111 B
build/block-library/blocks/audio/theme-rtl.css 125 B
build/block-library/blocks/audio/theme.css 125 B
build/block-library/blocks/block/editor-rtl.css 161 B
build/block-library/blocks/block/editor.css 161 B
build/block-library/blocks/button/editor-rtl.css 474 B
build/block-library/blocks/button/editor.css 474 B
build/block-library/blocks/button/style-rtl.css 600 B
build/block-library/blocks/button/style.css 600 B
build/block-library/blocks/buttons/editor-rtl.css 315 B
build/block-library/blocks/buttons/editor.css 315 B
build/block-library/blocks/buttons/style-rtl.css 370 B
build/block-library/blocks/buttons/style.css 370 B
build/block-library/blocks/calendar/style-rtl.css 207 B
build/block-library/blocks/calendar/style.css 207 B
build/block-library/blocks/categories/editor-rtl.css 84 B
build/block-library/blocks/categories/editor.css 83 B
build/block-library/blocks/categories/style-rtl.css 79 B
build/block-library/blocks/categories/style.css 79 B
build/block-library/blocks/code/style-rtl.css 90 B
build/block-library/blocks/code/style.css 90 B
build/block-library/blocks/code/theme-rtl.css 131 B
build/block-library/blocks/code/theme.css 131 B
build/block-library/blocks/columns/editor-rtl.css 206 B
build/block-library/blocks/columns/editor.css 205 B
build/block-library/blocks/columns/style-rtl.css 497 B
build/block-library/blocks/columns/style.css 496 B
build/block-library/blocks/cover/editor-rtl.css 666 B
build/block-library/blocks/cover/editor.css 670 B
build/block-library/blocks/cover/style-rtl.css 1.23 kB
build/block-library/blocks/cover/style.css 1.23 kB
build/block-library/blocks/embed/editor-rtl.css 488 B
build/block-library/blocks/embed/editor.css 488 B
build/block-library/blocks/embed/style-rtl.css 417 B
build/block-library/blocks/embed/style.css 417 B
build/block-library/blocks/embed/theme-rtl.css 124 B
build/block-library/blocks/embed/theme.css 124 B
build/block-library/blocks/file/editor-rtl.css 300 B
build/block-library/blocks/file/editor.css 300 B
build/block-library/blocks/file/style-rtl.css 255 B
build/block-library/blocks/file/style.css 255 B
build/block-library/blocks/file/view.min.js 322 B
build/block-library/blocks/freeform/editor-rtl.css 2.44 kB
build/block-library/blocks/freeform/editor.css 2.44 kB
build/block-library/blocks/gallery/editor-rtl.css 977 B
build/block-library/blocks/gallery/editor.css 982 B
build/block-library/blocks/gallery/theme-rtl.css 122 B
build/block-library/blocks/gallery/theme.css 122 B
build/block-library/blocks/group/editor-rtl.css 159 B
build/block-library/blocks/group/editor.css 159 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 114 B
build/block-library/blocks/heading/style.css 114 B
build/block-library/blocks/home-link/style-rtl.css 247 B
build/block-library/blocks/home-link/style.css 247 B
build/block-library/blocks/html/editor-rtl.css 332 B
build/block-library/blocks/html/editor.css 333 B
build/block-library/blocks/image/editor-rtl.css 728 B
build/block-library/blocks/image/editor.css 728 B
build/block-library/blocks/image/style-rtl.css 482 B
build/block-library/blocks/image/style.css 487 B
build/block-library/blocks/image/theme-rtl.css 124 B
build/block-library/blocks/image/theme.css 124 B
build/block-library/blocks/latest-comments/style-rtl.css 284 B
build/block-library/blocks/latest-comments/style.css 284 B
build/block-library/blocks/latest-posts/editor-rtl.css 137 B
build/block-library/blocks/latest-posts/editor.css 137 B
build/block-library/blocks/latest-posts/style-rtl.css 528 B
build/block-library/blocks/latest-posts/style.css 527 B
build/block-library/blocks/list/style-rtl.css 94 B
build/block-library/blocks/list/style.css 94 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 488 B
build/block-library/blocks/media-text/style.css 485 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 568 B
build/block-library/blocks/navigation-link/editor.css 570 B
build/block-library/blocks/navigation-link/style-rtl.css 94 B
build/block-library/blocks/navigation-link/style.css 94 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 300 B
build/block-library/blocks/navigation-submenu/editor.css 299 B
build/block-library/blocks/navigation-submenu/style-rtl.css 195 B
build/block-library/blocks/navigation-submenu/style.css 195 B
build/block-library/blocks/navigation-submenu/view.min.js 343 B
build/block-library/blocks/navigation/editor-rtl.css 1.72 kB
build/block-library/blocks/navigation/editor.css 1.72 kB
build/block-library/blocks/navigation/style-rtl.css 1.62 kB
build/block-library/blocks/navigation/style.css 1.61 kB
build/block-library/blocks/navigation/view.min.js 2.74 kB
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 377 B
build/block-library/blocks/page-list/editor.css 377 B
build/block-library/blocks/page-list/style-rtl.css 198 B
build/block-library/blocks/page-list/style.css 198 B
build/block-library/blocks/paragraph/editor-rtl.css 157 B
build/block-library/blocks/paragraph/editor.css 157 B
build/block-library/blocks/paragraph/style-rtl.css 273 B
build/block-library/blocks/paragraph/style.css 273 B
build/block-library/blocks/post-author/editor-rtl.css 210 B
build/block-library/blocks/post-author/editor.css 210 B
build/block-library/blocks/post-author/style-rtl.css 182 B
build/block-library/blocks/post-author/style.css 181 B
build/block-library/blocks/post-comments-form/style-rtl.css 140 B
build/block-library/blocks/post-comments-form/style.css 140 B
build/block-library/blocks/post-comments/style-rtl.css 360 B
build/block-library/blocks/post-comments/style.css 359 B
build/block-library/blocks/post-excerpt/editor-rtl.css 73 B
build/block-library/blocks/post-excerpt/editor.css 73 B
build/block-library/blocks/post-excerpt/style-rtl.css 69 B
build/block-library/blocks/post-excerpt/style.css 69 B
build/block-library/blocks/post-featured-image/editor-rtl.css 398 B
build/block-library/blocks/post-featured-image/editor.css 398 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 391 B
build/block-library/blocks/post-template/style.css 392 B
build/block-library/blocks/post-terms/style-rtl.css 73 B
build/block-library/blocks/post-terms/style.css 73 B
build/block-library/blocks/post-title/style-rtl.css 60 B
build/block-library/blocks/post-title/style.css 60 B
build/block-library/blocks/preformatted/style-rtl.css 103 B
build/block-library/blocks/preformatted/style.css 103 B
build/block-library/blocks/pullquote/editor-rtl.css 198 B
build/block-library/blocks/pullquote/editor.css 198 B
build/block-library/blocks/pullquote/style-rtl.css 378 B
build/block-library/blocks/pullquote/style.css 378 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 262 B
build/block-library/blocks/query-pagination/editor.css 255 B
build/block-library/blocks/query-pagination/style-rtl.css 234 B
build/block-library/blocks/query-pagination/style.css 231 B
build/block-library/blocks/query-title/editor-rtl.css 85 B
build/block-library/blocks/query-title/editor.css 85 B
build/block-library/blocks/query/editor-rtl.css 131 B
build/block-library/blocks/query/editor.css 132 B
build/block-library/blocks/quote/style-rtl.css 187 B
build/block-library/blocks/quote/style.css 187 B
build/block-library/blocks/quote/theme-rtl.css 220 B
build/block-library/blocks/quote/theme.css 222 B
build/block-library/blocks/rss/editor-rtl.css 202 B
build/block-library/blocks/rss/editor.css 204 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 165 B
build/block-library/blocks/search/editor.css 165 B
build/block-library/blocks/search/style-rtl.css 374 B
build/block-library/blocks/search/style.css 375 B
build/block-library/blocks/search/theme-rtl.css 64 B
build/block-library/blocks/search/theme.css 64 B
build/block-library/blocks/separator/editor-rtl.css 99 B
build/block-library/blocks/separator/editor.css 99 B
build/block-library/blocks/separator/style-rtl.css 250 B
build/block-library/blocks/separator/style.css 250 B
build/block-library/blocks/separator/theme-rtl.css 172 B
build/block-library/blocks/separator/theme.css 172 B
build/block-library/blocks/shortcode/editor-rtl.css 474 B
build/block-library/blocks/shortcode/editor.css 474 B
build/block-library/blocks/site-logo/editor-rtl.css 462 B
build/block-library/blocks/site-logo/editor.css 464 B
build/block-library/blocks/site-logo/style-rtl.css 153 B
build/block-library/blocks/site-logo/style.css 153 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 84 B
build/block-library/blocks/site-title/editor.css 84 B
build/block-library/blocks/social-link/editor-rtl.css 165 B
build/block-library/blocks/social-link/editor.css 165 B
build/block-library/blocks/social-links/editor-rtl.css 812 B
build/block-library/blocks/social-links/editor.css 811 B
build/block-library/blocks/social-links/style-rtl.css 1.3 kB
build/block-library/blocks/social-links/style.css 1.3 kB
build/block-library/blocks/spacer/editor-rtl.css 307 B
build/block-library/blocks/spacer/editor.css 307 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table/editor-rtl.css 471 B
build/block-library/blocks/table/editor.css 472 B
build/block-library/blocks/table/style-rtl.css 481 B
build/block-library/blocks/table/style.css 481 B
build/block-library/blocks/table/theme-rtl.css 188 B
build/block-library/blocks/table/theme.css 188 B
build/block-library/blocks/tag-cloud/style-rtl.css 146 B
build/block-library/blocks/tag-cloud/style.css 146 B
build/block-library/blocks/template-part/editor-rtl.css 636 B
build/block-library/blocks/template-part/editor.css 635 B
build/block-library/blocks/template-part/theme-rtl.css 101 B
build/block-library/blocks/template-part/theme.css 101 B
build/block-library/blocks/term-description/editor-rtl.css 90 B
build/block-library/blocks/term-description/editor.css 90 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 166 B
build/block-library/blocks/text-columns/style.css 166 B
build/block-library/blocks/verse/style-rtl.css 87 B
build/block-library/blocks/verse/style.css 87 B
build/block-library/blocks/video/editor-rtl.css 571 B
build/block-library/blocks/video/editor.css 572 B
build/block-library/blocks/video/style-rtl.css 173 B
build/block-library/blocks/video/style.css 173 B
build/block-library/blocks/video/theme-rtl.css 124 B
build/block-library/blocks/video/theme.css 124 B
build/block-library/common-rtl.css 853 B
build/block-library/common.css 849 B
build/block-library/reset-rtl.css 536 B
build/block-library/reset.css 536 B
build/block-library/theme-rtl.css 665 B
build/block-library/theme.css 669 B
build/block-serialization-default-parser/index.min.js 1.09 kB
build/block-serialization-spec-parser/index.min.js 2.79 kB
build/blocks/index.min.js 45.7 kB
build/compose/index.min.js 10.3 kB
build/core-data/index.min.js 12.4 kB
build/customize-widgets/style-rtl.css 1.5 kB
build/customize-widgets/style.css 1.49 kB
build/data-controls/index.min.js 614 B
build/data/index.min.js 7.1 kB
build/date/index.min.js 31.5 kB
build/deprecated/index.min.js 428 B
build/dom-ready/index.min.js 304 B
build/dom/index.min.js 4.45 kB
build/edit-navigation/style-rtl.css 3.74 kB
build/edit-navigation/style.css 3.74 kB
build/edit-post/classic-rtl.css 492 B
build/edit-post/classic.css 494 B
build/edit-post/style-rtl.css 7.19 kB
build/edit-post/style.css 7.18 kB
build/edit-widgets/style-rtl.css 4.1 kB
build/edit-widgets/style.css 4.1 kB
build/editor/style-rtl.css 3.76 kB
build/editor/style.css 3.75 kB
build/element/index.min.js 3.17 kB
build/escape-html/index.min.js 517 B
build/format-library/style-rtl.css 571 B
build/format-library/style.css 571 B
build/hooks/index.min.js 1.55 kB
build/html-entities/index.min.js 424 B
build/i18n/index.min.js 3.6 kB
build/is-shallow-equal/index.min.js 501 B
build/keyboard-shortcuts/index.min.js 1.72 kB
build/keycodes/index.min.js 1.3 kB
build/list-reusable-blocks/index.min.js 1.85 kB
build/list-reusable-blocks/style-rtl.css 838 B
build/list-reusable-blocks/style.css 838 B
build/media-utils/index.min.js 2.92 kB
build/notices/index.min.js 845 B
build/nux/index.min.js 2.03 kB
build/nux/style-rtl.css 747 B
build/nux/style.css 743 B
build/plugins/index.min.js 1.83 kB
build/primitives/index.min.js 921 B
build/priority-queue/index.min.js 582 B
build/react-i18n/index.min.js 671 B
build/redux-routine/index.min.js 2.63 kB
build/reusable-blocks/index.min.js 2.28 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.6 kB
build/server-side-render/index.min.js 1.5 kB
build/shortcode/index.min.js 1.48 kB
build/token-list/index.min.js 562 B
build/url/index.min.js 1.74 kB
build/viewport/index.min.js 1.02 kB
build/warning/index.min.js 248 B
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.04 kB

compressed-size-action

lib/block-patterns.php Outdated Show resolved Hide resolved
lib/block-patterns.php Outdated Show resolved Hide resolved
Copy link
Member

@Mamaduka Mamaduka left a comment

Thanks for working on this, @ntsekouras.

The feature works as expected, including the missing image 😄

I would defer on the final decision to the folks who are more familiar with the patterns directory.

P.S. I found an unrelated issue while testing this. If you resize the browser window so that bottom is near the last pattern, it starts "glitching."

CleanShot.2021-09-24.at.18.17.44.mp4

@kjellr
Copy link
Contributor

@kjellr kjellr commented Sep 28, 2021

Very cool! This seems to work well in my testing.

@shaunandrews was there any talk about a "Featured" category in the patterns directory? @melchoyce, @beafialho and I can help curate a short list of patterns to start featuring here, but I wonder if it makes sense to have this list featured in the actual pattern directory or not at this point?

// TODO: check to update the controller here: https://github.com/WordPress/gutenberg/blob/trunk/lib/class-wp-rest-pattern-directory-controller.php#L321
// because it unsets the `per_page` param.
Copy link
Contributor

@ryelle ryelle Sep 28, 2021

IIRC, pagination is disabled because there is no way to paginate in the UI, so we want to return every pattern from the API for local filtering. Is there a reason to request just 2 patterns here?

Copy link
Contributor Author

@ntsekouras ntsekouras Sep 29, 2021

I think this needs to change from unsetting entirely, to support the params and set defaults or make the other request to pass -1 to fetch all. The API needs to support other use cases as well besides the pattern directory UI.

Is there a reason to request just 2 patterns here?

2 was just for demo and I guess we will show a bit more - maybe 10 or something? I believe we have to have a limit though because of performance and the current UI for selecting patterns, which is not super friendly for previewing a large number of patterns. We can revisit of course later..

Copy link
Contributor

@ryelle ryelle Sep 29, 2021

Turns out I was misremembering slightly - the wp.org API does not support pagination, it always requests 100 patterns. If/when we revamp the pattern inserter, we can update the API to support pagination, and then we can reenable these params here. For now, the featured category is manually curated, so you can be sure it's a smaller list.

lib/block-patterns.php Outdated Show resolved Hide resolved
lib/block-patterns.php Outdated Show resolved Hide resolved
lib/block-patterns.php Outdated Show resolved Hide resolved
@ryelle
Copy link
Contributor

@ryelle ryelle commented Sep 28, 2021

was there any talk about a "Featured" category in the patterns directory?

Yeah, we decided not to launch with it because the technical details were unclear. If it's just another pattern category, we can create that any time.

The second pattern that is fetched right now is trying to fetch a non existing image - check the browser console when you are previewing the patterns in the inserter.

Can you identify which pattern this is? I'm not seeing a missing image.

@ntsekouras
Copy link
Contributor Author

@ntsekouras ntsekouras commented Sep 29, 2021

Can you identify which pattern this is? I'm not seeing a missing image.

You can see the error in developer tools when you open the patterns tab in the inserter. The image is not missing but the pattern has also an id prop and the block tries to find an image from the site's media (ex http://localhost:8888/wp-json/wp/v2/media/841?..).

@kjellr
Copy link
Contributor

@kjellr kjellr commented Sep 29, 2021

Yeah, we decided not to launch with it because the technical details were unclear. If it's just another pattern category, we can create that any time.

Ok cool. I think for now, it would make sense to just curate a short list of 10 or so patterns. We can get started on that later this week/early next.

@ryelle
Copy link
Contributor

@ryelle ryelle commented Sep 29, 2021

The new category, Featured, has been created - you can query it with $request->set_param( 'category', 24 );. I added two patterns just so it's not empty, but @kjellr, @melchoyce, & @beafialho can take over managing it.

lib/block-patterns.php Outdated Show resolved Hide resolved
@ntsekouras ntsekouras force-pushed the try/featured-patterns-from-pattern-directory branch from 1bb837b to 0abfd1f Sep 30, 2021
@kjellr
Copy link
Contributor

@kjellr kjellr commented Oct 4, 2021

Over in WordPress/pattern-directory#365, @beafialho, @melchoyce and I pulled together a collection of 12 initial patterns to feature. That should be a decent starting point for now. 👍

@ntsekouras
Copy link
Contributor Author

@ntsekouras ntsekouras commented Oct 4, 2021

Over in WordPress/pattern-directory#365, @beafialho, @melchoyce and I pulled together a collection of 12 initial patterns to feature. That should be a decent starting point for now. 👍

Awesome! So I guess this just needs a code review now 😄

$pattern_name = sanitize_title( $pattern['title'] );
if ( ! WP_Block_Patterns_Registry::get_instance()->is_registered( $pattern_name ) ) {
register_block_pattern( $pattern_name, (array) $pattern );
};
Copy link
Contributor

@ryelle ryelle Oct 5, 2021

Some of these same patterns are already being registered with the prefix core/ and there's no prefix here, so I'm seeing a few duplicates in the featured tab: core/heading and heading, core/large-header-with-left-aligned-text and large-header-with-left-aligned-text, etc.

Copy link
Contributor Author

@ntsekouras ntsekouras Oct 6, 2021

hm... I updated with a check if a pattern is registered with the core prefix. This made me wonder why we need the core prefix in the first place.. Should we also incorporate the id that exists in pattern directory in is_registered?

mcsf
mcsf approved these changes Oct 5, 2021
Copy link
Contributor

@mcsf mcsf left a comment

The PR itself looks spotless, but I left a note about how we're using the pattern directory.

if ( ! WP_Block_Patterns_Registry::get_instance()->is_registered( $pattern_name ) ) {
register_block_pattern( $pattern_name, (array) $pattern );
};
Copy link
Contributor

@mcsf mcsf Oct 5, 2021

I'm noticing some things that are slightly tangent to this PR, but I'll still mention them:

  • As in the previous function, the pattern's title is sanitised but the rest of the payload isn't, neither here nor in the patterns registry class. Seems like a code smell to me — either we are oversanitising or undersanitising.
  • Though it's not the only case in WP, I've always found it very odd that the backend should make a HTTP request to itself. :) I don't know what arguments support this against just querying directly.

Copy link
Contributor Author

@ntsekouras ntsekouras Oct 6, 2021

Good questions Miguel. @ryelle does the sanitisation has to do with the current way the patterns are included in the directory? The inclusion happens manually for now so it's sanitised by 'us'?

I agree that such questions/changes can happen in a separate PR.

@ntsekouras ntsekouras merged commit 5c6013a into trunk Oct 11, 2021
20 checks passed
@ntsekouras ntsekouras deleted the try/featured-patterns-from-pattern-directory branch Oct 11, 2021
@github-actions github-actions bot added this to the Gutenberg 11.8 milestone Oct 11, 2021
@mtias
Copy link
Contributor

@mtias mtias commented Oct 11, 2021

Great to see this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment