github.com/ngocphuongnb/tetua@v0.0.7-alpha/packages/editor/src/extensions/index.ts (about) 1 import Table from '@tiptap/extension-table'; 2 import StarterKit from '@tiptap/starter-kit'; 3 import QuickEdit from './quick-edit'; 4 import Highlight from '@tiptap/extension-highlight'; 5 import Typography from '@tiptap/extension-typography'; 6 import Document from '@tiptap/extension-document'; 7 import TableRow from '@tiptap/extension-table-row'; 8 import TableCell from '@tiptap/extension-table-cell'; 9 import TableHeader from '@tiptap/extension-table-header'; 10 import TextAlign from '@tiptap/extension-text-align'; 11 import TaskList from '@tiptap/extension-task-list'; 12 import TaskItem from '@tiptap/extension-task-item'; 13 import Placeholder from '@tiptap/extension-placeholder'; 14 import { Iframe } from './iframe'; 15 import { Link } from './link'; 16 // import { ExtendedImage } from './image'; 17 import { CodeBlock } from './codeblock'; 18 import { TetuaEditorProps } from '..'; 19 import { getImageExtension } from './image'; 20 import { Extensions } from '@tiptap/core'; 21 22 export function getExtensions(props: TetuaEditorProps) { 23 const extensions: Extensions = [ 24 Highlight, 25 Typography, 26 getImageExtension({ 27 uploadHandler: props.uploadHandler, 28 }), 29 Iframe, 30 TableRow, 31 TableCell, 32 TableHeader, 33 TextAlign, 34 TaskList, 35 CodeBlock, 36 QuickEdit.configure(), 37 TaskItem.configure({ 38 nested: true, 39 }), 40 Link.configure({ 41 autolink: false, 42 openOnClick: false, 43 linkOnPaste: false, 44 }), 45 StarterKit.configure({ 46 codeBlock: false, 47 document: false, 48 }), 49 Table.configure({ 50 resizable: true, 51 }), 52 Placeholder.configure({ 53 placeholder: ({ node }) => { 54 if (!props.disableTitle) { 55 if (node.type.name === 'heading') { 56 if (node.attrs.level == 1) { 57 return 'Enter the name'; 58 } 59 60 return 'Heading content'; 61 } 62 } 63 64 return 'Start typing something...'; 65 }, 66 }) 67 ]; 68 69 if (!props.disableTitle) { 70 extensions.push(Document.extend({ 71 content: 'heading block*', 72 })); 73 } else { 74 extensions.push(Document); 75 } 76 77 return extensions; 78 } 79