mirror of
https://github.com/ueberdosis/tiptap.git
synced 2024-12-31 05:58:38 +08:00
15 lines
446 B
TypeScript
15 lines
446 B
TypeScript
import { InputRule } from 'prosemirror-inputrules'
|
|
import { NodeType } from 'prosemirror-model'
|
|
|
|
export default function (regexp: RegExp, type: NodeType, getAttrs?: Function) {
|
|
return new InputRule(regexp, (state, match, start, end) => {
|
|
const attrs = getAttrs instanceof Function ? getAttrs(match) : getAttrs
|
|
const { tr } = state
|
|
|
|
if (match[0]) {
|
|
tr.replaceWith(start - 1, end, type.create(attrs))
|
|
}
|
|
|
|
return tr
|
|
})
|
|
} |