Hey everybody,
down below is an RFC which originated at Neos Code Sprint in Nürnberg, after discussions with @aertmann, @christianm, @christopher and Frederico Krabben from CKEditor.
Background / Current State
Currently, we’re using Aloha 1 as editor, which is heavily customized to fit into the Neos UI.
However, Aloha 1 is not well-maintained anymore, as the Aloha team has shifted most of their
attention to work on Aloha 2, which is a very exciting editor concept working without contentEditable,
thus aiming to provide editing without cross-browser inconsistencies.
However, Aloha 2 is still pre-beta quality (as it is a lot of work to create such an editor from scratch); and
quite a lot of features are missing (e.g. Tables, inline images). Thus, switching now to Aloha 2 would degrade
our editing experience; and it is very hard to tell when Aloha 2 will be ready for us to use.
On the one side, we’re seeing feature requests like “wanting to be able to add CSS classes or other markers
to content”, on the other hand we hear problems with the editing stability; especially when e.g. pasting
from Word.
Goal: More Stable and Powerful Editing
On the Neos Code Sprint in Nürnberg, Frederico Krabben (head of CKEditor), visited us for a day and we
had a very open talk and discussion about its features, the development mindset, our current problems
and how they might be solved. See Christopher’s questions and my answers for a rough idea what
areas we checked specifically.
Proposal: ckEditor
After the meeting, I (and the others in the meeting) are convinced that CKeditor would be a really good fit,
for the following reasons:
- Well-maintained and stable; not just for “classical RTE” but also for the inline-editing-use-case (about the latter,
I was not sure of this before the meeting) - We can easily run our own UI on top of CKEditor (see this example) which Fred has created for us; and
we can customize it the way we want it to. I think the API is quite fine to work with already. - The created HTML is very clean and we can restrict exactly what is allowed inside there. This should e.g.
fix copy/pasting from Word or other websites - the editing experience is very fast and has lots of “small usability features”, e.g. there is a marker which
allows you to add text in front of a bullet list if the editable directly starts with the bullet list. Generally it
feels very mature and you just see that it has been “proven by real world”. - It has a concept called “widgets” which is essentially the equivalent of Aloha Blocks; allowing for non-
editable areas inside editables (and can contain other editables again); which would be great for inline
images, if we want to do that at some point. - It has lots of documentation; see http://docs.ckeditor.com
- It is developed very actively and very fast; and the CKEditor team seems to be really responsive. In fact,
Frederick and their lead developer joined us over in our slack in #project-ckeditor; so we have a direct
connection to them in case of questions. - Furthermore, they’re a pleasure to work with and are very nice people
- They’re currently planning Version 5 of CKEditor; and if we see problems with the API or so, we can
actively influence the future direction.
Areas of work
Of course there are also some areas which need some work/collaboration, but I think they are very few:
- Placeholders are not supported as of now, so we need to see how to solve this.
- We do not know yet how single-line texts can be realized; i.e. where
<br>
and<p>
are disallowed
How to progress
I’d suggest to prioritize this topic for Neos 2.1; I have personally already added a prototype to
my personal GitHub Fork where I’ll continue experimenting and playing around with it.
But first off, I’d of course like your comments & feedback
All the best,
Sebastian