diff --git a/packages/block-editor/src/store/test/selectors.js b/packages/block-editor/src/store/test/selectors.js
index fc4db2c41f8a3f..9140248391cf8e 100644
--- a/packages/block-editor/src/store/test/selectors.js
+++ b/packages/block-editor/src/store/test/selectors.js
@@ -121,7 +121,7 @@ describe( 'selectors', () => {
parent: [ 'core/test-block-b' ],
} );
- registerBlockType( 'core/test-freeform', {
+ registerBlockType( 'core/freeform', {
save: ( props ) => { props.attributes.content },
category: 'text',
title: 'Test Freeform Content Handler',
@@ -177,7 +177,7 @@ describe( 'selectors', () => {
ancestor: [ 'core/test-block-ancestor' ],
} );
- setFreeformContentHandlerName( 'core/test-freeform' );
+ setFreeformContentHandlerName( 'core/freeform' );
cachedSelectors.forEach( ( { clear } ) => clear() );
} );
@@ -187,7 +187,7 @@ describe( 'selectors', () => {
unregisterBlockType( 'core/test-block-a' );
unregisterBlockType( 'core/test-block-b' );
unregisterBlockType( 'core/test-block-c' );
- unregisterBlockType( 'core/test-freeform' );
+ unregisterBlockType( 'core/freeform' );
unregisterBlockType( 'core/post-content-child' );
unregisterBlockType( 'core/test-block-ancestor' );
unregisterBlockType( 'core/test-block-parent' );
@@ -3450,7 +3450,7 @@ describe( 'selectors', () => {
expect( firstBlockFirstCall.map( ( item ) => item.id ) ).toEqual( [
'core/test-block-a',
'core/test-block-b',
- 'core/test-freeform',
+ 'core/freeform',
'core/test-block-ancestor',
'core/test-block-parent',
'core/block/1',
@@ -3466,7 +3466,7 @@ describe( 'selectors', () => {
expect( secondBlockFirstCall.map( ( item ) => item.id ) ).toEqual( [
'core/test-block-a',
'core/test-block-b',
- 'core/test-freeform',
+ 'core/freeform',
'core/test-block-ancestor',
'core/test-block-parent',
'core/block/1',
diff --git a/packages/blocks/src/api/parser/index.js b/packages/blocks/src/api/parser/index.js
index 52facfb212c8c4..f8ff0c68964dc3 100644
--- a/packages/blocks/src/api/parser/index.js
+++ b/packages/blocks/src/api/parser/index.js
@@ -101,6 +101,7 @@ export function normalizeRawBlock( rawBlock, options ) {
// meaning there are no negative consequences to repeated autop calls.
if (
rawBlockName === fallbackBlockName &&
+ rawBlockName === 'core/freeform' &&
! options?.__unstableSkipAutop
) {
rawInnerHTML = autop( rawInnerHTML ).trim();
diff --git a/packages/blocks/src/api/parser/test/index.js b/packages/blocks/src/api/parser/test/index.js
index 589d6b81be5536..85e51e9d0af025 100644
--- a/packages/blocks/src/api/parser/test/index.js
+++ b/packages/blocks/src/api/parser/test/index.js
@@ -90,19 +90,30 @@ describe( 'block parser', () => {
} );
it( 'should fall back to the freeform content handler if block type not specified', () => {
- registerBlockType( 'core/freeform-block', unknownBlockSettings );
- setFreeformContentHandlerName( 'core/freeform-block' );
+ registerBlockType( 'core/freeform', unknownBlockSettings );
+ setFreeformContentHandlerName( 'core/freeform' );
const block = parseRawBlock( {
innerHTML: 'content',
} );
- expect( block.name ).toEqual( 'core/freeform-block' );
+ expect( block.name ).toEqual( 'core/freeform' );
expect( block.attributes ).toEqual( { content: '
content
' } );
} );
+ it( 'skips adding paragraph tags if freeform block is set to core/html', () => {
+ registerBlockType( 'core/html', unknownBlockSettings );
+ setFreeformContentHandlerName( 'core/html' );
+
+ const block = parseRawBlock( {
+ innerHTML: 'content',
+ } );
+ expect( block.name ).toEqual( 'core/html' );
+ expect( block.attributes ).toEqual( { content: 'content' } );
+ } );
+
it( 'skips adding paragraph tags if __unstableSkipAutop is passed as an option', () => {
- registerBlockType( 'core/freeform-block', unknownBlockSettings );
- setFreeformContentHandlerName( 'core/freeform-block' );
+ registerBlockType( 'core/freeform', unknownBlockSettings );
+ setFreeformContentHandlerName( 'core/freeform' );
const block = parseRawBlock(
{
@@ -112,7 +123,7 @@ describe( 'block parser', () => {
__unstableSkipAutop: true,
}
);
- expect( block.name ).toEqual( 'core/freeform-block' );
+ expect( block.name ).toEqual( 'core/freeform' );
expect( block.attributes ).toEqual( { content: 'content' } );
} );
diff --git a/packages/blocks/src/api/serializer.js b/packages/blocks/src/api/serializer.js
index fff687767b7fa8..92559b1a0e7173 100644
--- a/packages/blocks/src/api/serializer.js
+++ b/packages/blocks/src/api/serializer.js
@@ -390,7 +390,8 @@ export function __unstableSerializeAndClean( blocks ) {
// pre-block-editor removep'd content formatting.
if (
blocks.length === 1 &&
- blocks[ 0 ].name === getFreeformContentHandlerName()
+ blocks[ 0 ].name === getFreeformContentHandlerName() &&
+ blocks[ 0 ].name === 'core/freeform'
) {
content = removep( content );
}
diff --git a/packages/blocks/src/api/test/serializer.js b/packages/blocks/src/api/test/serializer.js
index 22fa5bc7b6dc6a..6cb21470f9e1fa 100644
--- a/packages/blocks/src/api/test/serializer.js
+++ b/packages/blocks/src/api/test/serializer.js
@@ -244,7 +244,7 @@ describe( 'block serializer', () => {
describe( 'serializeBlock()', () => {
it( 'serializes the freeform content fallback block without comment delimiters', () => {
- registerBlockType( 'core/freeform-block', {
+ registerBlockType( 'core/freeform', {
category: 'text',
title: 'freeform block',
attributes: {
@@ -254,8 +254,8 @@ describe( 'block serializer', () => {
},
save: ( { attributes } ) => attributes.fruit,
} );
- setFreeformContentHandlerName( 'core/freeform-block' );
- const block = createBlock( 'core/freeform-block', {
+ setFreeformContentHandlerName( 'core/freeform' );
+ const block = createBlock( 'core/freeform', {
fruit: 'Bananas',
} );
@@ -264,7 +264,7 @@ describe( 'block serializer', () => {
expect( content ).toBe( 'Bananas' );
} );
it( 'serializes the freeform content fallback block with comment delimiters in nested context', () => {
- registerBlockType( 'core/freeform-block', {
+ registerBlockType( 'core/freeform', {
category: 'text',
title: 'freeform block',
attributes: {
@@ -274,17 +274,17 @@ describe( 'block serializer', () => {
},
save: ( { attributes } ) => attributes.fruit,
} );
- setFreeformContentHandlerName( 'core/freeform-block' );
- const block = createBlock( 'core/freeform-block', {
+ setFreeformContentHandlerName( 'core/freeform' );
+ const block = createBlock( 'core/freeform', {
fruit: 'Bananas',
} );
const content = serializeBlock( block, { isInnerBlocks: true } );
expect( content ).toBe(
- '\n' +
+ '\n' +
'Bananas\n' +
- ''
+ ''
);
} );
it( 'serializes the unregistered fallback block without comment delimiters', () => {
diff --git a/packages/editor/src/store/test/selectors.js b/packages/editor/src/store/test/selectors.js
index 2a22b4523444ba..8b36e789614537 100644
--- a/packages/editor/src/store/test/selectors.js
+++ b/packages/editor/src/store/test/selectors.js
@@ -260,7 +260,7 @@ describe( 'selectors', () => {
parent: [ 'core/test-block-b' ],
} );
- registerBlockType( 'core/test-freeform', {
+ registerBlockType( 'core/freeform', {
save: ( props ) => { props.attributes.content },
category: 'text',
title: 'Test Freeform Content Handler',
@@ -287,7 +287,7 @@ describe( 'selectors', () => {
save: () => null,
} );
- setFreeformContentHandlerName( 'core/test-freeform' );
+ setFreeformContentHandlerName( 'core/freeform' );
setDefaultBlockName( 'core/test-default' );
cachedSelectors.forEach( ( { clear } ) => clear() );
@@ -298,7 +298,7 @@ describe( 'selectors', () => {
unregisterBlockType( 'core/test-block-a' );
unregisterBlockType( 'core/test-block-b' );
unregisterBlockType( 'core/test-block-c' );
- unregisterBlockType( 'core/test-freeform' );
+ unregisterBlockType( 'core/freeform' );
unregisterBlockType( 'core/test-default' );
setFreeformContentHandlerName( undefined );
@@ -1335,7 +1335,7 @@ describe( 'selectors', () => {
value: [
{
clientId: 123,
- name: 'core/test-freeform',
+ name: 'core/freeform',
isValid: true,
attributes: {
content: '',
@@ -1362,7 +1362,7 @@ describe( 'selectors', () => {
value: [
{
clientId: 123,
- name: 'core/test-freeform',
+ name: 'core/freeform',
isValid: true,
attributes: {
content: '',
@@ -1736,7 +1736,7 @@ describe( 'selectors', () => {
value: [
{
clientId: 123,
- name: 'core/test-freeform',
+ name: 'core/freeform',
isValid: true,
attributes: {
content: '',
@@ -1762,7 +1762,7 @@ describe( 'selectors', () => {
value: [
{
clientId: 123,
- name: 'core/test-freeform',
+ name: 'core/freeform',
isValid: true,
attributes: {
content: '',
@@ -1790,7 +1790,7 @@ describe( 'selectors', () => {
value: [
{
clientId: 123,
- name: 'core/test-freeform',
+ name: 'core/freeform',
isValid: true,
attributes: {
content: 'Test Data',
@@ -1818,7 +1818,7 @@ describe( 'selectors', () => {
value: [
{
clientId: 123,
- name: 'core/test-freeform',
+ name: 'core/freeform',
isValid: true,
attributes: {
content: '',
@@ -1826,7 +1826,7 @@ describe( 'selectors', () => {
},
{
clientId: 456,
- name: 'core/test-freeform',
+ name: 'core/freeform',
isValid: true,
attributes: {
content: '',
@@ -2409,7 +2409,7 @@ describe( 'selectors', () => {
} );
it( "returns removep'd serialization of blocks for single unknown", () => {
- const unknownBlock = createBlock( 'core/test-freeform', {
+ const unknownBlock = createBlock( 'core/freeform', {
content: 'foo
',
} );
const state = {
@@ -2431,10 +2431,10 @@ describe( 'selectors', () => {
} );
it( "returns non-removep'd serialization of blocks for multiple unknown", () => {
- const firstUnknown = createBlock( 'core/test-freeform', {
+ const firstUnknown = createBlock( 'core/freeform', {
content: 'foo
',
} );
- const secondUnknown = createBlock( 'core/test-freeform', {
+ const secondUnknown = createBlock( 'core/freeform', {
content: 'bar
',
} );
const state = {