From dde79a61bb70ce8cd80a4352ff25e532e08eaadf Mon Sep 17 00:00:00 2001
From: epiqueras
Date: Thu, 16 Jan 2020 22:39:19 -0500
Subject: [PATCH 1/6] Lib: Add single demo block template.
---
lib/demo-block-templates/single.html | 2 ++
1 file changed, 2 insertions(+)
create mode 100644 lib/demo-block-templates/single.html
diff --git a/lib/demo-block-templates/single.html b/lib/demo-block-templates/single.html
new file mode 100644
index 0000000000000..477e98d7bf845
--- /dev/null
+++ b/lib/demo-block-templates/single.html
@@ -0,0 +1,2 @@
+
+
From 9ee063b1b373273cba63429579bfd8a4c4264033 Mon Sep 17 00:00:00 2001
From: epiqueras
Date: Thu, 16 Jan 2020 22:47:07 -0500
Subject: [PATCH 2/6] Core Data: Provide full raw properties from
`useEntityProp`.
---
packages/core-data/src/entity-provider.js | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/packages/core-data/src/entity-provider.js b/packages/core-data/src/entity-provider.js
index 03454425ccb31..14d495426a8c2 100644
--- a/packages/core-data/src/entity-provider.js
+++ b/packages/core-data/src/entity-provider.js
@@ -85,12 +85,15 @@ export function useEntityId( kind, type ) {
export function useEntityProp( kind, type, prop ) {
const id = useEntityId( kind, type );
- const value = useSelect(
+ const { value, fullValue } = useSelect(
( select ) => {
const { getEntityRecord, getEditedEntityRecord } = select( 'core' );
- getEntityRecord( kind, type, id ); // Trigger resolver.
- const entity = getEditedEntityRecord( kind, type, id );
- return entity && entity[ prop ];
+ const entity = getEntityRecord( kind, type, id ); // Trigger resolver.
+ const editedEntity = getEditedEntityRecord( kind, type, id );
+ return (
+ entity &&
+ editedEntity && { value: editedEntity[ prop ], fullValue: entity[ prop ] }
+ );
},
[ kind, type, id, prop ]
);
@@ -105,7 +108,7 @@ export function useEntityProp( kind, type, prop ) {
[ kind, type, id, prop ]
);
- return [ value, setValue ];
+ return [ value, setValue, fullValue ];
}
/**
From 2368b51a80e2b1b32257a8587fc55f15842d7edf Mon Sep 17 00:00:00 2001
From: epiqueras
Date: Thu, 16 Jan 2020 22:47:41 -0500
Subject: [PATCH 3/6] Block Library: Add features to the Post Excerpt block.
---
packages/block-library/src/editor.scss | 1 +
.../block-library/src/post-excerpt/block.json | 15 +++-
.../block-library/src/post-excerpt/edit.js | 90 +++++++++++++++++--
.../src/post-excerpt/editor.scss | 3 +
.../block-library/src/post-excerpt/index.php | 42 ++++++++-
5 files changed, 141 insertions(+), 10 deletions(-)
create mode 100644 packages/block-library/src/post-excerpt/editor.scss
diff --git a/packages/block-library/src/editor.scss b/packages/block-library/src/editor.scss
index 012918eef5483..7b68e2d7a9ddf 100644
--- a/packages/block-library/src/editor.scss
+++ b/packages/block-library/src/editor.scss
@@ -28,6 +28,7 @@
@import "./navigation-link/editor.scss";
@import "./nextpage/editor.scss";
@import "./paragraph/editor.scss";
+@import "./post-excerpt/editor.scss";
@import "./pullquote/editor.scss";
@import "./quote/editor.scss";
@import "./rss/editor.scss";
diff --git a/packages/block-library/src/post-excerpt/block.json b/packages/block-library/src/post-excerpt/block.json
index ef39be86f839c..6ef5e21bc55b7 100644
--- a/packages/block-library/src/post-excerpt/block.json
+++ b/packages/block-library/src/post-excerpt/block.json
@@ -1,4 +1,17 @@
{
"name": "core/post-excerpt",
- "category": "layout"
+ "category": "layout",
+ "attributes": {
+ "excerptLength": {
+ "type": "number",
+ "default": 55
+ },
+ "moreText": {
+ "type": "string"
+ },
+ "showMoreOnNewLine": {
+ "type": "boolean",
+ "default": true
+ }
+ }
}
diff --git a/packages/block-library/src/post-excerpt/edit.js b/packages/block-library/src/post-excerpt/edit.js
index 7bbeff3a97900..65d1bfc4d6939 100644
--- a/packages/block-library/src/post-excerpt/edit.js
+++ b/packages/block-library/src/post-excerpt/edit.js
@@ -2,20 +2,96 @@
* WordPress dependencies
*/
import { useEntityProp, useEntityId } from '@wordpress/core-data';
-import { PlainText } from '@wordpress/block-editor';
+import { useMemo } from '@wordpress/element';
+import { InspectorControls, RichText } from '@wordpress/block-editor';
+import { PanelBody, RangeControl, ToggleControl } from '@wordpress/components';
+import { __ } from '@wordpress/i18n';
-function PostExcerptDisplay() {
- const [ excerpt, setExcerpt ] = useEntityProp(
+function usePostContentExcerpt( excerptLength ) {
+ const [ , , { raw: rawPostContent } ] = useEntityProp(
'postType',
'post',
- 'excerpt'
+ 'content'
);
- return ;
+ return useMemo( () => {
+ if ( ! rawPostContent ) {
+ return '';
+ }
+ const excerptElement = document.createElement( 'div' );
+ excerptElement.innerHTML = rawPostContent;
+ const excerpt =
+ excerptElement.textContent || excerptElement.innerText || '';
+ return excerpt
+ .trim()
+ .split( ' ', excerptLength )
+ .join( ' ' );
+ }, [ rawPostContent, excerptLength ] );
}
-export default function PostExcerptEdit() {
+function PostExcerptEditor( {
+ attributes: { excerptLength, moreText, showMoreOnNewLine },
+ setAttributes,
+ isSelected,
+} ) {
+ const [ excerpt, setExcerpt ] = useEntityProp( 'postType', 'post', 'excerpt' );
+ const postContentExcerpt = usePostContentExcerpt( excerptLength );
+ return (
+ <>
+
+
+ { ! excerpt && (
+
+ setAttributes( { excerptLength: newExcerptLength } )
+ }
+ min={ 10 }
+ max={ 100 }
+ />
+ ) }
+
+ setAttributes( { showMoreOnNewLine: newShowMoreOnNewLine } )
+ }
+ />
+
+
+
+ { ! showMoreOnNewLine && ' ' }
+ setAttributes( { moreText: newMoreText } ) }
+ />
+ >
+ );
+}
+
+export default function PostExcerptEdit( {
+ attributes,
+ setAttributes,
+ isSelected,
+} ) {
if ( ! useEntityId( 'postType', 'post' ) ) {
return 'Post Excerpt Placeholder';
}
- return ;
+ return (
+
+ );
}
diff --git a/packages/block-library/src/post-excerpt/editor.scss b/packages/block-library/src/post-excerpt/editor.scss
new file mode 100644
index 0000000000000..8d36110746aef
--- /dev/null
+++ b/packages/block-library/src/post-excerpt/editor.scss
@@ -0,0 +1,3 @@
+.wp-block-post-excerpt__excerpt.is-inline {
+ display: inline-block;
+}
diff --git a/packages/block-library/src/post-excerpt/index.php b/packages/block-library/src/post-excerpt/index.php
index 06d1b9726468f..f23e6cfe479ce 100644
--- a/packages/block-library/src/post-excerpt/index.php
+++ b/packages/block-library/src/post-excerpt/index.php
@@ -8,14 +8,39 @@
/**
* Renders the `core/post-excerpt` block on the server.
*
+ * @param array $attributes The block attributes.
+ *
* @return string Returns the filtered post excerpt for the current post wrapped inside "p" tags.
*/
-function render_block_core_post_excerpt() {
+function render_block_core_post_excerpt( $attributes ) {
$post = gutenberg_get_post_from_context();
if ( ! $post ) {
return '';
}
- return '' . get_the_excerpt( $post ) . '
';
+
+ $more_text = isset( $attributes['moreText'] ) ? '' . $attributes['moreText'] . '' : '';
+
+ $filter_excerpt_length = function() use ( $attributes ) {
+ return isset( $attributes['excerptLength'] ) ? $attributes['excerptLength'] : 55;
+ };
+ add_filter(
+ 'excerpt_length',
+ $filter_excerpt_length
+ );
+
+ $output = '' . get_the_excerpt( $post );
+ if ( ! isset( $attributes['showMoreOnNewLine'] ) || $attributes['showMoreOnNewLine'] ) {
+ $output .= '
' . '' . $more_text . '
';
+ } else {
+ $output .= ' ' . $more_text . '
';
+ }
+
+ remove_filter(
+ 'excerpt_length',
+ $filter_excerpt_length
+ );
+
+ return $output;
}
/**
@@ -25,6 +50,19 @@ function register_block_core_post_excerpt() {
register_block_type(
'core/post-excerpt',
array(
+ 'attributes' => array(
+ 'excerptLength' => array(
+ 'type' => 'number',
+ 'default' => 55,
+ ),
+ 'moreText' => array(
+ 'type' => 'string',
+ ),
+ 'showMoreOnNewLine' => array(
+ 'type' => 'boolean',
+ 'default' => true,
+ ),
+ ),
'render_callback' => 'render_block_core_post_excerpt',
)
);
From 2aef54ff424d3757bda4864e60a2374e385972f9 Mon Sep 17 00:00:00 2001
From: epiqueras
Date: Mon, 20 Jan 2020 13:59:18 -0500
Subject: [PATCH 4/6] E2E Tests: Update Post Excerpt block fixtures.
---
.../fixtures/blocks/core__post-excerpt.json | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/packages/e2e-tests/fixtures/blocks/core__post-excerpt.json b/packages/e2e-tests/fixtures/blocks/core__post-excerpt.json
index 67bee1bd83f27..63d53344f1c17 100644
--- a/packages/e2e-tests/fixtures/blocks/core__post-excerpt.json
+++ b/packages/e2e-tests/fixtures/blocks/core__post-excerpt.json
@@ -1,10 +1,13 @@
[
- {
- "clientId": "_clientId_0",
- "name": "core/post-excerpt",
- "isValid": true,
- "attributes": {},
- "innerBlocks": [],
- "originalContent": ""
- }
+ {
+ "clientId": "_clientId_0",
+ "name": "core/post-excerpt",
+ "isValid": true,
+ "attributes": {
+ "excerptLength": 55,
+ "showMoreOnNewLine": true
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
]
From 99ce46993a2d693acf76ac57760c782f16a0b101 Mon Sep 17 00:00:00 2001
From: epiqueras
Date: Tue, 18 Feb 2020 05:16:50 -0800
Subject: [PATCH 5/6] Block Library: Change Post Excerpt block `excerptLength`
to `wordCount`.
---
.../block-library/src/post-excerpt/block.json | 2 +-
.../block-library/src/post-excerpt/edit.js | 54 +++++++++++++------
.../block-library/src/post-excerpt/index.php | 4 +-
packages/core-data/src/entity-provider.js | 5 +-
4 files changed, 45 insertions(+), 20 deletions(-)
diff --git a/packages/block-library/src/post-excerpt/block.json b/packages/block-library/src/post-excerpt/block.json
index 6ef5e21bc55b7..24a74217c547a 100644
--- a/packages/block-library/src/post-excerpt/block.json
+++ b/packages/block-library/src/post-excerpt/block.json
@@ -2,7 +2,7 @@
"name": "core/post-excerpt",
"category": "layout",
"attributes": {
- "excerptLength": {
+ "wordCount": {
"type": "number",
"default": 55
},
diff --git a/packages/block-library/src/post-excerpt/edit.js b/packages/block-library/src/post-excerpt/edit.js
index 65d1bfc4d6939..7b4ee53704f37 100644
--- a/packages/block-library/src/post-excerpt/edit.js
+++ b/packages/block-library/src/post-excerpt/edit.js
@@ -7,7 +7,7 @@ import { InspectorControls, RichText } from '@wordpress/block-editor';
import { PanelBody, RangeControl, ToggleControl } from '@wordpress/components';
import { __ } from '@wordpress/i18n';
-function usePostContentExcerpt( excerptLength ) {
+function usePostContentExcerpt( wordCount ) {
const [ , , { raw: rawPostContent } ] = useEntityProp(
'postType',
'post',
@@ -23,18 +23,22 @@ function usePostContentExcerpt( excerptLength ) {
excerptElement.textContent || excerptElement.innerText || '';
return excerpt
.trim()
- .split( ' ', excerptLength )
+ .split( ' ', wordCount )
.join( ' ' );
- }, [ rawPostContent, excerptLength ] );
+ }, [ rawPostContent, wordCount ] );
}
function PostExcerptEditor( {
- attributes: { excerptLength, moreText, showMoreOnNewLine },
+ attributes: { wordCount, moreText, showMoreOnNewLine },
setAttributes,
isSelected,
} ) {
- const [ excerpt, setExcerpt ] = useEntityProp( 'postType', 'post', 'excerpt' );
- const postContentExcerpt = usePostContentExcerpt( excerptLength );
+ const [ excerpt, setExcerpt ] = useEntityProp(
+ 'postType',
+ 'post',
+ 'excerpt'
+ );
+ const postContentExcerpt = usePostContentExcerpt( wordCount );
return (
<>
@@ -42,9 +46,9 @@ function PostExcerptEditor( {
{ ! excerpt && (
- setAttributes( { excerptLength: newExcerptLength } )
+ setAttributes( { wordCount: newExcerptLength } )
}
min={ 10 }
max={ 100 }
@@ -54,14 +58,17 @@ function PostExcerptEditor( {
label={ __( 'Show link on new line' ) }
checked={ showMoreOnNewLine }
onChange={ ( newShowMoreOnNewLine ) =>
- setAttributes( { showMoreOnNewLine: newShowMoreOnNewLine } )
+ setAttributes( {
+ showMoreOnNewLine: newShowMoreOnNewLine,
+ } )
}
/>
{ ! showMoreOnNewLine && ' ' }
- setAttributes( { moreText: newMoreText } ) }
- />
+ { showMoreOnNewLine ? (
+
+
+ setAttributes( { moreText: newMoreText } )
+ }
+ />
+
+ ) : (
+
+ setAttributes( { moreText: newMoreText } )
+ }
+ />
+ ) }
>
);
}
diff --git a/packages/block-library/src/post-excerpt/index.php b/packages/block-library/src/post-excerpt/index.php
index f23e6cfe479ce..5bb2c205cd197 100644
--- a/packages/block-library/src/post-excerpt/index.php
+++ b/packages/block-library/src/post-excerpt/index.php
@@ -21,7 +21,7 @@ function render_block_core_post_excerpt( $attributes ) {
$more_text = isset( $attributes['moreText'] ) ? '' . $attributes['moreText'] . '' : '';
$filter_excerpt_length = function() use ( $attributes ) {
- return isset( $attributes['excerptLength'] ) ? $attributes['excerptLength'] : 55;
+ return isset( $attributes['wordCount'] ) ? $attributes['wordCount'] : 55;
};
add_filter(
'excerpt_length',
@@ -51,7 +51,7 @@ function register_block_core_post_excerpt() {
'core/post-excerpt',
array(
'attributes' => array(
- 'excerptLength' => array(
+ 'wordCount' => array(
'type' => 'number',
'default' => 55,
),
diff --git a/packages/core-data/src/entity-provider.js b/packages/core-data/src/entity-provider.js
index 14d495426a8c2..3a73e5a79c280 100644
--- a/packages/core-data/src/entity-provider.js
+++ b/packages/core-data/src/entity-provider.js
@@ -92,7 +92,10 @@ export function useEntityProp( kind, type, prop ) {
const editedEntity = getEditedEntityRecord( kind, type, id );
return (
entity &&
- editedEntity && { value: editedEntity[ prop ], fullValue: entity[ prop ] }
+ editedEntity && {
+ value: editedEntity[ prop ],
+ fullValue: entity[ prop ],
+ }
);
},
[ kind, type, id, prop ]
From ece6591e4a88c014aec906858f6ef4622186c16e Mon Sep 17 00:00:00 2001
From: Enrique Piqueras
Date: Tue, 18 Feb 2020 07:00:07 -0800
Subject: [PATCH 6/6] Delete single.html
---
lib/demo-block-templates/single.html | 2 --
.../block-library/src/post-excerpt/index.php | 2 +-
.../fixtures/blocks/core__post-excerpt.json | 22 +++++++++----------
.../full-content/server-registered.json | 2 +-
4 files changed, 13 insertions(+), 15 deletions(-)
delete mode 100644 lib/demo-block-templates/single.html
diff --git a/lib/demo-block-templates/single.html b/lib/demo-block-templates/single.html
deleted file mode 100644
index 477e98d7bf845..0000000000000
--- a/lib/demo-block-templates/single.html
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/packages/block-library/src/post-excerpt/index.php b/packages/block-library/src/post-excerpt/index.php
index 5bb2c205cd197..c3f1755d0422f 100644
--- a/packages/block-library/src/post-excerpt/index.php
+++ b/packages/block-library/src/post-excerpt/index.php
@@ -51,7 +51,7 @@ function register_block_core_post_excerpt() {
'core/post-excerpt',
array(
'attributes' => array(
- 'wordCount' => array(
+ 'wordCount' => array(
'type' => 'number',
'default' => 55,
),
diff --git a/packages/e2e-tests/fixtures/blocks/core__post-excerpt.json b/packages/e2e-tests/fixtures/blocks/core__post-excerpt.json
index 63d53344f1c17..44a38831ec996 100644
--- a/packages/e2e-tests/fixtures/blocks/core__post-excerpt.json
+++ b/packages/e2e-tests/fixtures/blocks/core__post-excerpt.json
@@ -1,13 +1,13 @@
[
- {
- "clientId": "_clientId_0",
- "name": "core/post-excerpt",
- "isValid": true,
- "attributes": {
- "excerptLength": 55,
- "showMoreOnNewLine": true
- },
- "innerBlocks": [],
- "originalContent": ""
- }
+ {
+ "clientId": "_clientId_0",
+ "name": "core/post-excerpt",
+ "isValid": true,
+ "attributes": {
+ "wordCount": 55,
+ "showMoreOnNewLine": true
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
]
diff --git a/test/integration/full-content/server-registered.json b/test/integration/full-content/server-registered.json
index 3fae2b82a0e4e..9551491707847 100644
--- a/test/integration/full-content/server-registered.json
+++ b/test/integration/full-content/server-registered.json
@@ -1 +1 @@
-{"core\/archives":{"attributes":{"align":{"type":"string","enum":["left","center","right","wide","full"]},"className":{"type":"string"},"displayAsDropdown":{"type":"boolean","default":false},"showPostCounts":{"type":"boolean","default":false}}},"core\/block":{"attributes":{"ref":{"type":"number"}}},"core\/calendar":{"attributes":{"align":{"type":"string","enum":["left","center","right","wide","full"]},"className":{"type":"string"},"month":{"type":"integer"},"year":{"type":"integer"}}},"core\/categories":{"attributes":{"align":{"type":"string","enum":["left","center","right","wide","full"]},"className":{"type":"string"},"displayAsDropdown":{"type":"boolean","default":false},"showHierarchy":{"type":"boolean","default":false},"showPostCounts":{"type":"boolean","default":false}}},"core\/latest-comments":{"attributes":{"align":{"type":"string","enum":["left","center","right","wide","full"]},"className":{"type":"string"},"commentsToShow":{"type":"number","default":5,"minimum":1,"maximum":100},"displayAvatar":{"type":"boolean","default":true},"displayDate":{"type":"boolean","default":true},"displayExcerpt":{"type":"boolean","default":true}}},"core\/latest-posts":{"attributes":{"align":{"type":"string","enum":["left","center","right","wide","full"]},"className":{"type":"string"},"categories":{"type":"string"},"postsToShow":{"type":"number","default":5},"displayPostContent":{"type":"boolean","default":false},"displayPostContentRadio":{"type":"string","default":"excerpt"},"excerptLength":{"type":"number","default":55},"displayPostDate":{"type":"boolean","default":false},"postLayout":{"type":"string","default":"list"},"columns":{"type":"number","default":3},"order":{"type":"string","default":"desc"},"orderBy":{"type":"string","default":"date"},"displayFeaturedImage":{"type":"boolean","default":false},"featuredImageAlign":{"type":"string","enum":["left","center","right"]},"featuredImageSizeSlug":{"type":"string","default":"thumbnail"},"featuredImageSizeWidth":{"type":"number","default":null},"featuredImageSizeHeight":{"type":"number","default":null}}},"core\/legacy-widget":{"attributes":{"widgetClass":{"type":"string"},"id":{"type":"string"},"idBase":{"type":"string"},"number":{"type":"number"},"instance":{"type":"object"}}},"core\/navigation":{"attributes":{"className":{"type":"string"},"textColor":{"type":"string"},"customTextColor":{"type":"string"},"rgbTextColor":{"type":"string"},"backgroundColor":{"type":"string"},"customBackgroundColor":{"type":"string"},"rgbBackgroundColor":{"type":"string"},"fontSize":{"type":"string"},"customFontSize":{"type":"number"},"itemsJustification":{"type":"string"},"showSubmenuIcon":{"type":"boolean","default":true}}},"core\/post-comments-count":{"attributes":{"className":{"type":"string"}}},"core\/rss":{"attributes":{"align":{"type":"string","enum":["left","center","right","wide","full"]},"className":{"type":"string"},"columns":{"type":"number","default":2},"blockLayout":{"type":"string","default":"list"},"feedURL":{"type":"string","default":""},"itemsToShow":{"type":"number","default":5},"displayExcerpt":{"type":"boolean","default":false},"displayAuthor":{"type":"boolean","default":false},"displayDate":{"type":"boolean","default":false},"excerptLength":{"type":"number","default":55}}},"core\/search":{"attributes":{"align":{"type":"string","enum":["left","center","right","wide","full"]},"className":{"type":"string"},"label":{"type":"string","default":"Search"},"placeholder":{"type":"string","default":""},"buttonText":{"type":"string","default":"Search"}}},"core\/tag-cloud":{"attributes":{"align":{"type":"string","enum":["left","center","right","wide","full"]},"className":{"type":"string"},"taxonomy":{"type":"string","default":"post_tag"},"showTagCounts":{"type":"boolean","default":false}}},"core\/template-part":{"attributes":{"postId":{"type":"number"},"slug":{"type":"string"},"theme":{"type":"string"}}}}
+{"core\/archives":{"attributes":{"align":{"type":"string","enum":["left","center","right","wide","full"]},"className":{"type":"string"},"displayAsDropdown":{"type":"boolean","default":false},"showPostCounts":{"type":"boolean","default":false}}},"core\/block":{"attributes":{"ref":{"type":"number"}}},"core\/calendar":{"attributes":{"align":{"type":"string","enum":["left","center","right","wide","full"]},"className":{"type":"string"},"month":{"type":"integer"},"year":{"type":"integer"}}},"core\/categories":{"attributes":{"align":{"type":"string","enum":["left","center","right","wide","full"]},"className":{"type":"string"},"displayAsDropdown":{"type":"boolean","default":false},"showHierarchy":{"type":"boolean","default":false},"showPostCounts":{"type":"boolean","default":false}}},"core\/latest-comments":{"attributes":{"align":{"type":"string","enum":["left","center","right","wide","full"]},"className":{"type":"string"},"commentsToShow":{"type":"number","default":5,"minimum":1,"maximum":100},"displayAvatar":{"type":"boolean","default":true},"displayDate":{"type":"boolean","default":true},"displayExcerpt":{"type":"boolean","default":true}}},"core\/latest-posts":{"attributes":{"align":{"type":"string","enum":["left","center","right","wide","full"]},"className":{"type":"string"},"categories":{"type":"string"},"postsToShow":{"type":"number","default":5},"displayPostContent":{"type":"boolean","default":false},"displayPostContentRadio":{"type":"string","default":"excerpt"},"excerptLength":{"type":"number","default":55},"displayPostDate":{"type":"boolean","default":false},"postLayout":{"type":"string","default":"list"},"columns":{"type":"number","default":3},"order":{"type":"string","default":"desc"},"orderBy":{"type":"string","default":"date"},"displayFeaturedImage":{"type":"boolean","default":false},"featuredImageAlign":{"type":"string","enum":["left","center","right"]},"featuredImageSizeSlug":{"type":"string","default":"thumbnail"},"featuredImageSizeWidth":{"type":"number","default":null},"featuredImageSizeHeight":{"type":"number","default":null}}},"core\/legacy-widget":{"attributes":{"widgetClass":{"type":"string"},"id":{"type":"string"},"idBase":{"type":"string"},"number":{"type":"number"},"instance":{"type":"object"}}},"core\/navigation":{"attributes":{"className":{"type":"string"},"textColor":{"type":"string"},"customTextColor":{"type":"string"},"rgbTextColor":{"type":"string"},"backgroundColor":{"type":"string"},"customBackgroundColor":{"type":"string"},"rgbBackgroundColor":{"type":"string"},"fontSize":{"type":"string"},"customFontSize":{"type":"number"},"itemsJustification":{"type":"string"},"showSubmenuIcon":{"type":"boolean","default":true}}},"core\/post-comments-count":{"attributes":{"className":{"type":"string"}}},"core\/post-excerpt":{"attributes":{"wordCount":{"type":"number","default":55},"moreText":{"type":"string"},"showMoreOnNewLine":{"type":"boolean","default":true}}},"core\/rss":{"attributes":{"align":{"type":"string","enum":["left","center","right","wide","full"]},"className":{"type":"string"},"columns":{"type":"number","default":2},"blockLayout":{"type":"string","default":"list"},"feedURL":{"type":"string","default":""},"itemsToShow":{"type":"number","default":5},"displayExcerpt":{"type":"boolean","default":false},"displayAuthor":{"type":"boolean","default":false},"displayDate":{"type":"boolean","default":false},"excerptLength":{"type":"number","default":55}}},"core\/search":{"attributes":{"align":{"type":"string","enum":["left","center","right","wide","full"]},"className":{"type":"string"},"label":{"type":"string","default":"Search"},"placeholder":{"type":"string","default":""},"buttonText":{"type":"string","default":"Search"}}},"core\/tag-cloud":{"attributes":{"align":{"type":"string","enum":["left","center","right","wide","full"]},"className":{"type":"string"},"taxonomy":{"type":"string","default":"post_tag"},"showTagCounts":{"type":"boolean","default":false}}},"core\/template-part":{"attributes":{"postId":{"type":"number"},"slug":{"type":"string"},"theme":{"type":"string"}}}}