pedrosanta / quill-sharedb-cursors Goto Github PK
View Code? Open in Web Editor NEWCollaborative editing with multi cursors sync using Quill and ShareDB.
Home Page: https://quill-sharedb-cursors.herokuapp.com
License: MIT License
Collaborative editing with multi cursors sync using Quill and ShareDB.
Home Page: https://quill-sharedb-cursors.herokuapp.com
License: MIT License
A known issue of this approach/example is a racing condition which makes cursors stuck/out-of-correct-position sometimes when a selection-change
cursor update (which goes through cursors socket) is quickly followed by some edits (which goes through ShareDB and its socket) - like using the back arrow key with Ctrl to go to the beginning of a word and immediately start typing.
How to replicate:
My take is that:
One solution for this was if... cursor updates could be transmitted through ShareDB (probably as ephemeral metadata like stated on share/sharedb#128).
Still needs more testing.
Great project!
The install instructions mention Docker, but the demo is deployed on Heroku. Is there a guide available on how to deploy this to Heroku?
Sometimes, when two or more users are typing and adding new lines/pressing Enter key, it can lead to cursor misplacement/shift off by one, two, etc, positions.
You can replicate this by having two people on this example, one writing forward without entering new lines, and another writing and adding a few new lines. This doesn't occur on the first new line attempts, but after a solid half-dozen or more new lines/enter keypresses by the second person.
Also needs more testing/debugging.
I noticed that if User1 highlights an area and User2 tries to click in the highlighted are they are not able to. However, if User2 uses the arrow keys they can enter the highlighted text area. Is this desirable or not? If User2 types in the highlighted text-area the amount of spaces highlighted remains the same but the original highlighted text is modified and now includes the additional characters.
See Ex:
[this is highlighted] -> brackets mean highlighted text
User 1: hi my country is [great] (User1 highlight)
User 2: hi my country is [not g]reat (User2 modifiying highlighted text changes the highlighted portion)
@pedrosanta hey, and thank you for the wonderful work so far with sharedb and quill!
I was able to follow along and get quill and sharedb working with my application.
But I have multiple quill documents on a page. And each document generates its own quill instance with cursor module.
So each quill instance registers its text change event with the syncing of the cursors.
So when editing a particular note, it sets the range of that note, but the range is applied to every note.
I think it would be good to come up with a solution where it doesn't require only one quill document on a page.
We need someway to scope the cursor to the particular quill instance.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.