mirror of
https://github.com/ueberdosis/tiptap.git
synced 2024-12-24 01:17:50 +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
|
||
|
})
|
||
|
}
|