mirror of
https://github.com/ueberdosis/tiptap.git
synced 2024-11-24 19:59:02 +08:00
add schema
This commit is contained in:
parent
6a1661cf9f
commit
cfe0898fdd
@ -38,11 +38,13 @@ export default {
|
||||
content: `
|
||||
<p>Example Text</p>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Test</td>
|
||||
<td>Test</td>
|
||||
<td>Test</td>
|
||||
</tr>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Test</td>
|
||||
<td>Test</td>
|
||||
<td>Test</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Example Text</p>
|
||||
`,
|
||||
@ -56,7 +58,7 @@ export default {
|
||||
</script>
|
||||
|
||||
<style>
|
||||
table {
|
||||
table, tr, td {
|
||||
border: 3px solid red;
|
||||
}
|
||||
</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({
|
||||
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' {
|
||||
|
@ -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({
|
||||
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' {
|
||||
|
@ -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({
|
||||
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' {
|
||||
|
Loading…
Reference in New Issue
Block a user