* add new tiptap editor extension monorepo package

* move tiptap packages to main package.json
* add tiptap extensions schema to collaborative backend
* add basic README
This commit is contained in:
Philipinho
2024-01-14 23:05:41 +01:00
parent e5758f7ece
commit 9a8b605f70
16 changed files with 469 additions and 314 deletions

View File

@ -19,8 +19,8 @@
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config test/jest-e2e.json",
"typeorm": "typeorm-ts-node-commonjs -d src/database/typeorm.config.ts",
"migration:generate": "pnpm run typeorm migration:generate ./src/database/migrations/$npm_config_name",
"migration:create": "typeorm-ts-node-commonjs migration:create ./src/database/migrations/$npm_config_name",
"migration:generate": "cd ./src/database/migrations/ && pnpm run typeorm migration:generate",
"migration:create": "cd ./src/database/migrations/ && typeorm-ts-node-commonjs migration:create",
"migration:run": "pnpm run typeorm migration:run",
"migration:revert": "pnpm run typeorm migration:revert",
"migration:show": "pnpm run typeorm migration:show"
@ -30,8 +30,6 @@
"@aws-sdk/s3-request-presigner": "^3.456.0",
"@fastify/multipart": "^8.1.0",
"@fastify/static": "^6.12.0",
"@hocuspocus/server": "^2.8.1",
"@hocuspocus/transformer": "^2.8.1",
"@nestjs/common": "^10.3.0",
"@nestjs/config": "^3.1.1",
"@nestjs/core": "^10.3.0",

View File

@ -7,6 +7,19 @@ import * as Y from 'yjs';
import { PageService } from '../../core/page/services/page.service';
import { Injectable } from '@nestjs/common';
import { TiptapTransformer } from '@hocuspocus/transformer';
import { StarterKit } from '@tiptap/starter-kit';
import { TextAlign } from '@tiptap/extension-text-align';
import { TaskList } from '@tiptap/extension-task-list';
import { TaskItem } from '@tiptap/extension-task-item';
import { Underline } from '@tiptap/extension-underline';
import { Link } from '@tiptap/extension-link';
import { Superscript } from '@tiptap/extension-superscript';
import SubScript from '@tiptap/extension-subscript';
import { Highlight } from '@tiptap/extension-highlight';
import { Typography } from '@tiptap/extension-typography';
import { TextStyle } from '@tiptap/extension-text-style';
import { Color } from '@tiptap/extension-color';
import { TrailingNode, Comment } from '@docmost/editor-ext';
@Injectable()
export class PersistenceExtension implements Extension {
@ -42,7 +55,22 @@ export class PersistenceExtension implements Extension {
if (page.content) {
console.log('converting json to ydoc');
const ydoc = TiptapTransformer.toYdoc(page.content, 'default');
const ydoc = TiptapTransformer.toYdoc(page.content, 'default', [
StarterKit,
Comment,
TextAlign,
TaskList,
TaskItem,
Underline,
Link,
Superscript,
SubScript,
Highlight,
Typography,
TrailingNode,
TextStyle,
Color,
]);
Y.encodeStateAsUpdate(ydoc);
return ydoc;
}