tiptap/docs/api/extensions/collaboration.md
Dominik f387ad3dd4
feat(pm): new prosemirror package for dependency resolving
* chore:(core): migrate to tsup

* chore: migrate blockquote and bold to tsup

* chore: migrated bubble-menu and bullet-list to tsup

* chore: migrated more packages to tsup

* chore: migrate code and character extensions to tsup

* chore: update package.json to simplify build for all packages

* chore: move all packages to tsup as a build process

* chore: change ci build task

* feat(pm): add prosemirror meta package

* rfix: resolve issues with build paths & export mappings

* docs: update documentation to include notes for @tiptap/pm

* chore(pm): update tsconfig

* chore(packages): update packages

* fix(pm): add package export infos & fix dependencies

* chore(general): start moving to pm package as deps

* chore: move to tiptap pm package internally

* fix(demos): fix demos working with new pm package

* fix(tables): fix tables package

* fix(tables): fix tables package

* chore(demos): pinned typescript version

* chore: remove unnecessary tsconfig

* chore: fix netlify build

* fix(demos): fix package resolving for pm packages

* fix(tests): fix package resolving for pm packages

* fix(tests): fix package resolving for pm packages

* chore(tests): fix tests not running correctly after pm package

* chore(pm): add files to files array

* chore: update build workflow

* chore(tests): increase timeout time back to 12s

* chore(docs): update docs

* chore(docs): update installation guides & pm information to docs

* chore(docs): add link to prosemirror docs

* fix(vue-3): add missing build step

* chore(docs): comment out cdn link

* chore(docs): remove semicolons from docs

* chore(docs): remove unnecessary installation note

* chore(docs): remove unnecessary installation note
2023-02-02 17:37:33 +01:00

2.9 KiB
Raw Blame History

description icon
Collaborative text editing can be fricking complex, but it doesnt have to be that way. user-voice-line

Collaboration

Version Downloads

The Collaboration extension enables you to collaborate with others in a single document. The implementation is based on Y.js by Kevin Jahns, which is the coolest thing to integrate collaborative editing in your project.

The history works totally different in a collaborative editing setup. If you undo a change, you dont want to undo changes of other users. To handle that behaviour this extension provides an own undo and redo command. Dont load the default History extension together with the Collaboration extension to avoid conflicts.

:::pro Pro Extension We kindly ask you to sponsor our work when using this extension in production. :::

Installation

npm install @tiptap/extension-collaboration yjs y-websocket

Settings

document

An initialized Y.js document.

Default: null

Collaboration.configure({
  document: new Y.Doc(),
})

field

Name of a Y.js fragment, can be changed to sync multiple fields with one Y.js document.

Default: 'default'

Collaboration.configure({
  document: new Y.Doc(),
  field: 'title',
})

fragment

A raw Y.js fragment, can be used instead of document and field.

Default: null

Collaboration.configure({
  fragment: new Y.Doc().getXmlFragment('body'),
})

Commands

The Collboration extension comes with its own history extension. Make sure to disable the default extension, if youre working with the StarterKit.

undo()

Undo the last change.

editor.commands.undo()

redo()

Redo the last change.

editor.commands.redo()

Keyboard shortcuts

Command Windows/Linux macOS
undo() Control Z Cmd Z
redo() Shift Control Z
Control Y
Shift Cmd Z
Cmd Y

Source code

packages/extension-collaboration/

Usage

:::warning Public The content of this editor is shared with other users. ::: https://embed.tiptap.dev/preview/Extensions/Collaboration?hideSource https://embed.tiptap.dev/preview/Extensions/Collaboration