Simple WYSISWYG Rich Text Editor with jQuery and Bootstrap
File Size: | 36 KB |
---|---|
Views Total: | 17593 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

A simple jQuery plugin used to attach a customizable WYSISWYG rich text editor toolbar to your editable area, styled with Bootstrap and Font Awesome.
Features:
- Custom hotkey bindings.
- Drag and drop images.
- file upload error callback.
How to use it:
1. Load the jQuery library and other required resources in the document.
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css"> <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css"> <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> <script src="jquery.hotkeys.js"></script> <script src="http://netdna.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
2. Load the jQuery Bootstrap Wysiwyg plugin after jQuery library.
<script src="src/bootstrap-wysiwyg.js"></script>
3. Create a basic Html editor with custom editor buttons as follows.
<div class="btn-toolbar" data-role="editor-toolbar" data-target="#editor"> <div class="btn-group"> <a class="btn btn-default dropdown-toggle" data-toggle="dropdown" title="Font Size"><i class="fa fa-text-height"></i> <b class="caret"></b> </a> <ul class="dropdown-menu"> <li><a data-edit="fontSize 5"><font size="5">Huge</font> </a> </li> <li><a data-edit="fontSize 3"><font size="3">Normal</font> </a> </li> <li><a data-edit="fontSize 1"><font size="1">Small</font> </a> </li> </ul> </div> <div class="btn-group"> <a class="btn btn-default" data-edit="bold" title="Bold (Ctrl/Cmd+B)"><i class="fa fa-bold"></i> </a> <a class="btn btn-default" data-edit="italic" title="Italic (Ctrl/Cmd+I)"><i class="fa fa-italic"></i> </a> <a class="btn btn-default" data-edit="strikethrough" title="Strikethrough"><i class="fa fa-strikethrough"></i> </a> <a class="btn btn-default" data-edit="underline" title="Underline (Ctrl/Cmd+U)"><i class="fa fa-underline"></i> </a> </div> <div class="btn-group"> <a class="btn btn-default" data-edit="insertunorderedlist" title="Bullet list"><i class="fa fa-list-ul"></i> </a> <a class="btn btn-default" data-edit="insertorderedlist" title="Number list"><i class="fa fa-list-ol"></i> </a> <a class="btn btn-default" data-edit="outdent" title="Reduce indent (Shift+Tab)"><i class="fa fa-outdent"></i> </a> <a class="btn btn-default" data-edit="indent" title="Indent (Tab)"><i class="fa fa-indent"></i> </a> </div> <div class="btn-group"> <a class="btn btn-default" data-edit="justifyleft" title="Align Left (Ctrl/Cmd+L)"><i class="fa fa-align-left"></i> </a> <a class="btn btn-default" data-edit="justifycenter" title="Center (Ctrl/Cmd+E)"><i class="fa fa-align-center"></i> </a> <a class="btn btn-default" data-edit="justifyright" title="Align Right (Ctrl/Cmd+R)"><i class="fa fa-align-right"></i> </a> <a class="btn btn-default" data-edit="justifyfull" title="Justify (Ctrl/Cmd+J)"><i class="fa fa-align-justify"></i> </a> </div> <div class="btn-group"> <a class="btn btn-default dropdown-toggle" data-toggle="dropdown" title="Hyperlink"><i class="fa fa-link"></i> </a> <div class="dropdown-menu input-append"> <input class="span2" placeholder="URL" type="text" data-edit="createLink" /> <button class="btn" type="button">Add</button> </div> </div> <div class="btn-group"> <a class="btn btn-default" data-edit="unlink" title="Remove Hyperlink"><i class="fa fa-cut"></i> </a> <a class="btn btn-default" title="Insert picture (or just drag & drop)" id="pictureBtn"> <i class="fa fa-picture-o"></i> <input type="file" data-role="magic-overlay" data-target="#pictureBtn" data-edit="insertImage" /> </a> </div> <div class="btn-group"> <a class="btn btn-default" data-edit="undo" title="Undo (Ctrl/Cmd+Z)"><i class="fa fa-undo"></i> </a> <a class="btn btn-default" data-edit="redo" title="Redo (Ctrl/Cmd+Y)"><i class="fa fa-repeat"></i> </a> <a class="btn btn-default" data-edit="html" title="Clear Formatting"><i class='glyphicon glyphicon-pencil'></i> </a> </div> </div>
4. Call the plugin to initialize the Html editor with default settings.
$('#editor').wysiwyg();
5. All the default settings.
hotKeys: { 'Ctrl+b meta+b': 'bold', 'Ctrl+i meta+i': 'italic', 'Ctrl+u meta+u': 'underline', 'Ctrl+z': 'undo', 'Ctrl+y meta+y meta+shift+z': 'redo', 'Ctrl+l meta+l': 'justifyleft', 'Ctrl+r meta+r': 'justifyright', 'Ctrl+e meta+e': 'justifycenter', 'Ctrl+j meta+j': 'justifyfull', 'Shift+tab': 'outdent', 'tab': 'indent' }, toolbarSelector: '[data-role=editor-toolbar]', commandRole: 'edit', activeToolbarClass: 'btn-info', selectionMarker: 'edit-focus-marker', selectionColor: 'darkgrey', dragAndDropImages: true, keypressTimeout: 200, fileUploadError: function (reason, detail) { console.log("File upload error", reason, detail); }
Change log:
v2.0.1 (2016-12-17)
- Update
v1.0.4 (2015-09-30)
- Bug fixes
- Fixed activeToolbarClass only applied to first button
- Fixed Toolbar is not being updated
This awesome jQuery plugin is developed by steveathon. For more Advanced Usages, please check the demo page or visit the official website.