* chore: add precommit hook for eslint fixes, fix linting issues * chore: add eslint import sort plugin
42 lines
666 B
JavaScript
42 lines
666 B
JavaScript
import { mergeAttributes, Node } from '@tiptap/core'
|
|
import { ReactNodeViewRenderer } from '@tiptap/react'
|
|
|
|
import Component from './Component.jsx'
|
|
|
|
export default Node.create({
|
|
name: 'tableOfContents',
|
|
|
|
group: 'block',
|
|
|
|
atom: true,
|
|
|
|
parseHTML() {
|
|
return [
|
|
{
|
|
tag: 'toc',
|
|
},
|
|
]
|
|
},
|
|
|
|
renderHTML({ HTMLAttributes }) {
|
|
return ['toc', mergeAttributes(HTMLAttributes)]
|
|
},
|
|
|
|
addNodeView() {
|
|
return ReactNodeViewRenderer(Component)
|
|
},
|
|
|
|
addGlobalAttributes() {
|
|
return [
|
|
{
|
|
types: ['heading'],
|
|
attributes: {
|
|
id: {
|
|
default: null,
|
|
},
|
|
},
|
|
},
|
|
]
|
|
},
|
|
})
|