Collaborative Markdown Editor

I am hoping to integrate a collaborative markdown editor into my meteor app.
It should allow users to edit the “Body Text” field in a document in real time with each other.
Does anyone know if a plugin is available for this - or what the best what to go about it is.

[similar to Google Docs collaboration]

I think you should take a look at the topic below; and perhaps bump there to make it alive again?

There is also this (which isn’t quite what you’re asking for, but may be useful):

Yes - i saw finch - but is more of a full blown webiste builder

im looking for a collaborative editor for a single database field “body text”

If its truly just plain text then something like https://github.com/mizzao/meteor-sharejs might work for you… otherwise https://github.com/prosemeteor/prosemirror is the only meteor based collaborative editor implementation effort I know of

1 Like

@andyl did you ever find anything? I’m looking at doing something similar.

This may help:
https://www.writewithme.dev
The blog post: https://medium.com/open-graphql/how-to-build-a-real-time-collaborative-markdown-editor-with-react-hooks-graphql-aws-appsync-dc0c121683f4
Source code: https://github.com/dabit3/write-with-me
I think it’s easier to build with MeteorJS.

Regarding mizzao:sharejs: This package isn’t maintained anymore, but you can use edemaine:sharejs instead. You can use it for a simple textarea or with code editors (Codemirror and Ace).

See my blog post regarding this package:

@edemaine works on coauthor https://github.com/edemaine/coauthor which is an collaboration platform for computer science. It includes markdown support and is actively maintained.

I work on updating my collaborative online IDE based on Meteor, which I use for my coding workshops for kids since almost five years, source code is available here: https://github.com/Coding4KidsAT/coding4kids-ide

As both projects are open source, you can cherry-pick from the code, what might fit into your project.

Good luck!

BTW: I’m currently extending the ShareJS package to reuse the websocket used by Meteor. I’ll publish it in the approximately two weeks.

Regarding Ace: This package works with edemaine:sharejs: https://atmospherejs.com/qnipp/sharejs-ace

Regarding CodeMirror: I suggest to try https://atmospherejs.com/edemaine/sharejs-codemirror

2 Likes

@qnipp Thanks for the praise! Indeed, I’m actively using my sharejs fork, and it’s working pretty well. I’ve fixed a few bugs here and there. The main weird behavior is that, if one person hits undo, then the last action by anyone (not just that person) gets undone.

Your work on using the Meteor socket sounds interesting! My guess is that this may fix some issues on mobile. Performance improvements too? Feel free to send a PR.

1 Like