go-gitea / gitea

Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
https://gitea.com
MIT License
44.2k stars 5.42k forks source link

Spell check with SimpleMDE #9619

Closed bobemoe closed 2 years ago

bobemoe commented 4 years ago

Since SimpleMDE it looks like there will be no option to use browser based spell check: https://github.com/codemirror/CodeMirror/issues/1017

So... how can I enable the built in one? Is this hard coded atm? Do we need dictionary support or options in the Gitea settings somewhere? Or have I already missed it?

Looks like its still in development upstream? https://github.com/sparksuite/codemirror-spell-checker/issues/16

bobemoe commented 4 years ago

My upstream link there may have been a bit misleading... even though full config and multi language is still in dev, I think the spell checker for a single language should work just fine? Its listed first on SimpleMDE features!

I see it's been manually disabled in https://github.com/go-gitea/gitea/blob/e88d67b774ae615208b25133c299f2d50b3a018b/web_src/js/index.js#L1439 and 2 other places in that file. Was this due to issues with it? I'll try compiling with it enabled at some point unless someone can shed some light on it?

My speeling is terible and I reely nead this funshonality ;)

bobemoe commented 4 years ago

So I enabled spell check in index.js and first had to allow a couple of XHR requests through my browser script block to https://cdn.jsdelivr.net/codemirror.spell-checker/latest/...

Given that Gitea seems fully self contained, maybe this was the reason spell checking was disabled in the first place? Also others not really happy with it either: https://github.com/sparksuite/simplemde-markdown-editor/issues/547

So even though I now have misspelled words highlighted :) there is no way to get a suggestions/corrections menu! :( Seems that's an issue here too: https://github.com/sparksuite/codemirror-spell-checker/issues/10

Disappointing results. At least words are highlighted now, maybe like that it'll force me to learn spelling ;)

Other than proposing a different WYSIWYG editor that works with the browser checker, I'm not really sure what to suggest here. Doesn't look like upstream will have polished solution any time soon.

I did think I may be able to correct the spelling in the "view source" of the editor, but that seems to be disabled, or at least no toolbar icon. I may see if I can enable that, but its a bit of a fiddly workaround.

How set are we on SimpleMDE?

Thoughts?

guillep2k commented 4 years ago

It's a shame, I'm also a heavy user of the spell checker when I write in English. I have no problem in my company because we use Spanish, but I don't know how my co-workers feel about it.

I'm not able to recommend any course of action, but I'm interested in any solution that might come up. One compromise (that would work for me) is to allow disabling SimpleMDE at the user preferences (and work with a simple TEXTAREA, like before). I'd rather deal with MD syntax (which is quite easy) than keep editing my comments each time I spot a new mispelling.

bobemoe commented 4 years ago

So a week later..

The enabling of highlighted misspelt words has helped me a lot! even though I have to correct them manually, sometimes looking them up in another tab. It is actually improving my spelling. ;) Shame its limited to English only upstream, but multi language is getting very close.

I looked into enabling the "source/raw" view for SimpleMDE, but it doesn't seem to exist. Even though you can have a preview tab or side by side view, there seems to be no way to view just a textarea. I guess as guillep2k suggests we could disable it as a user preference, or even have a toggle button next to the editor.

I've had a quick look into other editors. TinyMCE I have worked with a lot, and like, but it looks like while it can kind of parse markdown it still produces HTML. Probably not suitable.

I've gone down the ourcodeworld.com top 7 markdown editors list and quickly reviewed them: 7: JS-Markdown-Editor: No spell check. 6: Bootstrap Markdown Editor: No spell check. 5: Woofmark: Browser spell check, editing feels pretty slick, good preview. 4: Editor: No spell check. No rendering. 3: Markdown-it: Browser spell check, editing feels pretty slick, good preview. 2: simplemd-markdown-editor: What we have now. Limited spell check. 1: Editor.md: No spell check.

Of those, it looks like (5) Woofmark and (3) Markdown-it have potential. I've never used them before.

Is it worth me perusing this line of enquiry? I'm not sure I could integrate them into Gitea, but I could certainly test they are capable of working with the flavour of markdown we use and can be styled to look similar to what we have now.

zeripath commented 4 years ago

@bobemoe I think it's worth it - none of us are particularly enamoured of SimpleMDE and it's a dead project.

BTW how does EasyMDE compare? I think that's just a continuation of SimpleMDE but if it works properly that's fine.

I'm also wondering if we should be integrating https://ace.c9.io/ in our editor for the editor screen.

bobemoe commented 4 years ago

Looks like EasyMDE uses the same spelling package as SimpleMDE. The demo feels very familiar!

Interesting you mention Ace editor, one of the MDE's (Bootstrap) I tried above uses Ace as its engine. There was no spell checker in BootstrapMDE or in Ace, though it does look like Ace has got a plugin for it. This could be another potential candidate especially if we're liking ace for other things. It does require Bootstrap though which I can't see we are using?

zeripath commented 4 years ago

ah damn I hadn't looked at Ace in detail...

bobemoe commented 4 years ago

I wouldn't rule Ace out quite yet. I don't think it depends on Bootstrap itself, its just the BootstrapMDE which does. Ace may be able to do MD without Bootstrap MDE. I am going to have a play and evaluate it properly soon. Looks like a really good code editor. There are plugins for spell check using Typo.js (still not browser, but does support suggestions) and Live MD preview. Just need to put it all together!

wxiaoguang commented 2 years ago

Fixed by #19776

This feature has been deployed on try.gitea.io, feel free to test it and report bugs.