diff --git a/packages/extension-heading/index.ts b/packages/extension-heading/index.ts index 577af280..3594b326 100644 --- a/packages/extension-heading/index.ts +++ b/packages/extension-heading/index.ts @@ -1,5 +1,7 @@ import { Node, CommandSpec } from '@tiptap/core' import { NodeSpec } from 'prosemirror-model' +import VerEx from 'verbal-expressions' +import { textblockTypeInputRule } from 'prosemirror-inputrules' type Level = 1 | 2 | 3 | 4 | 5 | 6 @@ -52,4 +54,17 @@ export default class Heading extends Node { } } + inputRules() { + return this.options.levels.map((level: Level) => { + const regex = VerEx() + .startOfLine() + .find('#') + .repeatPrevious(level) + .whitespace() + .endOfLine() + + return textblockTypeInputRule(regex, this.type, { level }) + }) + } + } \ No newline at end of file