diff --git a/packages/core/src/blocks/Code/block.ts b/packages/core/src/blocks/Code/block.ts index fc968b55fe..1458257e48 100644 --- a/packages/core/src/blocks/Code/block.ts +++ b/packages/core/src/blocks/Code/block.ts @@ -102,6 +102,7 @@ export const createCodeBlockSpec = createBlockSpec( const code = el.firstElementChild!; return parser.parse(code, { + preserveWhitespace: "full", topNode: schema.nodes["codeBlock"].create(), }).content; }, diff --git a/tests/src/unit/core/formatConversion/parse/__snapshots__/html/codeBlocksMultiLine.json b/tests/src/unit/core/formatConversion/parse/__snapshots__/html/codeBlocksMultiLine.json new file mode 100644 index 0000000000..6cb94084f1 --- /dev/null +++ b/tests/src/unit/core/formatConversion/parse/__snapshots__/html/codeBlocksMultiLine.json @@ -0,0 +1,19 @@ +[ + { + "children": [], + "content": [ + { + "styles": {}, + "text": "console.log("First Line") +console.log("Second Line") +console.log("Third Line")", + "type": "text", + }, + ], + "id": "1", + "props": { + "language": "text", + }, + "type": "codeBlock", + }, +] \ No newline at end of file diff --git a/tests/src/unit/core/formatConversion/parse/parseTestInstances.ts b/tests/src/unit/core/formatConversion/parse/parseTestInstances.ts index 929af63f59..86fe9157be 100644 --- a/tests/src/unit/core/formatConversion/parse/parseTestInstances.ts +++ b/tests/src/unit/core/formatConversion/parse/parseTestInstances.ts @@ -814,6 +814,15 @@ With Hard Break

}, executeTest: testParseHTML, }, + { + testCase: { + name: "codeBlocksMultiLine", + content: `
console.log("First Line")
+console.log("Second Line")
+console.log("Third Line")
`, + }, + executeTest: testParseHTML, + }, { testCase: { name: "basicBlockquote",