Days
Hours
Minutes
Seconds
x

New Froala Editor v4.5.1 is here – Learn More

Skip to content

Powerful WYSIWYG Froala HTML Editor Into WordPress

Easily Integrate the Powerful WYSIWYG Froala HTML Editor into WordPress

Everybody loves to use What-You-See-Is-What-You-Get (WYSIWYG) editors, both for their convenience and ease of use. They make it possible for non-coders to create rich content within minutes. Unfortunately, not all editors are created equally. In fact, many don’t even come close. One common problem is that some editors are difficult to integrate, especially into tools like WordPress. That seriously limits your viable choices.

For this reason, choosing the right editor is important. Simply put, choosing the wrong editor can cause you and your development team no end of problems. That’s why you need a powerful, easy-to-integrate HTML Editor like Froala.
In this article, we’ll go over how to install Froala, easily integrate the Powerful HTML Editor into your WordPress ecosystem, and get started with Froala.

What is Froala?

If you are wondering what makes Froala different, the is the answer is simple. Froala is a blazing fast WYSIWYG HTML editor that is lightweight, well-structured, and highly secure. It’s very easy for your development team to integrate and it has a very clean user interface. Your website users will love it.

Why should you use Froala?

Here are a few highlights that set Froala apart from ‘similar’ editors.

  • Easy integration
  • Super-fast performance
  • Improved user experience with HTML5 and CSS3 support
  • Responsive design suitable for all modern devices, including PCs, smartphones, and laptops
  • Multilingual support

How can I install Froala?

If you want to install Froala, either download it manually from GitHub and place it in your WordPress plugins folder, or simply get it directly as a download from your WordPress Plugins page. Here, you will find the details of both methods.

How to Install Froala Manually  

  1. Clone or download the contents of the WordPress Froala WYSIWYG
  2. Create a new folder inside your WordPress installation under the plugins folder.
  3. Copy Froala to the new folder.

Now, you can see the plugin in your WordPress admin area.

How to Install Froala via the Plugins Page on Your WordPress admin

  1. Go to your WordPress admin area.
  2. Head to Plugins. Then click Add New.
  3. Search for Froala WYSIWYG Editor and follow the automated process.

That’s it! Keep in mind that you might need the “ftp://” credentials, which is a default WordPress behavior when installing new plugins.

How can I integrate Froala into WordPress?

Integrating Froala into your WordPress install is pretty straightforward. Simply follow these steps:

  1. Go to the Plugins page inside the WordPress admin area.
  2. Activate the Froala plugin.

That’s it! Now, Froala will act as the default HTML editor on your WordPress.

How can I use Froala on the front-end?

You can use Froala from your WordPress admin area as soon as it is active. If you want to use it on the front-end of your website, however, you will have to initialize it from the themes folder.

Here are the steps of using Froala on the front-end:

Define Custom Folder Path

First, you have to define custom folder path for JavaScript and CSS. Simply use this code:

define('FroalaCustomJSFolderPath', '/'.basename(__DIR__).'/custom/js');
define('FroalaCustomCSSFolderPath', '/'.basename(__DIR__).'/custom/css')

Utilize Public Hooks

Now, you have to utilize WordPress public hooks to implement Froala on the front-end. Follow these steps:

1. Define custom CSS and JavaScript paths.

$custom_css_path = plugins_url(FroalaEditorCustomCSSFolderPath);
$custom_js_path = plugins_url(FroalaEditorCustomJSFolderPath);

2. Now, you have to apply filters on the custom CSS path.

$hook = apply_filters('froala_after_public_init', $custom_css_path.'/test.css', 'css', 'file','test');

3. Create an if statement for your error messages.

if( is_wp_error( $hook ) ) {
    echo $hook->get_error_message();
}

4. Apply filters on the custom JavaScript path. Then create an if statement that displays the error message.

$hook = apply_filters('froala_before_public_init', $custom_js_path.'/test.js', 'js', 'file','test');

if( is_wp_error( $hook ) ) {
  echo $hook->get_error_message();
}

5. You can use inline scripts for both JavaScript and CSS. Here is the code:

// Example using inline script

$hook = apply_filters('froala_after_public_init', null, 'js', 'inline', 'console.log("test")');

if( is_wp_error( $hook ) ) {
  echo $hook->get_error_message();
}

// Example using inline css
$hook = apply_filters('froala_before_public_init', null, 'css', 'inline', 'h1 {background-color: #00ffff;}');


if( is_wp_error( $hook ) ) {
  echo $hook->get_error_message();
}

Make sure to register your hooks right after instantiating the FroalaEditor class.

6. Create a new Froala_Editor() instance. Then apply filters and activate the plugin with this code:

Froala_Editor = new Froala_Editor();
.
.
.
$hook = apply_filters('froala_before_public_init', null, 'css', 'inline', 'h1 {background-color: #00ffff;}');
.
.
$froala->activate('#comment',array('colorsBackground   '=> ['#61BD6D', '#1ABC9C', '#54ACD2', 'REMOVE'],
                                         'colorsText'         => ['#61BD6D', '#1ABC9C', '#54ACD2', 'REMOVE']
                                        ));

Overall, the code will look like this:

// There are 2 available hooks that work for the front-end part of the website.
// froala_before_public_init acts before the editor gets initialized and 
// froala_after_public_init acts after the editor and all the plugins are loaded.
// Callback function for these hooks accepts 4 params

/** Callback function for public hooks"
 *
 * @param null $path        * File path on server.
 * @param null $type        * Can be js or css
 * @param string $prop      * Can be inline|file
 * @param null $mix         * If prop = file, mix will be the file name else if prop = inline mix will be the data.
 *
 * @return array|WP_Error
 *
 *
* To use a public hook, it needs to be registered right after the editor get is instantiated. The proper way 
* would be to store it in a variable so you can have access to the debug log.
*
* This example includes a custom CSS file and load's it accordingly because it's used after public init the CSS file
* will be at the very bottom of your head tag.

* To understand better, the params are in this way: 
* 1' st froala_after_public_init        => name of the hook.
* 2' nd $custom_css_path.'/test.css'    => path to the file.
* 3' rd 'css'                           => script type.
* 4' th 'file'                          => script property, can be file|inline.
* 5' th 'test'                          => the name of the file. 
*/
$custom_css_path = plugins_url(FroalaEditorCustomCSSFolderPath);
$custom_js_path = plugins_url(FroalaEditorCustomJSFolderPath);

$hook = apply_filters('froala_after_public_init', $custom_css_path.'/test.css', 'css', 'file','test');

if( is_wp_error( $hook ) ) {
    echo $hook->get_error_message();
}

// Same as the example above but it includes a javascript file and the action of the hook it's before Froala Editor's initialization.
$hook = apply_filters('froala_before_public_init', $custom_js_path.'/test.js', 'js', 'file','test');

if( is_wp_error( $hook ) ) {
  echo $hook->get_error_message();
}
// Example using inline script

$hook = apply_filters('froala_after_public_init', null, 'js', 'inline', 'console.log("test")');

if( is_wp_error( $hook ) ) {
  echo $hook->get_error_message();
}

// Example using inline css
$hook = apply_filters('froala_before_public_init', null, 'css', 'inline', 'h1 {background-color: #00ffff;}');


if( is_wp_error( $hook ) ) {
  echo $hook->get_error_message();
}

// Note!! 
//The hooks must be registered right after instantiating the FroalaEditor class.

$Froala_Editor = new Froala_Editor();
.
.
.
$hook = apply_filters('froala_before_public_init', null, 'css', 'inline', 'h1 {background-color: #00ffff;}');
.
.
$froala->activate('#comment',array('colorsBackground   '=> ['#61BD6D', '#1ABC9C', '#54ACD2', 'REMOVE'],
                                         'colorsText'         => ['#61BD6D', '#1ABC9C', '#54ACD2', 'REMOVE']
                                        ));

Utilize Admin Hooks

The process of using Froala on the WordPress admin is quite similar to the method of using it on the front-end. You just need to utilize the admin hooks.  Here is the code:

// There are 2 available hooks that work for the admin part of the website.
// froala_before_init acts before the editor gets initialized and 
// froala_after_init acts after the editor and all the plugins are loaded.
// Callback function for these hooks accepts 4 params

/** Callback function for public hooks"
 *
 * @param null $path        * File path on server.
 * @param null $type        * Can be js or css
 * @param string $prop      * Can be inline|file
 * @param null $mix         * If prop = file, mix will be the file name else if prop = inline mix will be the data.
 *
 * @return array|WP_Error
 *
 *
* To use a private hook, it needs to be registered before the editor get is initialized. The proper way 
* would be to store it in a variable so you can have access to the debug log.
*
* This example includes a custom CSS file and load's it accordingly because it's used after admin init the CSS file
* will be at the very bottom of your head tag.

* To understand better, the params are in this way: 
* 1' st froala_after_public_init        => name of the hook.
* 2' nd $custom_css_path.'/test.css'    => path to the file.
* 3' rd 'css'                           => script type.
* 4' th 'file'                          => script property, can be file|inline.
* 5' th 'test'                          => the name of the file. 
*/

$custom_css_path = plugins_url(FroalaEditorCustomCSSFolderPath);
$custom_js_path = plugins_url(FroalaEditorCustomJSFolderPath);

$hook = apply_filters('froala_after_init', $custom_css_path.'/test.css', 'css', 'file','test');

if( is_wp_error( $hook ) ) {
  echo $hook->get_error_message();
}
// Same as the example above but it includes a javascript file and the action of the hook it's before Froala Editor's initialization.

$hook = apply_filters('froala_before_init', $custom_js_path.'/test.js', 'js', 'file','test');

if( is_wp_error( $hook ) ) {
  echo $hook->get_error_message();
}
// Example using inline script

$hook = apply_filters('froala_after_init', null, 'js', 'inline', 'console.log("test")');

if( is_wp_error( $hook ) ) {
  echo $hook->get_error_message();
}
// Example using inline CSS

$hook = apply_filters('froala_before_init', null, 'css', 'inline', 'h1 {background-color: #00ffff;}');

if( is_wp_error( $hook ) ) {
 echo $hook->get_error_message();
}

Use Froala on the Front-End But Save the Images Inside WordPress Media Library

1. Create a new Froala_Editor() instance.

$Froala_Editor = new Froala_Editor();

2. Then activate the plugin using a variety of parameters, including imageUploadParams, imageUploadURL, imageManagerLoadParams, and imageManagerLoadURL.

imageUploadURL, imageManagerLoadParams, and imageManagerLoadURL.
$Froala_Editor->activate('#comment',array(
                                    'imageUploadParams'  => ['action' =>'froala_upload_files'],
                                    'imageUploadURL'     => admin_url( 'admin-ajax.php' ),
                                    'imageManagerLoadParams'   => ['action' =>'froala_image_manager'],
                                    'imageManagerLoadURL'=> admin_url( 'admin-ajax.php' )
                                    ));

How can I get started with Froala?

Froala has made the developer’s life a lot easier by providing easy integration support with WordPress. It is also well-designed and blazing fast. These are all great reasons to give it a try.

Froala is a powerful WYSIWYG HTML editor offering 100+ out-of-the-box features. Try it now for free.

Rapidly Create A Powerful Image Manager In NodeJS

Rapidly Create A Powerful Image Manager In NodeJS

Anyone who has ever designed or developed a modern web application knows that uploading and downloading images is a very common and recurring task. The process is necessary but repetitive and often takes up a fair amount of your development time. 

Because we have been through it ourselves, here at Froala, we recognize this pain point. As a result, we designed efficient server-side image management for our WYSIWYG HTML Editor.  In short, we have developed multiple SDKs to help accelerate your development process at the server end.

In this blog post, we’ll look at how you can quickly create a powerful image manager in NodeJS using the Froala WYSIWYG HTML Editor SDK Node package. 

How can I install the Froala Editor SDK Node package?

Instructions for installing Froala Editor Node SDK, highlighting ease of setup and integration

Froala provides a full-featured SDK for NodeJS to simplify and streamline the development process in the NodeJS development environment. You can get the NodeJS Froala WYSIWYG Editor SDK using npm by running the following command. 

npm install wysiwyg-editor-node-sdk

Once you have installed the SDK, you simply import it into your NodeJS application.  Similar to any other package import, the following line makes the Froala Editor available within your defined scope. 

var FroalaEditor = require('PATH_TO_THE_SDK/lib/froalaEditor.js');

How can I initialize the JavaScript editor on the client side?

Before moving forward with handling your upload queries on the NodeJS backend server, let’s initialize and configure the browser code to call your endpoints for uploading and deleting images from the server. 

Initializing the Froala Editor is as simple as creating a new object in the JavaScript code. You can initialize the Froala Editor as follows:

<script>
  new FroalaEditor('.selector')
</script>

After initializing the editor, let’s also pass the options JSON object to the FroalaEditor constructor with your URL endpoints against the upload and delete properties. 

The final code after initializing and defining the image manager URLs should look like this.

<script>
  new FroalaEditor('.selector', {
    // Set the image upload URL.
    imageManagerLoadURL: '/load_images',

    // Set the image delete URL.
    imageManagerDeleteURL: '/delete_image'
  })
</script>

What is an easy way to configure the load request?

Remember that we used the /load_image URL endpoint in browser code to capture the load requests for images? Now, let’s look at the server-side implementation that actually addresses that query.

The server implementation receives requests and handles them accordingly. The WYSIWYG editor’s NodeJS SDK has a method you can use to load all the images inside a specified folder on the server. This method is called list and is defined in the Image class inside the FroalaEditor namespace. 

The following piece of code will place all the image uploads in the uploads directory on the server. 

FroalaEditor.Image.list('/uploads/', function(err, data) { ... });

Can I receive the delete request on Node Backend?

Just like we captured the upload requests using the dedicated list method, the Froala SDK also provides a method to delete an already uploaded image on the server. 

The server listens for delete requests and processes them accordingly. You specify the path of the image you want to be deleted in request.body.src. The delete method of the Image class from the NodeJS SDK removes the image at the provided path from the server. 

FroalaEditor.Image.delete(req.body.src, function(err) { ... });

What does my Node code (after configuration) look like?

Node.js code for integrating Froala Editor, emphasizing backend development

The following code is your end-to-end image manager in NodeJS. It lets you upload and delete images on the server using the Froala Editor SDK.

// Importing dependencies
var express = require('express');
var app = express();
var bodyParser = require('body-parser')
var path = require('path');
var fs = require('fs');
var gm = require('gm').subClass({imageMagick: true});
var FroalaEditor = require('PATH_TO_FROALA_SDK/lib/froalaEditor.js');

// Middleware definition
app.use(express.static(__dirname + '/'));
app.use('/bower_components',  express.static(path.join(__dirname, '../bower_components')));
app.use(bodyParser.urlencoded({ extended: false }));

// API endpoints
app.get('/load_images', function (req, res) {

  FroalaEditor.Image.list('/uploads/', function(err, data) {

    if (err) {
      return res.status(404).end(JSON.stringify(err));
    }
    return res.send(data);
  });
});

app.post('/delete_image', function (req, res) {

  FroalaEditor.Image.delete(req.body.src, function(err) {

    if (err) {
      return res.status(404).end(JSON.stringify(err));
    }
    return res.end();
  });
});

As you can see, creating image managers in NodeJS applications with Froala SDK is quick and easy. With minimum low-level code requirements, you can easily create real-time image managers and integrate them into your applications. 

Install NodeJS Froala WYSIWYG Editor SDK and start creating powerful image managers in NodeJS.

Sencha Ext JS Apps With The Froala WYSIWYG HTML Editor

A developer's workspace, symbolizing coding and software development.

When it comes to choosing a JavaScript framework and a WYSIWYG editing tool, it is important that they play well together. Making poorly matched choices can have some pretty severe consequences. At best, you may find your solutions lacking key functionality. At worst, you may find yourself suffering from integration and performance issues that require time-consuming workarounds or total code rewrites to fix.

That is why the Froala Editor and Sencha Ext JS are a great choice for your development environment — they were developed to get along.

Froala Editor is a lightweight next-generation WYSIWYG HTML Editor that developers can easily integrate into their applications. The Froala web editor is written in JavaScript and enables rich text editing experiences in your applications. Successful companies like Samsung, Apple, IBM, Intel, and Salesforce are changing the world, and they use Froala.

Sencha Ext JS is the most comprehensive JavaScript framework for building data-intensive, cross-platform web and mobile applications. You can run them on any modern device. Ext JS includes 140+ pre-integrated and tested high-performance UI components.

In this article, we’ll look at how we can use Sencha Ext JS with Froala WYSIWYG HTML Editor to supercharge your JavaScript apps.

What is an easy way to install Froala Editor with Sencha Ext JS?

To install Froala in your Ext JS development environment, you can either use npm or a Sencha Cmd package. Find them hosted on Sencha’s CDN. 

To install Froala via npm, log in to the Sencha npm repository using the following command.

npm login --registry=https://npm.sencha.com --scope=@sencha

Now, navigate to your ext-gen project and run the following command to install the Froala Editor.

npm install @sencha/ext-froala-editor

Finally, configure your Ext JS app to use the new package by registering froala-editor to the requires array in app.json

If that sounds like a bit much, then installing via Sencha Cmd is even easier. You just need to configure the Ext JS app to use the new code package by updating the app.json file. once that is updated, Sencha Cmd will automatically download and install the Froala Editor dependency the next time you build your application. 

In both cases, you have to register the Froala path to the workspace.json packages.dir string as follows:

"packages": {
    "dir": "...,${workspace.dir}/node_modules/@sencha/ext-froala-editor",
    ...
}

How can I configure and use Froala Editor in Sencha Ext JS apps?

Configuring and using Froala Editor in Sencha Ext JS

Sencha Ext JS supports two versions of Froala Editor; Ext.froala.Editor and Ext.froala.EditorField. Both the versions are configured and used identically but the field version extends the Ext.field.Field class. As a result, you can give it a name and value which means you can use it in field panels and form panels. 

Do do this, use the value config property to specify the editor’s initial value. Because the value config is HTML, it will contain HTML tags.

Here is what the simple Froala Editor Field code looks like.

Ext.create('Ext.Panel', {
    requires: ['Ext.froala.EditorField'],
    renderTo: document.body,
    viewModel: {
        data: {
            html: '<p>Hello world!</p>'
        },
        formulas: {
            encodedHtml: function (get) {
                return Ext.htmlEncode(get('html'));
            }
        }
    },
    title: 'Froala Editor',
    tbar: [{
        xtype: 'label',
        bind: {
            html: '{html}' // Show the HTML with embeded markup
        }
    }],
    bbar: [{
        xtype: 'label',
        bind: {
            html: '{encodedHtml}' // Show the raw HTML content
        }
    }],
    layout: 'fit',
    items: [{
        xtype: 'froalaeditorfield',
        bind: {
            value: '{html}'
        }
    }]
});

In addition to this, the editor config property lets you configure the Froala editor instance. You can use any Froala config documented on the Froala Options page.

A sample editor configuration looks like this:

Ext.create('Ext.Panel', {
    renderTo: document.body,
    requires: ['Ext.froala.EditorField'],
    items: [{
        xtype: 'froalaeditorfield',
        value: 'Hello world!',
        editor: {
            autofocus: true,
            // Look under the "More Text | Font Size" menu
            fontSize: ['10', '12', '16', '24']
        }
    }]
});

How can I integrate Froala events with existing Ext JS apps?

Listening to Froala events is pretty simple in Ext JS. You can use the Ext JS standard listeners config property and listen to native Froala events by using the froala prefix on the event name. You can find more information about Froala Events here.

Ext.create('Ext.Panel', {
    renderTo: document.body,
    requires: ['Ext.froala.EditorField'],
    items: [{
        xtype: 'froalaeditorfield',
        value: 'Hello world!',
        listeners: {
            change: function (froalaComponent) {
                Ext.toast({
                    message: 'Change!'
                });
            },
            // Native Froala events are prefixed with 'froala.'
            'froala.click': function (froalaComponent) {
                Ext.toast({
                    message: 'Click!'
                });
            }
        }
    }]
});

How can I run Froala native methods in Ext JS apps?

So we know that listening to Froala events is possible using the listeners config property, but have you ever wondered how to run Froala native methods inside your Ext JS apps? Sencha Ext JS makes it extremely easy to execute Froala native methods inside your Ext JS application. You just need to get the reference to Froala editor using getEditor() method and then you can run any Froala method you want. 

myFroalaComponent.getEditor().charCounter.count()

A full list of Froala native methods is available here

Running Froala native methods in Ext JS

Want to learn more about using Sencha Ext JS and the Froala Editor in your apps? You can check for detailed and study-oriented documentation in the Sencha guide.

Think you are ready to get started with Froala WYSIWYG HTML Editor and Sencha Ext JS? Head over to Sencha Ext JS and integrate Froala Editor now.

Rapidly Integrate A WYSIWYG HTML Editor In React

Rapidly Integrate A WYSIWYG HTML Editor In React

The Froala Editor may be the world’s most beautiful HTML Editor. Whether this is true or not, it is certainly one of the smartest. This is because Froala’s simple, high-performance design makes our JS text editor easy for developers to use and for users to love. As if that wasn’t enough, pairing the Froala Editor with React brings all of that power to your React application.

Developers created Froala for developers with a powerful API and documentation to get you started in minutes. Why reinvent the wheel when our rich text editor comes with over 30 out-of-the-box plugins to choose from and use in your project? Let’s get started by learning these topics:

  • How do you import the Froala, HTML Editor in React JS?
  • What can you do with custom events, methods, and tags?
  • How do I change the editor content model?
  • How do I manually operate the editor?

By learning all of these in this article, you’ll find out how to integrate WYSIWYG HTML Editor into your React applications.

How do you import the Froala HTML Editor in React JS? 

Adding the Froala the WYSIWYG Editor’s functionality into the React framework is quick and efficient. The first thing you need is to install the rich text editor. You do this by calling npm install react-froala-wysiwyg, and saving a copy of it in your JS application. Before you do however, check that you have the latest version with npm update froala-editor to see if you have all the latest features and updates.

To use the Froala Editor, just drop its component inside your JS file by pasting the code outlined in the Usage section. Be sure to fetch it from react-froala-wysiwyg, which is specifically for React JS. It also assigns font Awesome as the default format. 

You also need to import each module storing the compressed stylesheets and minified JS files. This includes the images, buttons, and other elements you need for Froala to display the interface correctly. Next, render the component with ReactDOM.render() by passing in a textarea tag and the editor’s ID. 

Showcasing Froala integration with React JS, highlighting modern web development techniques

What can you do with custom events, methods, and tags? 

Next, to load the files mentioned earlier, you must configure the Webpack settings. The file path must match the webpack module as well as the test and loader results. Check that the same is true for your  Webpack 4 URLs before you move on. 

If you plan to run special tags, stick with only the listed FroalaEditor components. Although you have access to a long list of possible config options, you don’t need most of them to complete this tutorial. 

Froala also offers advanced features through its event functions.  As stated in the events docs, you can call these by setting the name and value to a particular instance. This applies to uploading files, resizing images as well as linking to videos. A separate method docs shows you how to open the editor by passing in your specified arguments. 

How do I change the editor content model?

The editor content model is an extension of the React component. To change the content model, you need to construct an object template using a two-way binding to set a state that inherits from the stored data. Within the model’s HTML, you can configure tags for images, buttons, inputs, and links. This only applies to objects containing the special tag attributes under each state of the constructor. 

For example, it lets you modify the innerHTML tag with different text for a button element. To display an image, you just have to change the tag to src followed by the URL path as a string. You can even exclude Froala updates for any tag by adding the reactIgnoreAttrs array. 

React JS documentation in Froala, showcasing integration and usage guidelines

 

How do I manually operate the editor?

If you want to manually operate the editor functionality, you need to initialize it by executing the handleManualController function. Here you basically create an object instance of the editor component class that is capable of calling methods to either launch or remove the editor in React. 

If you need to declare a type definition file, paste in a reference path set equal to index.d.ts the file’s location in this repository. Once you are done working on your content blocks, you can parse the code with the FroalaEditorView component. The end result displays content on your JS application.  

For a comprehensive overview of the React JS Editor, you can take a closer look at the documentation tutorial to understand the whole process of running various content modules from Froala. 

Download the full source code for the Froala Editor example React app off GitHub.

Froala vs. CKEditor: Comparing JavaScript Rich Text Editors  

A developer working on a laptop symbolizes software development and coding.

When you choose a rich text, WYSIWYG, JavaScript editor, there are a number of issues you need to take into consideration. These include features, support, scalability, plugins, and of course, cost. With many options on the market, here we compare two of the most popular — CKEditor and Froala Editor.

Froala is a streamlined software editor for resourceful JS developers who want to get more done with drag-and-drop code blocks. The Rich Text Editor helps you build intuitive web apps for your users. With its complete documentation guide, designed framework plugins, and a handful of examples for integration. Froala is continuously working to add new features and take the Javascript web WYSIWYG editing capabilities beyond their current limits. It also comes with a free, lightweight demo to customize at your leisure.

Read on to see how it stacks up against CKEditor.

On which bases should we compare rich text editors?

Before we start comparing these editors, we should first set each basis in comparing them. In other words, we need to determine the characteristics of an ideal editor. It’s important to do so, because these bases lead to better and less subjective comparisons. 

Features

The first basis we need to consider when comparing rich text editors is their features. After all, they dictate what your users will and won’t be able to do when using your rich text editor. The more features you have, the more versatile and accommodating your rich text editor will be. Similarly, the less features your editor has, the less use cases it can accommodate. You should consider whether you need some advanced features (for instance, skins and icons pack). This is because although some features sound great, they can add up to the total size of your application. However, there are some advanced editors that have plenty of features while being lightweight and fast. So, you should always maximize the number of features in your editor while also minimizing app size and load time. 

Speed

Another important factor in rich text editor comparison is speed. Of course, users will have a better interaction with and impression on faster apps. And this also goes for rich text editors. Would you want your users to wait a few seconds before your editor loads or have them work right away? The obvious answer is that your editor should load as fast as possible. But how do you know which ready-made editor is the fastest? You’d have to check their sites for information on speed or test them out yourself. However, do note that some editors could be really fast because they lack tons of features. Hence, it’s wise to look for an editor that’s both feature-rich and lightweight

UI Design

The design of a user interface is just as important as features because of their direct contribution to user experience. Suppose we have a near-perfect, feature-rich, and fast rich text editor that has an archaic design. Would users still love it? Probably. But what if users find another near-perfect, feature-rich and fast editor that has a sleek, modern, and intuitive interface? They will most likely love that better. That’s because aesthetically pleasing and intuitive designs let users work more efficiently. They also greatly lower the learning curve for users to familiarize themselves with the editor. Additionally, you have to make sure that your editor is responsive and mobile-friendly. Finally, an organized editor toolbar lets users find the features they want more easily. 

Developer-friendliness

When looking for and comparing rich text editors, it would be wise to choose one that’s developer-friendly. This means that the editor should have the ability to be integrated easily with applications, regardless of the language or framework used. A rich text editor would greatly contribute to efficiency if it can be integrated in a matter of minutes or even seconds. 

Affordability

The not-so-great news about some premium rich text editors is that they have much higher prices. Thus, it’s essential that you find an editor that has great/numerous features, is fast, and still within your company’s budget. Discounts, especially for startups, greatly help as well. Lastly, you should avoid editors that have additional charges based on editor loads/number of users or additional features you have to pay for. 

Support and documentation

The last rich text editor comparison basis is how good its support and documentation are. The cheaper and more helpful and reachable its support is, the better it is. And the more comprehensive and easy to understand the documentation is, the better the experience will be for developers and users alike. 

What are the key benefits of the Froala Editor?

On the surface, many other vendors appear to offer all-in-one rich text editor packages. This is true to a point; however, they often overlook an important issue for consumers. In essence, they lack scalability in their plans for non-enterprise clients. These include clients with less demanding workloads to replicate on fewer servers.

This is where Froala differs from the other offerings, which makes it a great CKEditor alternative.

Froala’s core principles are founded on creating manageable and affordable software. This means we don’t overwhelm our users with overly advanced tool sets that require confusing tutorials to implement. Despite its ease of use, Froala also offers its users all kinds of powerful features. These features include, but are not limited to:

  • Hosting on our servers for unlimited active users
  • Full access to all Froala editing tools regardless of the plan you choose
  • Free updates for up to 1 year with fixed annual pricing
  • 24/7 live support whenever you encounter technical issues

How does Froala annual pricing compare against CKEditor ?

Cost Matrix — Pricing Overview

Comparing Froala Editor with CKEditor, highlighting features and interface differences

 

Save on annual costs with Froala

Froala’s annual pricing is certainly less expensive than CKEditor.  Although it depends on your use case, most users save 200% – 600%  by choosing Froala over similar tools. More importantly, Froala delivers more value than you would expect. It delivers an efficient and feature-rich workspace where you can edit all types of content for your blog, mobile platform, SaaS needs or business cloud.

What are the main features of the Froala Editor?

Aside from having almost no learning curve, Froala tools handle tiny details with greater precision than other editors. Essentially, what Froala offers is a way to easily set up and use the latest built-in rich text extensions available today.  Another unique feature of Froala is real-time collaborative editing you won’t find on CKEditor. Our API also has a greater variety of fonts for styling your ideas without making the toolbar intrusive.

Froala is a feature rich JavaScript text editor

In addition, Froala creates a robust environment for co-authoring or writing whenever you need to peer-review and track past revisions of your digital content. Another huge benefit of Froala is having your documents in sync among all team members — you know exactly what went on with each custom block. 

Froala Editor vs. CKEditor Features

At first glance, Froala and CKEditor are quite similar. CKEditor, like Froala,  is a WYSIWYG text editor for writing JS content on web pages and in digital apps. 

This CKSource platform has an advanced Drupal module for cross-integration with other editors. It also provides many widgets, including image captions, code snippets, and math formulas, that allow users to paste content straight from Word or filter content searches. 

Although the CKEditor has over 100 extensions managed by the team, this comes with a downside. That downside is a much heavier dependence on plugins and a DLL build to operate. The result is that upgrading to  CKEditor Premium is much more expensive than Froala. This is especially inconvenient if you only require more basic features like running a simple read/write from a file or computing data table formulas.

According to customer reviews, Froala Editor is currently rated at 4.4/5 stars. 

Here is a side-by-side comparison of the Froala editor’s performance against CKEditor on customization, content, and functionality. 

Customization, Content and functionality. Froala vs Ckeditor

Are you ready to install the Froala WYSIWYG HTML Editor?

Don’t take our word for it, test the Froala Editor yourself by downloading the free trial. Or better yet, let us walk you through  our rich text editing and premium options. 

Thinking of making the change to Froala Editor? Here’s how to migrate onto our next-gen WYSIWYG Editor from CKEditor.

FAQs

What is a rich text editor?

A rich text editor, or WYSIWYG HTML editor, is a component that lets users make content in a special way. With these editors, users can format and style content using buttons. They can even allow the uploading of media files such as images and edit how they’ll be displayed. The best part is that users won’t even have to worry about coding. These features make rich text editors perfect for apps and websites with a lot of user-generated content. Some use cases for rich text editors are blogs, Content Management Systems (CMS), email platforms, and more. 

How can I use a rich text editor?

Using rich text editors is pretty straightforward, and the best editors are intuitive enough for users to easily learn. Each button corresponds to either an editing feature or a toggle button for a collapsible part of the toolbar. Each button also has a tooltip to guide users on what the button does. To start using a rich text editor, just normally type your desired content, use the buttons to format and style content, insert images/links, and so on. The best way to learn how to use a rich text editor is by reading its documentation page

How can I create a rich text editor in HTML?

Using a rich text editor is easy. However, creating one from scratch using HTML and other front-end and back-end frameworks or languages is a lot tougher. You would need to consider every feature your users need and implement it using HTML and JavaScript. Alternatively, you can integrate a ready-made rich text editor into your application in a few minutes or even seconds. This saves plenty of time and gives your users the complete editing features that can accommodate any use case.

Multilingual Capabilities Every WYSIWYG Editor Should Have

Froala editor offers multilingual capabilities including rtl support.

Everyone loves to use WYSIWYG editors. They are easy to use as well as convenient.  In addition to that, you don’t need to be able to code to get beautiful results. However, not all editors are created equally, especially when it comes to their multilingual capabilities. As a result of this, if you regularly use more than one language, you will face issues integrating them with your web application. There is, however, a simple solution to your problems — the Froala Editor. Froala comes with multilingual capabilities so, you can change the language of your content in no time.

In this post, you will find all the details about Froala’s WYSIWYG Editor and why you should use Froala.

What is Froala?

Froala is a feature-rich WYSIWYG HTML editor. It is built using the latest technologies, including jQuery and HTML5. As a result,  Froala provides your users with an outstanding editing experience. Better yet, you can quickly and easily integrate it into any kind of project. All you need is basic HTML and JavaScript knowledge. Froala is also a platform-independent Javascript editor. This means you can use it flawlessly on many different types of devices including smartphones, tablets, and PCS. As if that wasn’t enough, Froala is one of the few editors that also supports Retina Ready flat design.

Froala: Is it multilingual?

Froala’s default language is English. However, it is a multilingual editor. Right now, it supports over 38 different languages:

  1. Arabic
  2. Bosnian
  3. Chinese (China)
  4. Chinese (Taiwan)
  5. Croatian
  6. Czech
  7. Danish
  8. Dutch
  9. German
  10. Greek
  11. English (Canada)
  12. English (United Kingdom)
  13. Estonian
  14. Finnish
  15. French
  16. Hebrew
  17. Hungarian
  18. Indonesian
  19. Italian
  20. Japanese
  21. Korean
  22. Kurdish
  23. Montenegrin
  24. Norwegian
  25. Persian
  26. Polish
  27. Portuguese
  28. Brazil
  29. Portuguese
  30. Portugal
  31. Romanian
  32. Russian
  33. Serbian
  34. Slovak
  35. Spanish
  36. Swedish
  37. Thai
  38. Turkish
  39. Ukrainian
  40. Vietnamese

How to Change the Language in Froala

The process of changing languages in Froala is extremely straightforward. For example, let’s say that you are working in English and you want to change the language to Spanish. All you need to do to make the change is include the JavaScript file for your specific language. once you have done that,  create a function to set the language to Spanish. Take a look at this example:

HTML

<div id="edit"></div>

JavaScript

<!-- Include the language file. -->

<script src='../langs/es.js'></script>

<script>
$(function() {
$('div#froala-editor').froalaEditor({
// Set the language code.
language: 'es'
})
});
</script>

Does Froala offer RTL support?

RTL support is very important for any WYSIWYG HTML editor, especially if you have an international audience. With RTL you can deliver a proper experience to all of your users, whether their language utilizes a script that reads right-to-left or left-to-right. For example, unlike English, the Arabic language is read from right to left.

This means that because of the Froala editor’s full RTL support, people of all countries and languages will have a great experience using the WYSIWYG editor.

You can also configure the RTL support very easily. You just need to set the direction field to ‘rtl.’ Let’s take a look at this example:

HTML

<div id="froala-editor">

<p>The rich text editor has full RTL support. Set the <a href="../docs/options#direction" title="direction option" target="_blank">direction</a> option to rtl and writing in Arabic or Farsi will feel naturally.</p>

</div>

JavaScript

<script>
new FroalaEditor('div#froala-editor', {
direction: 'rtl'
})
</script>

Once you have specified the direction as ‘rtl,’ the text will read from right to left.

With RTL support specified your text will read from right to left.

You can play with the source codes at JSFiddle.

Why should you use Froala?

There are plenty of reasons to pick Froala as your editor of choice. Firstly, Froala is an amazing editor that everyone loves to use. Second, it supports inline editing, so what you see is actually what you get. Thirdly, Froala supports cross-browser and cross-platform functionalities. Finally, Froala is easy to upgrade and integrate with projects your projects.

Froala is a lightweight WYSIWYG HTML Editor written in Javascript. It equips your applications with rich text editing capabilities. Try it now for free.

5 Must Have Features In Any Javascript WYSIWYG HTML Editor

5 Must Have Features In Any Javascript WYSIWYG HTML Editor

The next generation Froala WYSIWYG HTML Editor is a beautiful Javascript web editor that’s easy for your developers to integrate. Moreover, your users will simply fall in love with its clean design and wide-ranging features.

There are quite a few WYSIWYG HTML editors out there, but the features Froala offers help it stand above the rest. Some of those features include enhanced image support (custom buttons, image styles, and init-on image), responsive video and full-screen support, a character counter, and finally, export as PDF.

These features really take the Froala Javascript Editor to the next level because its rich media support for responsive video, full-screen support, and enhanced image features also make it a great choice for consumer applications. The character counter makes it a great tool to use for business applications where users may be writing ad copy or articles where there is a target character count. Finally, the export as PDF function really saves time for users in an enterprise environment.

These are only 5 out of over 100 features, so explore the rest as well. In this article, we’ll take a deeper dive into each of these 5 features and learn more about them.

What enhanced image support can I get in an HTML editor?

Custom Image Button

When using the image.min.js plugin you can add new buttons to the image editing popup.

Here is an example of a custom button for the image editing popup. More details about defining a custom image button can be found in the Custom Button concept.

After defining custom buttons you need to add them to the image popup buttons list, using the imageEditButtons option.

<script>
  FroalaEditor.DefineIcon('imageInfo', {NAME: 'info', SVG_KEY: 'help'});
  FroalaEditor.RegisterCommand('imageInfo', {
    title: 'Info',
    focus: false,
    undo: false,
    refreshAfterCallback: false,
    callback: function () {
      var $img = this.image.get();
      alert($img.attr('src'));
    }
  });

  new FroalaEditor('div#froala-editor', {
    // Set image buttons, including the name
    // of the buttons defined in customImageButtons.
    imageEditButtons: ['imageDisplay', 'imageAlign', 'imageInfo', 'imageRemove']
  })
</script>

Learn more.

Image Styles

While using the image.min.js plugin inside the WYSIWYG HTML editor, you can also add a custom style to a selected image.

Be careful to define your classes in CSS, otherwise, your changes won’t be visible.

You can also define your own image styles using the imageStyles option. This option is an Object where the key represents the class name and its value is the style name in the dropdown list. It is important to have unique keys otherwise they will not work properly.

By default, you can select multiple image styles at a time. If you want to toggle them and allow only one style to be selected at a time use the imageMultipleStyles option.

<style>
  .class1 {
    border-radius: 10%;
    border: 2px solid #efefef;
  }

  .class2 {
    opacity: 0.5;
  }
</style>

<script>
  new FroalaEditor('div#froala-editor', {
    // Define new image styles.
    imageStyles: {
      class1: 'Class 1',
      class2: 'Class 2'
    },
    imageEditButtons: ['imageReplace', 'imageAlign', 'imageRemove', '|', 'imageLink', 'linkOpen', 'linkEdit', 'linkRemove', '-', 'imageDisplay', 'imageStyle', 'imageAlt', 'imageSize']
  })
</script>

Learn more.

Init On Image

From the image.min.js plugin, you can also initialize the WYSIWYG HTML editor only on an image.

<script>
  new FroalaEditor('img#edit');
</script>

Learn more.

How can I add WYSIWYG Responsive Videos in an HTML editor?

Embed videos from your favorite service and have them adapt based on the screen size.
The responsive video features let you insert videos from Youtube or Vimeo that adapt based on your device screen.

<script>
  new FroalaEditor('div#froala-editor', {
    videoResponsive: true,
    toolbarButtons: ['insertVideo']
  })
</script>

Learn more.

Can I make the HTML editor full screen?

Using the fullscreen.min.js plugin it is possible to use the WYSIWYG HTML editor in fullscreen mode.

Use the Fullscreen button to start editing in fullscreen mode.

Make sure that the fullscreen button is included in the toolbarButtons list. By default the fullscreen button is already in the list, but if you changed the buttons list just make sure you didn’t omit the fullscreen button. As you can see in the code below there is no other option to add because it is on by default.

<script>
  new FroalaEditor('div#froala-editor')
</script>

Learn more.

Can I get a character counter in an HTML editor?

The char_counter.min.js plugin lets you limit the number of characters introduced into the WYSIWYG HTML editor.

The maximum number of characters can also be changed using the charCounterMax option.

<script>
  new FroalaEditor('div#froala-editor', {
    // Set maximum number of characters.
    charCounterMax: 140
  })
</script>

Learn more.

Can I export it as a PDF from an HTML editor?

The getPDF button lets you export your editor content as a PDF. You will find the button in the print plugin of the Froala WYSIWYG Editor, so make sure that you include it.

<!-- Include PDF export JS lib. -->
<script type="text/javascript" src="https://raw.githack.com/eKoopmans/html2pdf/master/dist/html2pdf.bundle.js"></script>

<script>
  new FroalaEditor('div#froala-editor', {
    toolbarButtons: ['getPDF']
  })
</script>

Learn more.

As you can see, all of these features are super simple to implement with only a few lines of code.  You can literally do anything with the Froala Editor. The well-written, structured, and documented code is very easy to understand and extend. Our WYSIWYG HTML editor transformed a basic Javascript tool into an essential technology for many industries.

Ready to get started? Try Froala Editor today.

5 Easy Image Integrations With A WYSIWYG HTML Editor

5 Easy Image Integrations With A WYSIWYG HTML Editor

In this article, we’ll look at how we can easily do image integrations with a Froala WYSIWYG HTML Editor, which can help developers to integrate applications using the lightweight next-generation editor that is developed in Javascript and it enables rich text editing experiences in your applications. Successful companies like Samsung, Apple, IBM, Intel, and Salesforce are changing the world, and they use Froala

It also has a simple, smart, and intuitive interface that accommodates 100+ features without overwhelming users with a complex and complicated GUI. The Froala Smart Toolbar groups all the actions by scope into four categories.  This makes it intuitive and allows users to find the features they need quickly and easily. 

Due to its ultra-high performance, well-structured and secure interface, and powerful API and server integrations, Froala is the choice for many businesses flourishing in the market. 

Froala Image Integrations, illustrating seamless integration with various platforms.

How can I add a custom image button in the Froala HTML editor?

The Froala editor allows you to add images as buttons and make them interactive and responsive. This kind of custom image button integration can be used in a variety of ways in your application including hyperlinking and in-app transitions. 

You need to define the custom image button in JavaScript using the RegisterCommand method of FroalaEditor. After that, you need to also add them to the image popup buttons list, using the imageEditButtons option. 

<script>
  FroalaEditor.DefineIcon('imageInfo', {NAME: 'info', SVG_KEY: 'help'});
  FroalaEditor.RegisterCommand('imageInfo', {
    title: 'Info',
    focus: false,
    undo: false,
    refreshAfterCallback: false,
    callback: function () {
      var $img = this.image.get();
      alert($img.attr('src'));
    }
  });

  new FroalaEditor('div#froala-editor', {
    // Set image buttons, including the name
    // of the buttons defined in customImageButtons.
    imageEditButtons: ['imageDisplay', 'imageAlign', 'imageInfo', 'imageRemove']
  })
</script>

See more about Custom Image Buttons here

How can I define my own image styles?

By using the image.min.js plugin, you can easily add custom styles to images inside the WYSIWYG Froala HTML editor. You need to define your own image styles using the imageStyles option. By default, you can add multiple image styles at a time. If you wish to change this behavior and allow one style at a time, you can easily do that with the imageMultipleStyles option.

To enable customized image styling, define and provide your CSS classes to the imageStyles or imageMultipleStyles options.

<script>
  new FroalaEditor('div#froala-editor', {
    // Define new image styles.
    imageStyles: {
      class1: 'Class 1',
      class2: 'Class 2'
    },
    imageEditButtons: ['imageReplace', 'imageAlign', 'imageRemove', '|', 'imageLink', 'linkOpen', 'linkEdit', 'linkRemove', '-', 'imageDisplay', 'imageStyle', 'imageAlt', 'imageSize']
  })
</script>

See more about Image Styles here

How can I integrate an init on the image with Froala HTML editor?

Developers commonly use “On-Page Init” images while designing websites. Using Froala WYSIWYG HTML editor, you can easily achieve this with a few lines of JavaScript code that just initiates the FroalaEditor with the image of your choice. Take a look! 

<script>
  new FroalaEditor('img#edit');
</script>

See more about Init On Image here

How can I add images using the file manager?

With the amazing file manager interface in the filesManager.min.js plugin, you can add multiple kinds of files including all image file formats. You simply need to enable the file management option by adding the insertFiles parameter to the toolbarButtons option of FroalaEditor.

<script>
  new FroalaEditor('div#froala-editor', {
    // Define new image styles.
    toolbarButtons: ['insertFiles']
  })
</script>

See more about File Manager here

How can I use advanced image options using TUI advanced image editor?

Froala also supports third-party image advanced image options. Using the TUI Image Editor, you can access advanced image editing options that can boost the design and appearance of your website for its users. Include the TUI JavaScript files and get started with advanced image editing.

<!-- Include TUI JS. -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.6.7/fabric.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/[email protected]/dist/tui-code-snippet.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/[email protected]/dist/tui-image-editor.min.js"></script>

<!-- Include TUI plugin. -->
<script type="text/javascript" src="../js/third_party/image_tui.min.js"></script>

<script>
  new FroalaEditor('div#froala-editor');
</script>

See more about TUI Advanced Image Editor here

As you can see, image integrations with Froala editor are so simple and easy. Froala is a beautiful JavaScript web editor that is easy to integrate for developers, and users will simply fall in love with its clean design.

Ready to do image integrations with a WYSIWYG HTML editor? Get started now!

Froala v4.0 —The Next Generation of WYSIWYG Editing

Thumbnail for a blog post on Next-Generation WYSIWYG Editing, focusing on advanced editing features.

The latest and greatest milestone update for Our Best Wysiwyg HTML Editor, Froala Editor v4.0, was released today. The HTML Editor has undergone numerous changes and improvements, which you will learn about as you read this post.

What’s new in Version 4.0—Empowering Users 

The feedback loop that you maintain with our team allows us to turn around quality releases with an emphasis on your needs. To that end, we’ve been laser-focused on making the top-requested features of our users a reality.

With Track Changes, Markdown Support, and many other enhancements added to our Editor, there’s a lot to unpack with this release—read on to see the amazing things you can do with Froala Editor 4.0!

 

Animated GIF displaying various features of Froala Editor, showcasing its dynamic capabilities

Track Changes

This feature enables Froala Editor to keep track of all the changes users make to their text, images, tables, styles, formatting, and more, followed by accepting and rejecting the changes accordingly through easy access to ‘Accept or Reject’ a ‘Single or All’ changes via accessible buttons in the toolbar. Additionally track addition and deletion of text, images, tables. Additionally, styling and formatting changes to text, images, tables.

Track Changes feature includes the following functionalities:

  • Enable / Disable track changes – Users can enable and disable the track changes feature on Froala editor.
  • Show / Hide tracked changes – Users can show or hide the changes made on the Froala editor.
  • Accept / Reject Single change – Users can track and ACCEPT or REJECT the single / last change that is made on the editor. 
  • Accept / Reject  ALL changes –  Users can track and ACCEPT or REJECT ALL changes that are made on the editor.

Try it yourself:

Track Changes makes WYSIWYG HTML editing awesome.

Track changes is a Froala Editor Plugin where we can track the new text, deleted text as well as various styling and format changes.

HTML

<div id="froala-editor">

  <h3>Track Changes makes WYSIWYG HTML editing awesome.</h3>

  <p>Track changes is a Froala Editor Plugin where we can track the new text, deleted text as well as various styling and format changes.</p>

</div>

JAVASCRIPT

<script>

  new FroalaEditor('div#froala-editor', {

    toolbarButtons: ['bold', 'italic', 'underline', 'fontFamily', 'color', 'paragraphStyle', 'trackChanges']

  })

</script>

The Track Changes feature in Froala Editor, highlighting collaborative editing tools.

Intuitive UI for Change Tracking: As with all our features, the UI for tracking changes will be simple and intuitive — aligned with the text editing usage everyone is most familiar with. With Track Changes enabled, any text or image additions are shown with a yellow highlight, and changes that are intended to be deleted are highlighted in red with a strikethrough.

 

Markdown Support

Markdown support provides the required formatting of words & phrases within the editor through code shortcuts. 

With this new feature Froala Editor users can easily add Markdown syntax to their text to indicate which words and phrases need to be formatted. The words and phrases can be formatted through code shortcuts through easy-to-use Markdown syntax.

When in markdown mode, the Froala Editor provides an easy split-screen view so users can see the changes in real-time.

Displaying Markdown editing capabilities in Froala, showcasing text formatting and structure.

Users can markdown Heading, Bold Text ,Italic, Blockquote, Ordered list , Unordered list, Code, Fenced code block, Horizontal rule, Link , Image, Table, Footnote , Strikethrough and Task list. Please find the list of Markdown Syntax provided by Froala under 4.0 release. 

 

 

Element Markdown Syntax (Code)
Heading # H1

## H2

### H3

Bold **bold text**
Italic *italicized text*
Blockquote > blockquote
Ordered List 1. First item

2. Second item

3. Third item

Unordered List – First item

– Second item

– Third item

Code `code`
Horizontal Rule
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Table | Syntax | Description |

| ———– | ———– |

| Header | Title |

| Paragraph | Text |

Fenced Code Block “` 

{

  “firstName”: “John”,

  “lastName”: “Smith”,

  “age”: 25

}

“`

Footnote Here’s a sentence with a footnote. [^1]

[^1]: This is the footnote.

Heading ID ### My Great Heading {#custom-id}
Definition List term

: definition

Strikethrough ~~The world is flat.~~
Task List – [x] Write the press release

– [ ] Update the website

– [ ] Contact the media

For example, to denote a heading, users can add a hashtag before the word (e.g. #Heading1, #Heading2). Or to italicize text, *italic text*. Users can also mark down Bold Text, Blockquotes, Ordered or Unordered lists, Code blocks, Images, Task lists, and many more!

Highlighting Markdown support in Froala Editor, focusing on ease of content creation

Try it yourself:

Markdown support makes WYSIWYG HTML editing awesome.

Markdown plugin in Froala editor provides flexible rich text and markdown content creation options for authors, and also provides robust, reliable markdown output for developer projects.

HTML

<div id="froala-editor">

  <h3>Markdown support makes WYSIWYG HTML editing awesome.</h3>

  <p>Markdown plugin in Froala editor provides flexible rich text and markdown content creation options for authors, and also provides robust, reliable markdown output for developer projects.</p>

</div>

JAVASCRIPT

<script>

  new FroalaEditor('div#froala-editor', {

    toolbarButtons: ['bold', 'italic', 'underline', 'fontFamily', 'color', 'paragraphStyle', 'markdown']

  })

</script>