Wysiwyg editor for angular4 [closed]

Solution 1:

Since I had the same problem, I'm sharing the results of my research here:

ng2-ckeditor

demo here

enter image description here

ngx-editor

demo here enter image description here

quill.js for angular

demo here

Note: Quill uses JSON to store the data internally, not html.

enter image description here

PRIME NG

Theme collection, that features a Quill-based WYSIWYG-editor as well, demo here. Some of themes are free.

ngx-md

A WYSIWYG editor which uses MarkDown rather than HTML, demo here

Edit

If your choice was quill.js, you might want to use KillerCodeMonkey's implementation since it is compatible with angular 5.

Solution 2:

Try this simple but powerful WYSIWYG editor for Andular 6-12 (native)

AngularEditor

Note: This native Angular 6+ WYSIWYG editor was created as library.

![AngularEditor

Demo is here

PR or new features request are welcome.

This editor originally created as part of my corporate project https://online.freicon.ru/, but I extracted it into separate library and post as open source project. I hope this helps someone solve their problems.

Solution 3:

Thanks @Ronin for sharing your research. Here is my feedback on a couple I tested.

NGX-EDITOR

First I tried ngx-editor and was relatively easy to install and use. Only needed ngs-boostrap and fontAwesome as dependencies. Hoever the only drawback I found for my requirements was the adding link widget. This library does not remember the link that you have entered so if you want to change them you need to remove and re-add it. Another limitation was that one could not specify a max Length value.

NGX-QUILL

I ended up using ngx-quill. It has a better way to deal with links as well as the ability to specify max-Length. It was also very easy to install:

npm install ngx-quill
npm install quill  // Needed for CSS styles

import { QuillModule } from 'ngx-quill'
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'

@NgModule({
  imports: [
    ...,

    QuillModule
  ],
  ...
})
class YourModule { ... }