add basic mention extension

This commit is contained in:
Philipp Kühn
2020-12-17 17:13:35 +01:00
parent c3d0f004d6
commit 5a9b96aaf0
13 changed files with 179 additions and 13 deletions

View File

@@ -0,0 +1,5 @@
import { Mention } from './mention'
export * from './mention'
export default Mention

View File

@@ -0,0 +1,49 @@
import { Node } from '@tiptap/core'
import Suggestion from '@tiptap/suggestion'
export const Mention = Node.create({
name: 'mention',
group: 'inline',
inline: true,
selectable: false,
atom: true,
addAttributes() {
return {
id: {
default: null,
},
label: {
default: null,
},
}
},
parseHTML() {
return [
{
tag: 'span[data-mention]',
},
]
},
renderHTML({ node, HTMLAttributes }) {
return ['span', HTMLAttributes, `@${node.attrs.label}`]
},
addProseMirrorPlugins() {
return [
Suggestion({}),
]
},
})
declare module '@tiptap/core' {
interface AllExtensions {
Mention: typeof Mention,
}
}