nextcloud / notes

✎ Distraction-free notes and writing
https://apps.nextcloud.com/apps/notes
GNU Affero General Public License v3.0
606 stars 134 forks source link

SimpleMDE maintenance status #204

Closed jancborchardt closed 1 month ago

jancborchardt commented 6 years ago

We use SimpleMDE as our base. Unfortunately looking at the repository at https://github.com/sparksuite/simplemde-markdown-editor it does not seem so maintained anymore.

As requirements and issues come in, maybe it makes sense to look for an alternative sooner or later. Maybe someone even took over maintainership in a fork or will do so soon.

No rush, but just to keep that in mind @nextcloud/notes. I guess @stefan-niedermann you have a similar situation with the Android library?

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/59270946-simplemde-maintenance-status?utm_campaign=plugin&utm_content=tracker%2F46751022&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F46751022&utm_medium=issues&utm_source=github).
korelstar commented 6 years ago

Looks like Markdown isn't that hip anymore. :-(

sunjam commented 6 years ago

Here is EasyMDE, a fork that has seen more maintenance. Mentioned in this thread on SimpleMDE. I have not tested it.

juliushaertl commented 6 years ago

I recently came across https://github.com/nhnent/tui.editor which looks pretty nice and seems to be well maintained (at least for now) :wink: I guess we should at least collect some options and compare them. Also in terms of possible WYSIWYG options which have been requested quite often and for stuff like #200

stefan-niedermann commented 6 years ago

I guess @stefan-niedermann you have a similar situation with the Android library?

From time to time... At the moment, the Android-lib is experiencing much attention by its maintainer. Of course this can change every day, but currently i would not describe our lib as "not maintained".

jkaberg commented 6 years ago

Moveing to something like previously suggested (https://github.com/nhnent/tui.editor) would be an HUGE improvement IMHO, or atleast something that resembles an wysiwyg editor

jancborchardt commented 6 years ago

@jkaberg it seems like you’re looking for the Markdown app which renders code on the left and rendered Markdown on the right.

We aim to merge the two as best as possible so you don’t need to have two separate views. Our first priority is notes. Then something we can look into for the future is stuff like iOS Notes and Google Keep does like lists, images etc.

jkaberg commented 6 years ago

@jancborchardt actully no, I'm looking for a notes app with an WYSIWYG editor (as I have a hard time rembering syntaxes 😆), AFAIK neither the notes nor the markdown app has this

I've used https://stackedit.io/ in the past, and would love something like that with Nextcloud (I don't need the split pane thing in the markdown app)

korelstar commented 6 years ago

The TUI Editor looks interesting to me. Maybe, the appearance can be configured, so that we can disable distracting elements?

korelstar commented 6 years ago

Another hint from @biva in #214:

"Mark Text is a realtime preview editor text styles and formatting update automatically as you type". https://marktext.github.io/website/

~Looks also very interesting to me.~ Edit: Oh, that editor requires to be installed locally. Hence, it's not usable for us.

juliushaertl commented 6 years ago

I also use MarkText on the desktop and it is probably the most promising markdown editor I've tried so far. They also seem to move their rendering engine into a npm package, which would allow webapps to use it: https://github.com/MarkText/muya

biva commented 6 years ago

Would you consider using Muya?

korelstar commented 6 years ago

@juliushaertl , @biva : Thanks for the hint! I think we should watch the progress on that project before switching to this editor. Currently, there are only four commits in their repository and they write about themselves:

Muya is still under development and should not be used for production.

biva commented 6 years ago

I think we should watch the progress on that project before switching to this editor.

You're right, but maybe if Nextcloud shows interest for their technology, they might be encouraged to go forward?

marcelklehr commented 5 years ago

How about https://github.com/sofish/pen ?

korelstar commented 5 years ago

In #200, @jancborchardt mentioned the Vue.js based editor tiptap which looks very interesting. However, it currently doesn't support Markdown export which we definitely need. But there is already an issue on that: scrumpy/tiptap#66 and that project's development activity is high, so let's see what will happen in the next months...

Since we want to switch to Vue.js (see #241), we should focus on editors, that already support Vue.js. Here is a list of some: https://github.com/vuejs/awesome-vue#markdown

brandonkirsch commented 5 years ago

I just opened (and closed) Feature Request #284 - I am looking for an editor that allows an option to (temporarily) disable Markdown rendering while I type. It's distracting at times.

Unfortunately, this feature isn't available in any of the Vue.js Markdown editors suggested above. The Toast-UI one looks close, as it has options to toggle between Markdown vs WYSIWYG - but it still does not allow a "plain text" rendering at time of input.

I may wait to see which direction the Nextcloud Notes team decides to go and then look to contribute to the editor that you choose. Thanks.

Larsene commented 5 years ago

In #200, @jancborchardt mentioned the Vue.js based editor tiptap which looks very interesting.

Whow ! Tiptap Notes could be so great ! <3 Thanks, i didn't know about TipTap !

putt1ck commented 5 years ago

In #200, @jancborchardt mentioned the Vue.js based editor tiptap which looks very interesting.

Whow ! Tiptap Notes could be so great ! <3 Thanks, i didn't know about TipTap !

Supports middle click paste? That's a big thumbs up from me :+1:

philippkuehn commented 5 years ago

Hi, creator of tiptap here 👋 Could you explain how do you want to use markdown in your editor?

korelstar commented 5 years ago

@philippkuehn I think the technical requirements are the following:

Regarding requirements from the user experience perspective, @jancborchardt has some ideas (see e.g. #200, https://github.com/nextcloud/notes/issues/158#issuecomment-394533686, https://github.com/nextcloud/notes/issues/138#issuecomment-386765207). Maybe he could list specific requirements from his perspective. This would be indeed helpful in order to chose the desired editor, since I'm currently working on switching to Vue (see #290).

jancborchardt commented 5 years ago

@philippkuehn hi there! To make it short, our design is largely based on iA Writer (without the focus mode or the word highlighting. So very simple, not differentiating between plain text and markdown, so directly showing the **bold** or ## Heading or - list item markings.

The menu bubble from tiptap would be great in addition for regular people who don’t know the markdown syntax.

We haven’t made it rich text so far because of the simplicity and speed.

tnyeanderson commented 5 years ago

StackEdit might also be worth looking into. There is stackedit.js which lets you easily embed the editor into a textarea, but it sends the data off to their server, so that's a no. The whole thing is open source though, and maybe it could be integrated here.

korelstar commented 5 years ago

Thanks for the hint, StackEdit looks quite good. :-)

However, we need a ready-to-use library, here. I think nobody of us has the time to develop and maintain also a MD editor library, even if it is based on an existing editor app. Nevertheless, if someone manages this, we would be happy to have a look into it in order to check if the result is usable for this app.

sunjam commented 5 years ago

EasyMDE is an active SimpleMDE fork, which looks good.

On Mon, Apr 1, 2019, 9:59 AM korelstar notifications@github.com wrote:

Thanks for the hint, StackEdit looks quite good. :-)

However, we need a ready-to-use library, here. I think nobody of us has the time to develop and maintain also a MD editor library, even if it is based on an existing editor app. Nevertheless, if someone manages this, we would be happy to have a look into it in order to check if the result is usable for this app.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/nextcloud/notes/issues/204#issuecomment-478660483, or mute the thread https://github.com/notifications/unsubscribe-auth/ABtFZqxWXL1IRnMo_r-iO_4dm1hQOh5jks5vcjrYgaJpZM4UbGka .

tnyeanderson commented 5 years ago

EasyMDE should be a drop-in replacement for the most part, but maybe getting something more "complete" (AKA github-flavored?) would be better long-term. The biggest feature I want is checkbox support (for which I would gladly provide a bounty upwards of $100). If we are going to go through the process of changing our markdown base, I think we should "shoot for the moon" in that respect. The more I look at StackEdit the more I like it (supports checkboxes, flowcharts, math, etc), but that will obviously be more involved (if it is even possible). I'm going to start looking into it, but I'm not very familiar with Nextcloud app development so I may not be too helpful :(

tnyeanderson commented 5 years ago

One option I see for StackEdit (though I'm not sure it would work as a standalone nextcloud app) is this (from StackEdit.js docs):

stackedit.js uses https://stackedit.io/app as the default StackEdit URL. Though you can provide a custom URL to the Stackedit constructor.

const stackedit = new Stackedit({
  url: 'https://hostname/app'
});

This way the stackedit server could be self-hosted (protecting privacy) and easily integrated with nextcloud/notes through stackedit.js

Again, this may not be possible with Nextcloud (at least with a one-click install from the marketplace). Can someone let me know how wrong I am about all this? 😅

korelstar commented 5 years ago

@tnyeanderson This would be very interesting. But the missing point is, how do we provide stackedit under https://hostname/app ? Is there a software package for this? The documentation doesn't say anything about this point. And stackedit.js provides an IFRAME only. The editor is loaded from https://hostname/app .

It would be nice if you could investigate this for us.

Regarding bounties: the notes app is on Bountysource, so please feel free to increase the bounty (e.g. for checkboxes at https://www.bountysource.com/issues/47635165-render-check-boxes-checklist-todo ).

tnyeanderson commented 5 years ago

Unfortunately, after further research, I don't think stackedit is going to work for this app. EasyMDE may be the way to go as @sunjam suggested. It might be better to then work on getting checkboxes implemented in EasyMDE, using Codemirror GFM.

tnyeanderson commented 5 years ago

Just opened stefan-niedermann/nextcloud-notes #552 to use the same renderer on the mobile app. Will be keeping an eye on this. I think we should all be on the same renderer for the sake of future feature parity.

iSpeeX commented 5 years ago

Hello everyone, I have a probably dumb question : Apparently, Notes is using SimpleMDE (for now) but when i use the Notes app on Nexcloud, I can't see any toolbar as represented on SimpleMDE website, is it normal ?

stefan-niedermann commented 5 years ago

Yes, it's by intention. This app is not supposed to be a word processor (better use NextNotes or OnlyOffice in this case). The basic feature is to simply write text, while markdown is a secondary feature if someone wants it. But the toolbars and buttons should not ne cluttering the interface the whole time - See #200 for better ideas :)

iSpeeX commented 5 years ago

I get it now, it's the purpose of this app to stay simple so it seems very logical.

You may not want to answer about that (as it doesn't concern Notes app) but Next Notes wasn't updated for years and i last-version Nextcloud, do you know if i can still use it ? Another question (yeah sorry), do you have any documentations to make a whole onlyoffice install for nextcloud ? (Every doc I found was deprecated or for docker structure that I don't use)

Well I can say that is popover menu seems gorgeous by the way

Most important : thank you very much

tnyeanderson commented 5 years ago

I just went through the OnlyOffice setup... it was a total pain to get working. Did you say you don't use docker at all? I'm happy to help as much as I can, but I really can only help on the docker side of things... Let me know: me@thomasanderson.cloud

iSpeeX commented 5 years ago

Oh crap... It seems like everybody is using Docker for this, but not me... I do not have enough time to get on this for now, but i'll definitely contact you if needed, thank you !

sunjam commented 5 years ago

CodiMD is a realtime collaborative markdown notetaking tool, inspired by Etherpad. It is totally amazing, and includes many features beyond SimpleMDE, including very easy collaboration. Click here to try the demo.

tnyeanderson commented 5 years ago

It appears that CodiMD runs as a separate service, and the client would be linked to the CodiMD port. Unfortunately, I don't think this app allows for something like that. It would have to be "built-in" so-to-speak, as making users set up another server (a la OnlyOffice) is just not within this app's scope.

If I am mistaken, please let me know.

korelstar commented 5 years ago

For #290, I've checked many alternative editor libraries. Unfortunately, every library had some problems. As a result of this analysis, I decided to change the editor from SimpleMDE to EasyMDE (which is a fork of SimpleMDE). But I changed the configuration, so that the appearance has changed a little bit. However, this has fixed many issues regarding the editor (please stay tuned for release 3.0 of this the notes app which contains this).

Nevertheless, there are still some open issues regarding the editor library, so this decision is not meant to be final. Hence, we will have to keep collecting possible editor libraries in this issue. Thanks for your help, community!

putt1ck commented 5 years ago

Has anyone looked at Prose Mirror in context of this issue? http://prosemirror.net/examples/

e-alfred commented 5 years ago

as making users set up another server (a la OnlyOffice) is just not within this app's scope.

How about integrating with Nextcloud Talk? It is already there and integrates well into the details pane inside the files app for example.

sunjam commented 5 years ago

It appears that CodiMD runs as a separate service, and the client would be linked to the CodiMD port. Unfortunately, I don't think this app allows for something like that. It would have to be "built-in" so-to-speak, as making users set up another server (a la OnlyOffice) is just not within this app's scope.

If I am mistaken, please let me know.

See this request for Codi support in the Ownpad app, which currently supports Etherpad and Ethercalc.

e-alfred commented 5 years ago

Why not merge with https://github.com/icewind1991/files_markdown by @icewind1991? It is far more feature rich than the simple notes app and both do the same, being editors with Markdown support.

tnyeanderson commented 5 years ago

Because we want an inline editor, meaning that the place where you enter the text also formats that text. This is so you don't have to switch between the markdown preview and the editor. You edit the "preview" itself. This is much better for a notes application, because the user doesn't want to views of the same note, they want a consistent and editable view of their formatted note.

Also, that app is only a file editor, where this app provides a navigation interface to different notes.

PackElend commented 5 years ago

Have you considered CKEditor or TinyMCE?

tnyeanderson commented 5 years ago

More specifically:

CKEditor - Github Flavored Markdown: https://ckeditor.com/docs/ckeditor5/latest/api/markdown-gfm.html

CKEditor looks like it supports inline editing... will have to do more research. Looks promising!

Unfortunately it seems TinyMCE has less support for markdown: https://github.com/tinymce/tinymce/issues/3467

PackElend commented 5 years ago

here might be a good spot to start the research but it is not up to date http://socialcompare.com/en/comparison/javascript-online-rich-text-editors

tnyeanderson commented 5 years ago

That's a good link. I took a look through the options (with compatible licenses and usages) and it looks like CKEditor might be the one! It has plugins for typing and saving markdown, supports inline editing, is feature-rich, and appears to have good long-term support as it can also be licensed as a commercial product.

The markdown plugin appears to be built on codemirror-gfm as well, so it shouldn't be too hard to migrate any of our CSS/JS.

@PackElend thank you for taking the time to look into this! CKEditor is the best option I've seen so far!

PackElend commented 5 years ago

You are more than welcome. Hope the note app reaching the same functionality as Joplin 😊

e-alfred commented 5 years ago

Maybe Stackedit is also of interest:

https://github.com/benweet/stackedit

tnyeanderson commented 5 years ago

We have already discussed StackEdit at length in this thread. It will not work for our purposes.

e-alfred commented 5 years ago

@tnyeanderson Sorry, I missed that. I suppose markdown-it is also not suitable as a replacement?

https://github.com/markdown-it/markdown-it

It would be quite useful to have all the features QOwnNotes has in an in-browser notes editor using Markdown.