add schema
This commit is contained in:
@@ -38,11 +38,13 @@ export default {
|
|||||||
content: `
|
content: `
|
||||||
<p>Example Text</p>
|
<p>Example Text</p>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tbody>
|
||||||
<td>Test</td>
|
<tr>
|
||||||
<td>Test</td>
|
<td>Test</td>
|
||||||
<td>Test</td>
|
<td>Test</td>
|
||||||
</tr>
|
<td>Test</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<p>Example Text</p>
|
<p>Example Text</p>
|
||||||
`,
|
`,
|
||||||
@@ -56,7 +58,7 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
table {
|
table, tr, td {
|
||||||
border: 3px solid red;
|
border: 3px solid red;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,7 +1,33 @@
|
|||||||
import { Node } from '@tiptap/core'
|
import { Node, mergeAttributes } from '@tiptap/core'
|
||||||
|
|
||||||
|
export interface TableCellOptions {
|
||||||
|
HTMLAttributes: {
|
||||||
|
[key: string]: any
|
||||||
|
},
|
||||||
|
}
|
||||||
export const TableCell = Node.create({
|
export const TableCell = Node.create({
|
||||||
name: 'tableCell',
|
name: 'tableCell',
|
||||||
|
|
||||||
|
defaultOptions: <TableCellOptions>{
|
||||||
|
HTMLAttributes: {},
|
||||||
|
},
|
||||||
|
|
||||||
|
// content: options.cellContent,
|
||||||
|
content: 'block+',
|
||||||
|
// attrs: cellAttrs,
|
||||||
|
// tableRole: 'cell',
|
||||||
|
isolating: true,
|
||||||
|
|
||||||
|
parseHTML() {
|
||||||
|
// return [{ tag: 'td', getAttrs: dom => getCellAttrs(dom, extraAttrs) }]
|
||||||
|
return [{ tag: 'td' }]
|
||||||
|
},
|
||||||
|
|
||||||
|
renderHTML({ HTMLAttributes }) {
|
||||||
|
// toDOM(node) { return ["td", setCellAttrs(node, extraAttrs), 0] }
|
||||||
|
return ['td', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0]
|
||||||
|
},
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
declare module '@tiptap/core' {
|
declare module '@tiptap/core' {
|
||||||
|
|||||||
@@ -1,7 +1,30 @@
|
|||||||
import { Node } from '@tiptap/core'
|
import { Node, mergeAttributes } from '@tiptap/core'
|
||||||
|
|
||||||
|
export interface TableRowOptions {
|
||||||
|
HTMLAttributes: {
|
||||||
|
[key: string]: any
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
export const TableRow = Node.create({
|
export const TableRow = Node.create({
|
||||||
name: 'tableRow',
|
name: 'tableRow',
|
||||||
|
|
||||||
|
defaultOptions: <TableRowOptions>{
|
||||||
|
HTMLAttributes: {},
|
||||||
|
},
|
||||||
|
|
||||||
|
// content: '(tableCell | tableHeader)*',
|
||||||
|
content: 'tableCell*',
|
||||||
|
|
||||||
|
// tableRole: 'row',
|
||||||
|
|
||||||
|
parseHTML() {
|
||||||
|
return [{ tag: 'tr' }]
|
||||||
|
},
|
||||||
|
|
||||||
|
renderHTML({ HTMLAttributes }) {
|
||||||
|
return ['tr', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0]
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
declare module '@tiptap/core' {
|
declare module '@tiptap/core' {
|
||||||
|
|||||||
@@ -1,7 +1,33 @@
|
|||||||
import { Node } from '@tiptap/core'
|
import { Node, mergeAttributes } from '@tiptap/core'
|
||||||
|
|
||||||
|
export interface TableOptions {
|
||||||
|
HTMLAttributes: {
|
||||||
|
[key: string]: any
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
export const Table = Node.create({
|
export const Table = Node.create({
|
||||||
name: 'table',
|
name: 'table',
|
||||||
|
|
||||||
|
defaultOptions: <TableOptions>{
|
||||||
|
HTMLAttributes: {},
|
||||||
|
},
|
||||||
|
|
||||||
|
content: 'tableRow+',
|
||||||
|
|
||||||
|
// tableRole: 'table',
|
||||||
|
|
||||||
|
isolating: true,
|
||||||
|
|
||||||
|
group: 'block',
|
||||||
|
|
||||||
|
parseHTML() {
|
||||||
|
return [{ tag: 'table' }]
|
||||||
|
},
|
||||||
|
|
||||||
|
renderHTML({ HTMLAttributes }) {
|
||||||
|
return ['table', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), ['tbody', 0]]
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
declare module '@tiptap/core' {
|
declare module '@tiptap/core' {
|
||||||
|
|||||||
Reference in New Issue
Block a user