Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TineMCE WYSIWYG Editor #2499

Closed
brusch opened this issue Jan 24, 2018 · 37 comments · Fixed by #14382
Closed

TineMCE WYSIWYG Editor #2499

brusch opened this issue Jan 24, 2018 · 37 comments · Fixed by #14382
Assignees
Milestone

Comments

@brusch
Copy link
Member

brusch commented Jan 24, 2018

No description provided.

@brusch brusch added the Task label Jan 24, 2018
@brusch brusch added this to the 5.1.2 milestone Jan 24, 2018
@brusch brusch self-assigned this Jan 24, 2018
@dpfaffenbauer
Copy link
Contributor

That sounds dangerous. A lot of my project depend on it as I either

  • installed extensions for it
  • changed configurations

So, this is at least a BC Break and needs to be well thought thru.

@Yivan
Copy link
Contributor

Yivan commented Jan 27, 2018

Is there any reason CKEditor must be replaced ?

@brusch brusch modified the milestones: 5.1.2, 5.2.0 Jan 31, 2018
@brusch brusch removed this from the 5.2.0 milestone Feb 19, 2018
@brusch
Copy link
Member Author

brusch commented Jun 4, 2018

@Yivan Yes, version 4 of CKEditor will not be supported forever

We'll perform this change in 3 steps:

  • alternative will be added, but CKEditor 4 will remain the default (config option to change for the new one)
  • default will be changed to the new editor (config option provided to switch back to CKEditor
  • CKEditor 4 will be removed

@Yivan
Copy link
Contributor

Yivan commented Jun 14, 2018

@brusch @dpfaffenbauer
But when you mean replacement, you mean replace it by CKEditor 5 or another editor ?
Isn't CKEditor 5 BC comptible with the 4 ?

@brusch
Copy link
Member Author

brusch commented Jun 14, 2018

CKEditor 5 is not backward-compatible to version 4.

@cadeyrn
Copy link

cadeyrn commented Jun 14, 2018

I hope the "alternative" will be CKEditor 5 because it's not only a new version of CKEditor but a really great WYSIWYG editor which does not depend on the contenteditable attribute [1] like most popular WYSIWYG editors (CKEditor 4, TinyMCE, Redactor, …) which is one of the main reasons for all the pain with WYSIWYG editors.

Yes, CKEditor 5 does not yet have as many features as the CKEditor 4 but enough for a lot of projects and since CKEditor 4 will remain the default in the first step it's okay to have some features at a later point and it would be an investment in the future of content editing.

[1] https://ckeditor.com/blog/CKEditor-5-A-new-era-for-rich-text-editing/

@cleggypdc
Copy link
Contributor

@kirjavascript recommended me this one https://prosemirror.net/ - looks pretty lightweight and supports back to IE11 (eugh)

@aarongerig
Copy link
Contributor

I'd recommend https://quilljs.com/ to have another alternative. ;)

@dpfaffenbauer
Copy link
Contributor

CKEditor 5 looks promising tbh. If it has the same features as version 4, why not use that. (Providing the BC config @brusch mentioned ;))

@julkue
Copy link
Contributor

julkue commented Aug 29, 2019

I would like to push this topic, since there's a bug since 2016 (see #1124) that makes all WYSIWYG fields useless in my opinion, since you can not specify or limt tags and functiononalities users can create and manage. And you don't want to have the possibilities to offer adding headings for example, when placing the WYSIWYG content already inside a heading.

I've already filled a bug at the CKEditor repository, however, it's unlikely that this will be solved soon or at all since a contributor mentioned that this is a general architecture problem of CKEditor. And since customConfig properties aren't available in CKEditor v5 at all currently, it's unlikely that Pimcore can stick to this integration approach anyway.

So I'm curious @pimcore: What are the current plans to move forward with WYSIWYG editable fields, with which editor or version and in which timeline?

@cleggypdc
Copy link
Contributor

cleggypdc commented Aug 29, 2019

Hi, you can specify tags that users are allowed to create, and get around #1124 by inserting config directly into the editable. See my example, I have disallowed h1 tags on blog post content :)

https://gist.github.com/cleggypdc/e07c8314067e48238e191ecaf57ff9b5

@julkue
Copy link
Contributor

julkue commented Aug 30, 2019

Thanks a lot for this tip @cleggypdc! I will try this out next week.

@julkue
Copy link
Contributor

julkue commented Sep 2, 2019

It works @cleggypdc, thanks very much! However, two things to notice:

  • CKEditor JavaScript functions can not be used inside the configuration, so it still requires a solution @pimcore
  • For example disallowedContent, allowedContent, shiftMode or autoParagraph aren't valid options in the Pimcore WYSIWYG documentation, however, they are required if it's needed to only allow specific tags @pimcore

@brusch brusch added this to the 7.0.0 milestone Oct 5, 2020
@brusch brusch changed the title CKEditor 4 Replacement CKEditor 4 Alternative Feb 17, 2021
@brusch brusch modified the milestones: 10.1.0, 10.2.0 Jul 27, 2021
@brusch brusch modified the milestones: 10.2.0, 11.0.0, 10.3.0 Sep 21, 2021
@NiklasBr
Copy link
Contributor

NiklasBr commented Jul 7, 2022

The "... or later" part is important here, isn't it?

https://github.com/ckeditor/ckeditor5/blob/master/LICENSE.md

Licensed under the terms of GNU General Public License Version 2 or later.

https://www.gnu.org/licenses/quick-guide-gplv3.html#new-compatible-licenses

GPLv2 is compatible with GPLv3 if the program allows you to choose “any later version” of the GPL

So, couldn't Pimcore choose to license it under GPLv3 for the community edition?

https://www.gnu.org/licenses/gpl-3.0.html#section14

Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.

@brusch
Copy link
Member Author

brusch commented Jul 7, 2022

@NiklasBr

So, couldn't Pimcore choose to license it under GPLv3 for the community edition?

Actually no, not for licensing reasons, but we don't want to maintain 2 editors, one for CE one for EE 😉
But as I mentioned, it should be possible to provide that in a community bundle in future.

@NiklasBr
Copy link
Contributor

NiklasBr commented Jul 7, 2022

Why not license the same CK Editor with GPLv2 for EE and GPLv3 for CE?

@fashxp
Copy link
Member

fashxp commented Jul 7, 2022

Pimcore EE is not GPL!

@NiklasBr
Copy link
Contributor

NiklasBr commented Jul 7, 2022

Isn't CK Editor 4 used under GPLv2 today in EE or do you have a custom license?

Edit: What I am asking is, what is the material difference between the GPLv2 for CK Editor that allows compatibility with EE today that prevents version 5 from doing the same?

@fashxp
Copy link
Member

fashxp commented Jul 7, 2022

LGPL & MPL vs. GPL only...

@NiklasBr
Copy link
Contributor

NiklasBr commented Jul 7, 2022

Which one of those do you consider compatible with the EE license?

@cadeyrn
Copy link

cadeyrn commented Jul 7, 2022

Did you reach out to CKSource?

If you are running an Open Source project with an OSS license incompatible with GPL please contact us and we will be happy to support your project with a CKEditor 5 license.

https://ckeditor.com/legal/ckeditor-oss-license/

@brusch
Copy link
Member Author

brusch commented Jul 7, 2022

@cadeyrn the problem is NOT the community edition licensed under the terms of the GPLv3 which would be compatible, the problem IS our enterprise edition, which is licensed under a proprietary license.

@jdreesen
Copy link
Contributor

jdreesen commented Jul 7, 2022

@NiklasBr MPL should be fine for commercial use.

@NiklasBr
Copy link
Contributor

NiklasBr commented Jul 7, 2022

@NiklasBr MPL should be fine for commercial use.

If Commercial Use as defined there is your threshold requirement for license choice, GPLv2 which CKEditor uses also allows Commercial Use (as does GPLv3 by the way). What is the material difference in the forms of Commercial Use they allow that makes you say it is incompatible?

@brusch
Copy link
Member Author

brusch commented Jul 7, 2022

@NiklasBr commercial use !== commercial license
GPL is a copyleft license, it's not about use, it's about licensing. You can use GPL for commercial purposes, but you need to keep GPL (copyleft) - GPL doesn't mean it needs to be free, just that the source code needs to remain accessible and the license needs to be the same.

So, PCL is a proprietary license, that is incompatible with GPL. 😉

@NiklasBr
Copy link
Contributor

NiklasBr commented Jul 7, 2022

You wrote commercial use, which is why I asked.

@brusch
Copy link
Member Author

brusch commented Nov 2, 2022

Editor Link License Suitable Inline-Mode Comment
Quill https://quilljs.com/ BSD-3 👎 Last release 3 years ago?
TinyMCE https://www.tiny.cloud/ MIT 👍 Long history
Lexical https://lexical.dev/ MIT 👍 Seems to be quite unstable, frequent API changes
Editor.js https://editorjs.io/ Apache 2.0 👎 Block-style concept - hard to keep compatibility, limited HTML import functionality

Many others, see e.g.
https://github.com/JefMari/awesome-wysiwyg#standalone
https://project-awesome.org/dok/awesome-text-editing
https://github.com/topics/wysiwyg-editor?o=desc&s=stars
https://github.com/topics/rich-text-editor?o=desc&s=stars

Most of them are dead, abandoned, ...

Any other suggestions?

@Cruiser13
Copy link
Contributor

Cruiser13 commented Nov 4, 2022

@brusch we recently used https://tiptap.dev on some of our projects and had a great developer experience. License is MIT.
We moved away from quill because of maintenance issues.

@ChrisB9
Copy link
Contributor

ChrisB9 commented Nov 4, 2022

We, too, used tiptap.dev for a project and had a wonderful time integrating it, worked like a charm with the TYPO3 project
But this would be less of a replacement for CKEditor but more of a new page editing experience, replacing/extending areabricks

@brusch
Copy link
Member Author

brusch commented Nov 15, 2022

@Cruiser13 @ChrisB9 but tiptap doesn't offer "inline" - editing (floating toolbar) as CKEditor and TinyMCE do, right?
At least I was not able to find an example for this. Thanks for your feedback!

@Cruiser13
Copy link
Contributor

@brusch that's called floating menu for tiptap and is an official extension. You can find it here: https://tiptap.dev/api/extensions/floating-menu
I think that you could style it similary to ckeditor bar since tiptap is very open to any styling. You can consider it a framework, not a plugin solution.

@brusch
Copy link
Member Author

brusch commented Nov 21, 2022

@Cruiser13 Thanks!
Yeah, I've read that it's more a framework than a plugin, but to be honest I'd like to keep the integration effort on our end as low as possible, so probably the plugin approach is the right one for us ...

@tmannherz
Copy link

@brusch How was/is this not included in the v11 upgrade guide? There no mention that explicit action needs to be taken if you want to continue to use a WYSIWYG in the PIM/CMS. Nor is there any mention that if you've added config specific to CKEditor, that needs to be migrated to support TinyMCE when upgrading.

https://pimcore.com/docs/platform/Pimcore/Installation_and_Upgrade/Upgrade_Notes/
https://pimcore.com/docs/platform/Pimcore/Installation_and_Upgrade/Updating_Pimcore/V10_to_V11/

It would be helpful to have a section about the WYSIWYG for others using these upgrade guides.

@dvesh3
Copy link
Contributor

dvesh3 commented Sep 1, 2023

@tmannherz yes, the upgrade guide is missing at the moment. I have created an issue to add the related info to the docs. thanks for reporting 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.