The best enterprise-grade WYSIWYG editor. Fully customizable with countless features and plugins.

Overview

CKEditor 4 - Smart WYSIWYG HTML editor Tweet

npm version GitHub tag Build Status

Join newsletter Follow Twitter

A highly configurable WYSIWYG HTML editor with hundreds of features, from creating rich text content with captioned images, videos, tables, media embeds, emoji or mentions to pasting from Word and Google Docs and drag&drop image upload.

Supports a broad range of browsers, including legacy ones.

CKEditor 4 screenshot

Getting started

Using npm package

npm install --save ckeditor

Use it on your website:

<div id="editor">
    <p>This is the editor content.</p>
</div>
<script src="./node_modules/ckeditor/ckeditor.js"></script>
<script>
    CKEDITOR.replace( 'editor' );
</script>

Using CDN

Load the CKEditor 4 script from CDN:

<div id="editor">
    <p>This is the editor content.</p>
</div>
<script src="https://cdn.ckeditor.com/4.13.0/standard/ckeditor.js"></script>
<script>
    CKEDITOR.replace( 'editor' );
</script>

Integrating with Angular, React and Vue.js

Refer to official usage guides for the ckeditor4-angular, ckeditor4-react and ckeditor4-vue packages.

Manual download

Visit the CKEditor 4 download section on the CKEditor website to download ready-to-use CKEditor 4 packages or to create a customized CKEditor 4 build.

Features

  • Over 500 plugins in the Add-ons Repository.
  • Pasting from Microsoft Word, Excel and Google Docs.
  • Drag&drop image uploads.
  • Media embeds to insert videos, tweets, maps, slideshows.
  • Powerful clipboard integration.
  • Content quality control with Advanced Content Filter.
  • Extensible widget system.
  • Custom table selection.
  • Accessibility conforming to WCAG and Section 508.
  • Over 70 localizations available with full RTL support.

Browser support

IE / Edge
IE / Edge
Firefox
Firefox
Chrome
Chrome
Chrome
Chrome (Android)
Safari
Safari
iOS Safari
iOS Safari
Opera
Opera
IE8, IE9, IE10, IE11, Edge latest version latest version latest version latest version latest version latest version

Find out more in the Browser Compatibility guide.


Working with the ckeditor4 repository

Attention: The code in this repository should be used locally and for development purposes only. We do not recommend using it in a production environment because the user experience will be very limited.

Code installation

There is no special installation procedure to install the development code. Simply clone it to any local directory and you are set.

Available branches

This repository contains the following branches:

  • master – Development of the upcoming minor release.
  • major – Development of the upcoming major release.
  • stable – Latest stable release tag point (non-beta).
  • latest – Latest release tag point (including betas).
  • release/A.B.x (e.g. 4.0.x, 4.1.x) – Release freeze, tests and tagging. Hotfixing.

Note that both master and major are under heavy development. Their code did not pass the release testing phase, though, so it may be unstable.

Additionally, all releases have their respective tags in the following form: 4.4.0, 4.4.1, etc.

Samples

The samples/ folder contains some examples that can be used to test your installation. Visit CKEditor 4 Examples for plenty of samples showcasing numerous editor features, with source code readily available to view, copy and use in your own solution.

Code structure

The development code contains the following main elements:

  • Main coding folders:
    • core/ – The core API of CKEditor 4. Alone, it does nothing, but it provides the entire JavaScript API that makes the magic happen.
    • plugins/ – Contains most of the plugins maintained by the CKEditor 4 core team.
    • skin/ – Contains the official default skin of CKEditor 4.
    • dev/ – Contains some developer tools.
    • tests/ – Contains the CKEditor 4 tests suite.

Building a release

A release-optimized version of the development code can be easily created locally. The dev/builder/build.sh script can be used for that purpose:

> ./dev/builder/build.sh

A "release-ready" working copy of your development code will be built in the new dev/builder/release/ folder. An Internet connection is necessary to run the builder, for the first time at least.

Testing environment

Read more on how to set up the environment and execute tests in the CKEditor 4 Testing Environment guide.

Reporting issues

Use the CKEditor 4 GitHub issue page to report bugs and feature requests.

License

Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.

For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license

Comments
  • Your browser doesn't allow you to paste this way. Press Ctrl+V to paste.

    Your browser doesn't allow you to paste this way. Press Ctrl+V to paste.

    Are you reporting a feature or a bug?

    Bug

    Check if the issue is already reported

    Put all reference links here…

    Provide detailed reproduction steps (if any)

    1. Copy plain text to clipboard
    2. Using CKEditor, try to paste using "Paste" option after mouse right click or using editor's "Paste" options

    Expected result

    Text is pasted normally.

    Actual result

    Message "Your browser doesn't allow you to paste this way. Press Ctrl+V to paste." is showed.

    Other details

    • Browser: Google Chrome 58, Mozilla Firefox 51, Microsoft Edge 38
    • OS: MS Windows 10 64 bits
    • CKEditor version: 4.7.0 (this issue was not showed in 4.6.2 version)
    • Installed CKEditor plugins: Copy Formatting, Paste from Word, Paste from Excel
    resolution:upstream 
    opened by reinaldojv 51
  • Fix pasting (paste/paste plain text/paste from word) experience for mobile browsers

    Fix pasting (paste/paste plain text/paste from word) experience for mobile browsers

    CKEditor's 4.7 plain text paste is broken in Android Firefox and Chrome. It is used not often, but sometimes it is very handy to paste & edit texts from tablet. But in 4.7 paste from clipboard doesn't work at all.

    When trying to paste via toolbar icon or editor menu I get "Your browser doesn't allow you to paste this way. Press CTRL+V/CTRL+SHIFT+V to paste" message.

    Maybe it is possible to leave old paste dialog as optional plugin? Cause in CKEditor 4.6.3 all types of paste worked fine in mobile and desktop browsers. Seems you fixed a thing that was not broken :)

    • Browser: Chrome, Firefox
    • OS: Android 7.1.2
    • CKEditor version: 4.7
    type:bug status:confirmed browser:chrome browser:firefox plugin:pastefromword regression target:minor 
    opened by stalker780 40
  • Prevent editor creation on detached element

    Prevent editor creation on detached element

    What is the purpose of this pull request?

    New feature

    Does your PR contain necessary tests?

    All patches that change the editor code must include tests. You can always read more on PR testing, how to set the testing environment and how to create tests in the official CKEditor documentation.

    This PR contains

    • [X] Unit tests
    • [X] Manual tests

    Did you follow the CKEditor 4 code style guide?

    Your code should follow the guidelines from the CKEditor 4 code style guide which helps keep the entire codebase consistent.

    • [X] PR is consistent with the code style guide

    What is the proposed changelog entry for this pull request?

    * [#4461](https://github.com/ckeditor/ckeditor4/issues/4461): Delay editor creation if target element is detached.
    

    What changes did you make?

    Give an overview…

    • If config.delayDetached is true and target element isDetached: immediately return null and start checking in 1000ms periods.
    • If target element is attached -> create an editor instance and stop checking.
    • Editor will be available e.g. inside onInstanceReady via this
    CKEDITOR.replace( textArea, {
    	delayDetached: true,
    	on: {
    		instanceReady: function(evt) {
    			this.setData("Editor created");
    		}
    	}
    } )
    

    Which issues does your PR resolve?

    Closes #4461 .

    opened by sculpt0r 35
  • Emoji dropdown button

    Emoji dropdown button

    Type of report

    Feature request

    Preview:

    Users interested in seeing how the feature looks today can preview it on our Emoji feature branch preview.

    Provide description of the new feature

    There should be an option to insert emoji from a button. Clicking the button would show full list of available emojis.

    Because of the default emoji count, this feature requires some performance to make sure that the feature is responsive.

    This feature could be implemented as a drop-down with some UI aiding usability.

    Emoji dropdown prototype

    Browser Support

    Same as Emoji plugin itself.

    Features

    Here are some words on the initial design:

    Must Have

    Search

    Search box should search based on the emoji ID or keyword (#2181).

    If the search box is empty it just displays the initial view.

    It is to be determined how the search results should be displayed - whether results should be grouped in categories or should it put it into one bunch.

    Grouping

    Emojis should be categorized. Categories should be shown as tabs, e.g. on the top of a dropdown.

    The industry generally threads these tabs purely as navigation, meaning that clicking a given category does scroll to a given section, rather than filter the results.

    Accessibility

    There needs to be basic accessibility. We need to make sure that dropdown elements has correct labels and that the dropdown is operable using the keyboard alone.

    Nice To Have

    The following features are optional, and may be skipped.

    Initial Render

    All the emojis should be displayed during the first render.

    It is important to provide a very good performance here.

    Skin Tone

    Possibility to set the skin tone of an emoji.

    Improved Configuration

    It would be nice to allow for groups customization. At the minimum being able to hide groups.

    Would be better if there's an option for adding custom categories to the mix - however this one would affect the design, as it would be very easy to break the tabs layout.

    Turning Popular Matches into Emoji

    Feature would turn some old-school style emotion expressions into an emoji, for instance :), <3 or :D. From the technical side of things I believe we could use text watcher/match combo for that.

    type:feature status:confirmed target:major plugin:emoji 
    opened by jacekbogdanski 32
  • fixes issue #8584: Support Content Security Policy

    fixes issue #8584: Support Content Security Policy

    The solutions that other popular libraries and frameworks are adopting to comply with CSP are:

    1. provide a hook consumers to bypass the indirect evaluation routine (doesn't apply to this case)

    2. provide a less performant solution that can be used under certain conditions.

    I have implemented the corresponding forking logic on CKEDITOR.template to detect whether or not indirect eval is available, and use an alternative output function that is less performant but works well with CSP.

    It is very similar to what Angular does for their expression language, and it is a solution that can be ported back to any previous version of CKEditor that relies on the same CKEDITOR.template mechanism. This solution can be backported to 4.x (I wasn't sure about the branching strategy on this repo)

    By forcing to use the new less-performant solution (setting the isIndirectEvalSupported flag manually) we have validated that all tests are passing, but someone will have to do a little bit of work here to make sure that every template test runs with and without the flag.

    Backpointer: https://dev.ckeditor.com/ticket/8584 SF Backpointer: @W-2958085

    review:needed 
    opened by caridy 30
  • Fixed: Cannot delete paragraph before and after a widget / Delete space above widget

    Fixed: Cannot delete paragraph before and after a widget / Delete space above widget

    What is the purpose of this pull request?

    fix issue #1572

    Does your PR contain necessary tests?

    yes

    This PR contains

    • [x] Unit tests
    • [x] Manual tests

    Did you follow the CKEditor 4 code style guide?

    • [x] PR is consistent with the code style guide

    What is the proposed changelog entry for this pull request?

    * [#1572 ](https://github.com/ckeditor/ckeditor4/issues/1572): Pressing backspace and delete in an empty paragraph between two widgets now deletes the paragraph instead of selecting the next (or previous) widget 
    

    What changes did you make?

    Give an overview…

    Which issues does your PR resolve?

    Closes #1572 .

    opened by bunglegrind 28
  • Add preserving custom colors feature

    Add preserving custom colors feature

    What is the purpose of this pull request?

    New feature

    Does your PR contain necessary tests?

    All patches which change the editor code must include tests. You can always read more on PR testing, how to set the testing environment and how to create tests in the official CKEditor documentation.

    This PR contains

    • [x] Unit tests
    • [x] Manual tests

    What is the proposed changelog entry for this pull request?

    * [#1795](https://github.com/ckeditor/ckeditor4/issues/1795): Colors picked from [Color Dialog](https://ckeditor.com/cke4/addon/colordialog) are now stored in [Color Button](https://ckeditor.com/cke4/addon/colorbutton) palette and can be easily reused.
    * [#3783](https://github.com/ckeditor/ckeditor4/issues/3783): Colors used in the document are now displayed as a part of the [Color Button](https://ckeditor.com/cke4/addon/colorbutton) palette.
    

    What changes did you make?

    • Features

    Implementation is mainly based on conclusions listed here, but during development I made one significant change - in palette there are two separate sections for Content Colors (colors found in the editor content - checked on every colorbutton panel open) and Custom Colors (colors picked from color dialog). Without this division the palette was changing unintuitive when e.g. some parts of coloured text were deleted. Thanks to that it was also possible to implement both features independently, so theoretically this PR could be divided into two if it's easier to work with for reviewer.

    • Unit tests

    1. As we are in the middle of discussion about place of issue references in unit tests (using bender-tags or not), for now I just added references for the whole files as it was quicker way. If we determine that adding tags for each test is better, of course I'll change it.
    2. Features are implemented for both Text Color and Background Color buttons and the only difference between them is that they should track colors independently, so only tests checking setup are doubled - the core features are tested only for Text Color. If this is insufficient, of course I'll change it.
    3. Code for preserving color style is entirely in colorbutton plugin so I also put tests there, but in fact without colordialog it doesn't do a thing, so I wonder if it would be better to place them in the colordialog folder.
    • Manual tests

    1. I'm guess despite manual tests are split into 2 files they may still be to complex, if reviewer will share this point of view then of course I'll change it.
    2. The same as point 3. for unit tests - maybe tests for custom colors should be in colordialog folder?
    • PS

    1. There will be probably two new phrases to translate - right now they are "Content Colors" and "Custom Color". Yet I didn't update lang files, as they can still change - let's create new entries just before merge.
    2. In our test base I saw e.g. such code snippet:
    <h2 style="color:FF0000">Hello</h2>
    

    and in this format the color will not be displayed in palette (which makes sense with because default ACF settings don't allow this construction). As for now this feature only finds colors expressed in hex code attached to spans through style attribute, like here:

    <p><span style="color:334455">Hello</span></p>
    

    But I just realised that the below snippet is also fine for ACF:

    <p><span style="color:red">instance</span></p>
    

    so probably it should work too, and now it doesn't... So I'll fix that after the first review :)

    Which issues your PR resolves?

    Closes #1795. Closes #3783.

    opened by Dumluregn 28
  • Fix for: focused input in dialog is scrolled out of viewport when soft keyboard appears

    Fix for: focused input in dialog is scrolled out of viewport when soft keyboard appears

    What is the purpose of this pull request?

    Bug fix

    Does your PR contain necessary tests?

    All patches which change the editor code must include tests. You can always read more on PR testing, how to set the testing environment and how to create tests in the official CKEditor documentation.

    This PR contains

    • [X] Unit tests
    • [X] Manual tests

    What changes did you make?

    This is early PR with proposal of solution.

    Current solution

    When soft keyboard appears on touch devices it causes 'resize' event on which we were recalculating center position of fixed dialog. After that browser tried to scroll into view of input but it took wrong position, probably before moving it. Such complex way of centering dialog is unnecessary, as dialog can't be dragged without mouse.

    I have reworked how a dialog is styled:

    • Dialogs wrapper now has position: fixed with width and height set to 100%.
    • When the dialog is shown document.body gets a class with 'overflow:hidden', and style padding-right calculated from width of scrollbar.
    • In IE the dialog is centered via absolute position calculated by script.
    • In any other browser the dialog is centered by only CSS.
    • When the dialog is is dragged it becomes absolute positioned.

    After changes we won't adjust dialogs position once opened on the mobile devices, it will be positioned only by CSS and the way it's scrolled into view of focused inputs is only relying on browser implementation.

    Unfortunately browsers implementation isn't perfect and sometimes it still scrolls it in wrong way, but that's rare. And it should be mentioned that this can happen even with fully static pages, with no js, and everything relative positioned.

    Other solution

    Adding once( 'scroll' ... inside focus listener and calling scrollIntoView on currently focused input. This is much simpler, but creates visible flickering, so I dropped this idea for now.

    Todo

    • Adding styles to other skins, and testing them.
    • Improving way how missing scrollbars are covered with padding, or dropping idea to let page expand.
    • Unit tests.
    • Cleaning code.

    Closes #2395. Closes #3359. Closes #453.

    review:easy 
    opened by engineering-this 27
  • Support editor functions after reattach to DOM

    Support editor functions after reattach to DOM

    What is the purpose of this pull request?

    New feature

    Does your PR contain necessary tests?

    All patches that change the editor code must include tests. You can always read more on PR testing, how to set the testing environment and how to create tests in the official CKEditor documentation.

    This PR contains

    • [x] Unit tests
    • [X] Manual tests

    Did you follow the CKEditor 4 code style guide?

    Your code should follow the guidelines from the CKEditor 4 code style guide which helps keep the entire codebase consistent.

    • [X] PR is consistent with the code style guide

    What is the proposed changelog entry for this pull request?

    * [#4462](https://github.com/ckeditor/ckeditor4/issues/4462): Support editor functions after reattaching to DOM.
    

    What changes did you make?

    Give an overview…

    Which issues does your PR resolve?

    Closes #4462 .

    opened by sculpt0r 25
  • "TypeError: Cannot read property 'unselectable' of null" thrown when working with CKEditor in integrations

    Type of report

    Bug/Task/Feature?

    Provide detailed reproduction steps (if any)

    Demo was provided by one of users in Angular: https://github.com/ckeditor/ckeditor4-angular/issues/114#issuecomment-665137826.

    Expected result

    Errors are not thrown.

    Actual result

    TypeError: Cannot read property 'unselectable' of null error is thrown and CKEditor crashes.

    Other details

    There is an error that occurs in various frameworks where you try to integrate CKEditor. It was reported in Drupal, Laravel and Angular and now I encountered it while testing https://github.com/ckeditor/ckeditor4-angular/issues/143.

    The issue is most probably caused by this line:

    topHtml && editor.ui.space( 'top' ).unselectable();
    bottomHtml && editor.ui.space( 'bottom' ).unselectable();
    

    Although the issue wasn't reproduced in the CKEditor itself so far, I think it could be worth to at least take a look at it as it makes integrating it a bit more difficult than it should be. It's hard to classify the character of this issue, so it may need to be relabeled.

    type:task status:confirmed 
    opened by Dumluregn 24
  • Paste from Google docs

    Paste from Google docs

    Are you reporting a feature request or a bug?

    New feature

    Check if the issue is already reported

    https://dev.ckeditor.com/ticket/13877

    Provide detailed reproduction steps (if any)

    1. Open this Google doc
    2. Highlight all content
    3. Paste into a CKEditor instance

    Expected result

    The content is pasted with formatting resembling the original

    Actual result

    The content is entirely bold

    Other details

    • Browser: Safari 10.1.2 (12603.3.8)
    • OS: macOS 10.12.6 (16G29)
    • CKEditor version: 4.7.2
    • Installed CKEditor plugins: Basic preset
    type:feature status:confirmed plugin:clipboard target:major 
    opened by mark-wade 23
  • window event listener not removed on destroy

    window event listener not removed on destroy

    An event listener for popstate or hashchange is added to window by maximize plugin for each instance. It is not removed from window when calling editor.destroy()

    type:bug status:confirmed plugin:maximize 
    opened by z419 1
  • Embed plugin. Instagram link problem

    Embed plugin. Instagram link problem

    Hi, I'm having problems with the media embed plugin. The link to the instagram post on mobile phones does not work. Presumably the problem is in the id of the Instagram post, there is a dash (-) sign, which breaks the link for me. Tell me what should I do? (Good on desktop)

    Post - https://www.instagram.com/p/Cjo2-DOIkAG/ Id with dash - Cjo2-DOIkAG

    image

    type:bug stale 
    opened by elsive2 2
  • Method signatures for the `CKEDITOR.htmlDataProcessor` class don't match the `editor.dataProcessor` API

    Method signatures for the `CKEDITOR.htmlDataProcessor` class don't match the `editor.dataProcessor` API

    Type of report

    Docs

    Provide a description of requested docs changes

    The method signatures of the htmlDataProcesser were updated in 4.3.0, but the documentation still shows the older "backwards compatible" method signatures

    See: https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_htmlDataProcessor.html#method-toHtml

    which has the now "options" field instead populated by an array.

    status:confirmed type:docs 
    opened by Enquier 1
  • Failing tests in Chrome version >= 108

    Failing tests in Chrome version >= 108

    Type of report

    Failing tests

    Provide detailed reproduction steps (if any)

    1. Run all tests.

    Expected result

    Tests are passed.

    Actual result

    Tests are failing but when we run every single failing test in a separate browser tab, the tests will pass.

    image

    Other details

    • Browser: Chrome
    • OS: …
    • CKEditor version: 4.20.1
    • Installed CKEditor plugins:
    status:confirmed browser:chrome type:failingtest 
    opened by KarolDawidziuk 1
  • Paste image from a website doesn't work on Safari@iOS

    Paste image from a website doesn't work on Safari@iOS

    Type of report

    Bug

    Provide detailed reproduction steps (if any)

    1. Copy the image from the website and try to paste it on Safari@iOS

    Expected result

    Image pasted.

    Actual result

    Nothing happens.

    Other details

    • Browser: Safari@iOS
    • OS: Mac OS
    • CKEditor version: Tested on 4.20.1 and 4.18.0
    type:bug status:confirmed browser:ios plugin:easyimage 
    opened by dufipl 1
  • Table structure changes in div and inline editors in table/manual/changescopeattribute test on Safari@iOS

    Table structure changes in div and inline editors in table/manual/changescopeattribute test on Safari@iOS

    Type of report

    Bug

    Provide detailed reproduction steps (if any)

    1. Open this: http://localhost:1030/tests/plugins/table/manual/changescopeattribute manual test and follow instructions on Safari@iOS (for me mouse connected to the iOS device was needed to enter table properties)

    Expected result

    Everything was as test expected.

    Actual result

    The table structure is changed after setting the Headers option to First column:

    https://user-images.githubusercontent.com/32898551/203548749-51927a29-16a3-48df-971a-b3d415ea2b7e.MP4

    Other details

    • Browser: Safari@iOS
    • OS: iOS
    • CKEditor version: 4.20.1
    type:bug status:confirmed browser:ios plugin:table 
    opened by dufipl 0
Quill is a modern WYSIWYG editor built for compatibility and extensibility.

Note: This branch and README covers the upcoming 2.0 release. View 1.x docs here. Quill Rich Text Editor Quickstart • Documentation • Development • Co

Quill 34.3k Jan 2, 2023
A lightweight and amazing WYSIWYG JavaScript editor - 20kB only (8kB gzip)

Supporting Trumbowyg Trumbowyg is an MIT-licensed open source project and completely free to use. However, the amount of effort needed to maintain and

Alexandre Demode 3.8k Jan 7, 2023
An Easy and Fast WYSIWYG Editor

Simditor Simditor is a browser-based WYSIWYG text editor. It is used by Tower -- a popular project management web application. Supported Browsers: IE1

彩程设计 5k Jan 3, 2023
A lightweight HTML and BBCode WYSIWYG editor

SCEditor v3.1.1 A lightweight WYSIWYG BBCode and XHTML editor. For more information visit sceditor.com Usage Include the SCEditor JavaScript: <link re

Sam 566 Dec 23, 2022
A chrome extension which helps change ace editor to monaco editor in web pages, supporting all features including autocompletes.

Monaco-It Monaco-It is a chrome extension turning Ace Editor into Monaco Editor, supporting all features including autocompletes. 一些中文说明 Supported Lan

null 3 May 17, 2022
The next generation Javascript WYSIWYG HTML Editor.

Froala Editor V3 Froala WYSIWYG HTML Editor is one of the most powerful JavaScript rich text editors ever. Slim - only add the plugins that you need (

Froala 5k Jan 1, 2023
Medium.com WYSIWYG editor clone. Uses contenteditable API to implement a rich text solution.

If you would be interested in helping to maintain one of the most successful WYSIWYG text editors on github, let us know! (See issue #1503) MediumEdit

yabwe 15.7k Jan 4, 2023
Simple, beautiful wysiwyg editor

This repo is no longer maintained. bootstrap3-wysiwyg is much better Overview Bootstrap-wysihtml5 is a javascript plugin that makes it easy to create

James Hollingworth 4.2k Dec 30, 2022
Raptor, an HTML5 WYSIWYG content editor!

Raptor Editor Raptor Editor is a user-focused extensible WYSIWYG website content editor - check out the Demo. It is designed to be user and developer

PANmedia 533 Sep 24, 2022
Super simple WYSIWYG editor

Summernote Super simple WYSIWYG Editor. Summernote Summernote is a JavaScript library that helps you create WYSIWYG editors online. Home page: https:/

Summernote 11k Jan 7, 2023
🍞📝 Markdown WYSIWYG Editor. GFM Standard + Chart & UML Extensible.

TOAST UI Editor v3 major update planning ?? ?? ?? TOAST UI Editor is planning a v3 major update for 2021. You can see our detail RoadMap here! GFM Mar

NHN 15.5k Jan 3, 2023
A powerful WYSIWYG rich text web editor by pure javascript

KothingEditor A powerful WYSIWYG rich text web editor by pure javascript Demo : kothing.github.io/editor The KothingEditor is a lightweight, flexible,

Kothing 34 Dec 25, 2022
Pure javascript based WYSIWYG html editor, with no dependencies.

SunEditor Pure javscript based WYSIWYG web editor, with no dependencies Demo : suneditor.com The Suneditor is a lightweight, flexible, customizable WY

Yi JiHong 1.1k Jan 2, 2023
WYSIWYG editor developed as jQuery plugin

RichText WYSIWYG editor developed as jQuery plugin. Requirements jQuery (v.3+, v.3.2+ recommended) FontAwesome (v.4.7.0 / v.5+) src/jquery.richtext.mi

Bob 95 Dec 30, 2022
Open source rich text editor based on HTML5 and the progressive-enhancement approach. Uses a sophisticated security concept and aims to generate fully valid HTML5 markup by preventing unmaintainable tag soups and inline styles.

This project isn’t maintained anymore Please check out this fork. wysihtml5 0.3.0 wysihtml5 is an open source rich text editor based on HTML5 technolo

Christopher Blum 6.5k Jan 7, 2023
Open source rich text editor based on HTML5 and the progressive-enhancement approach. Uses a sophisticated security concept and aims to generate fully valid HTML5 markup by preventing unmaintainable tag soups and inline styles.

This project isn’t maintained anymore Please check out this fork. wysihtml5 0.3.0 wysihtml5 is an open source rich text editor based on HTML5 technolo

Christopher Blum 6.5k Dec 30, 2022
Verbum is a fully flexible text editor based on lexical framework.

Verbum Verbum - Flexible Text Editor for React Verbum is a fully flexible rich text editor based on lexical-playground and lexical framework. ⚠️ As th

Ozan Yurtsever 560 Dec 29, 2022
A simple, beautiful, and embeddable JavaScript Markdown editor. Delightful editing for beginners and experts alike. Features built-in autosaving and spell checking.

SimpleMDE - Markdown Editor A drop-in JavaScript textarea replacement for writing beautiful and understandable Markdown. The WYSIWYG-esque editor allo

Sparksuite 9.3k Jan 4, 2023
A editor with the main features created using Remirror and with a special code block

A editor with the main features created using Remirror and with a special code block

Brenda Profiro 26 Sep 20, 2022