add details experiment

This commit is contained in:
Hans Pagel
2021-02-10 15:48:20 +01:00
parent 90efee5622
commit 8c3b35d0c0
5 changed files with 144 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
import { Node, mergeAttributes } from '@tiptap/core'
export interface DetailsOptions {
HTMLAttributes: {
[key: string]: any
},
}
export default Node.create({
name: 'details',
content: 'detailsSummary block+',
group: 'block',
defaultOptions: <DetailsOptions>{
HTMLAttributes: {},
},
addAttributes() {
return {
open: {
default: true,
parseHTML: element => {
return {
open: element.hasAttribute('open'),
}
},
renderHTML: attributes => {
if (!attributes.open) {
return null
}
return {
open: '',
}
},
},
}
},
parseHTML() {
return [{
tag: 'details',
}]
},
renderHTML({ HTMLAttributes }) {
return ['details', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0]
},
})