diff --git a/packages/blocks/src/api/parser/index.ts b/packages/blocks/src/api/parser/index.ts index efcbe4bfe4d1bf..6fe9fff34c6d17 100644 --- a/packages/blocks/src/api/parser/index.ts +++ b/packages/blocks/src/api/parser/index.ts @@ -190,10 +190,18 @@ export function parseRawBlock( // It might be a good idea to throw a warning here. // TODO: I'm unsure about the unregisteredFallbackBlock check, // it might ignore some dynamic unregistered third party blocks wrongly. - const isFallbackBlock = - normalizedBlock.blockName === getFreeformContentHandlerName() || + const isUnregisteredBlock = normalizedBlock.blockName === getUnregisteredTypeHandlerName(); - if ( ! blockType || ( ! normalizedBlock.innerHTML && isFallbackBlock ) ) { + + const isImplicitFreeformBlock = + normalizedBlock.blockName === getFreeformContentHandlerName() && + rawBlock.blockName !== getFreeformContentHandlerName(); + + if ( + ! blockType || + ( ! normalizedBlock.innerHTML && + ( isUnregisteredBlock || isImplicitFreeformBlock ) ) + ) { return; } diff --git a/packages/blocks/src/api/raw-handling/paste-handler.ts b/packages/blocks/src/api/raw-handling/paste-handler.ts index c8095d510f2c90..f2e9373df76b4c 100644 --- a/packages/blocks/src/api/raw-handling/paste-handler.ts +++ b/packages/blocks/src/api/raw-handling/paste-handler.ts @@ -118,10 +118,11 @@ export function pasteHandler( { if ( content.indexOf( '