diff --git a/packages/core/src/blocks/Code/block.test.ts b/packages/core/src/blocks/Code/block.test.ts index 9ce39df387..00f3a71eee 100644 --- a/packages/core/src/blocks/Code/block.test.ts +++ b/packages/core/src/blocks/Code/block.test.ts @@ -82,12 +82,12 @@ describe("Code block input rule", () => { expect((block.props as any).language).toBe("ts"); }); - it("converts ``` + space into a codeBlock with empty language", () => { + it("converts ``` + space into a codeBlock with the default language", () => { typeString(editor, "``` "); const block = editor.document[0]; expect(block.type).toBe("codeBlock"); - expect((block.props as any).language).toBe(""); + expect((block.props as any).language).toBe("text"); }); it("converts ```javascript + space into a codeBlock", () => { @@ -138,13 +138,13 @@ describe("Code block input rule", () => { expect(block.content).toEqual([]); }); - it("converts ``` + Enter into a codeBlock with empty language", () => { + it("converts ``` + Enter into a codeBlock with the default language", () => { typeString(editor, "```"); pressKey(editor, "Enter"); const block = editor.document[0]; expect(block.type).toBe("codeBlock"); - expect((block.props as any).language).toBe(""); + expect((block.props as any).language).toBe("text"); }); it("converts ```javascript + Enter into a codeBlock", () => { diff --git a/packages/core/src/blocks/Code/helpers/extensions/CodeKeyboardShortcutsExtension.ts b/packages/core/src/blocks/Code/helpers/extensions/CodeKeyboardShortcutsExtension.ts index f6b69f6c69..a36e92159b 100644 --- a/packages/core/src/blocks/Code/helpers/extensions/CodeKeyboardShortcutsExtension.ts +++ b/packages/core/src/blocks/Code/helpers/extensions/CodeKeyboardShortcutsExtension.ts @@ -103,8 +103,13 @@ export const CodeKeyboardShortcutsExtension = find: /^```(.*?)\s$/, replace: ({ match }) => { const languageName = match[1].trim(); + // Without a language suffix there is nothing to resolve, so fall + // back to the default rather than storing an empty language that + // no highlighter can render. const attributes = { - language: getLanguageId(options, languageName) ?? languageName, + language: + getLanguageId(options, languageName) ?? + (languageName || options.defaultLanguage || "text"), }; return {