joemccann / dillinger

The last Markdown editor, ever.
https://dillinger.io
MIT License
7.9k stars 1.1k forks source link

etherpad-like collaborative editing #15

Open DrAzraelTod opened 12 years ago

DrAzraelTod commented 12 years ago

Well... it would create pretty much the greatest thing since sliced bread if one could use dillinger to collaborative edit markdown-documents.

..BUT: the current Backend that etherpad, etherpad lite and the likes use is slow and buggy as hell. If you don't want to restart the server every day then this approach is probably not what you want to implement.

joemccann commented 12 years ago

I'm considering creating a paid, hosted version of Dillinger to justify the effort in making this a reality. Other's have requested jsbin style short urls, etc. These are all feasible features, but require time, which clearly we devs have plenty of! =D

InAnimaTe commented 10 years ago

Hmm. So I actually just deployed Dillinger at my workplace as we obviously want something like this to be internal for obvious reasons. My co-workers and I were literally just discussing how useful it would be to have something like this...similar to http://benweet.github.io/stackedit/ except for we like Dillinger more.

So if you did do something like this, I think we would gladly pay for it so we could implement it in our own network.

techtonik commented 10 years ago

I am not a JS expert to do it myself fast, but here is the engine - http://sharejs.org/

maninalift commented 10 years ago

I think that using sharejs to add real-time collaborative updating on it's own is fairly trivial.

However the issues that then arise are not. Once you have other people editing your document you really want to understand who is changing what and I there isn't a drop-in library to do that for you.

I will give it a go and see how far I get.

johntyree commented 10 years ago

Why do you have to understand who is changing what? Also, did you get anywhere with this @maninalift ? I would love to see it working.

techtonik commented 10 years ago

Why do you have to understand who is changing what?

To blame them. =) But you're right - most time you just need it for fun, and fun is a killer feature that sells tanks.

johntyree commented 10 years ago

@maninalift i have a prototype of this working but it's rough. The biggest remaining issue is unifying sharejs documents with dillingers documents.

maninalift commented 10 years ago

@johntyree

Urm, yes I did have get something working. I'm sorry a load of things that are competing to take up all of my time at the moment: children, buying a house, work...

If I can find the code I will dump it on you, apart from that it will be at a couple of months before I can do anything useful.

RoyiAvital commented 9 years ago

Doesn't Google SDK allows that?

johntyree commented 9 years ago

There are several ways to do it.

I have a fork that I use at work based on ShareJS. It needs some attention to be compatible with all of the API changes related to plugins recently though.

https://github.com/johntyree/dillinger/tree/collaborative

johntyree commented 9 years ago

Another, maybe better alternative would be to use something like mozilla's TogetherJS.

techtonik commented 9 years ago

OnlinePythonTutor uses TogetherJS - http://pythontutor.com/visualize.html#mode=edit

johntyree commented 9 years ago

Adding TogetherJS support is literally two lines, but I don't think it's a good fit. Rather than two editors pointed a file, it's more like two browsers pointed at an editor. You can't scroll independently, for example. I'm a little worried about the integration with storage as well. What happens when someone else tries to access their storage? You just have them clicking around on your screen? Popping up dialogs and whatnots? No-go imo.

techtonik commented 9 years ago

Neither Etherpad nor Google Docs use popups. Storage is async, so it doesn't care who writes - conflict resolution is done using Operational Transformaton (OT). Window scroll and position is a function that is client dependent and not shared.

techtonik commented 9 years ago

Or do you mean that Dillinger doesn't have transitive storage and makes saves directly to Google Drive etc.?

liljenstolpe commented 8 years ago

I'd be willing to pay for a version that supports collaborative editing, but would prefer to be able to host ourselves.

KristerV commented 4 years ago

Ready to pay. My 8 people company needs this. Currently using Hackmd for the editing and dillinger for PDF export simply because it looks much nicer.