import { Node, nodeInputRule } from '@tiptap/core' declare module '@tiptap/core/src/Editor' { interface Editor { horizontalRule(): Editor, } } export default new Node() .name('horizontalRule') .schema(() => ({ group: 'block', parseDOM: [{ tag: 'hr' }], toDOM: () => ['hr'], })) // .commands(({ editor, type }) => ({ // horizontalRule: next => () => { // const { state, view } = editor // const { dispatch } = view // dispatch(state.tr.replaceSelectionWith(type.create())) // next() // }, // })) .inputRules(({ type }) => [ nodeInputRule(/^(?:---|___\s|\*\*\*\s)$/, type), ]) .create()