# Summernote Super simple WYSIWYG Editor using Bootstrap (3.0 and 2.x). [![Build Status](https://secure.travis-ci.org/summernote/summernote.png)](http://travis-ci.org/summernote/summernote) [![npm version](https://badge.fury.io/js/summernote.svg)](http://badge.fury.io/js/summernote) [![Dependency Status](https://gemnasium.com/summernote/summernote.svg)](https://gemnasium.com/summernote/summernote) [![Sauce Test Status](https://saucelabs.com/browser-matrix/summernoteis.svg)](https://saucelabs.com/u/summernoteis) ### Summernote Summernote is a JavaScript library that helps you create WYSIWYG editors online. Home Page: http://summernote.org ### Why Summernote? Summernote has a few special features: * Paste images from clipboard * Saves images directly in the content of the field using base64 encoding, so you don't need to implement image handling at all * Simple UI * Interactive WYSIWYG editing * Handy integration with server #### Inspired by * Gmail's WYSIWYG editor (http://www.gmail.com) * Redactor (http://imperavi.com/redactor/) ### Installation and dependencies Summernote uses opensource libraries: [jQuery](http://jquery.com/), [Bootstrap](http://getbootstrap.com), [Font Awesome](https://github.com/FortAwesome/Font-Awesome). For [Meteor](http://github.com/meteor/meteor), just run `meteor add summernote:summernote`. More info in the [Meteor README](meteor/README.md). For other/no frameworks: #### 1. include JS/CSS Include the following code in the `` tag of your HTML: ```html ``` #### 2. target elements Then place a `div` tag somewhere in the `body` tag. This element will be replaced with the summernote editor. ```html
Hello Summernote
``` #### 3. summernote Finally, run this script after the DOM is ready: ```javascript $(document).ready(function() { $('#summernote').summernote(); }); ``` ### API `code` - get the HTML source code underlying the text in the editor: ```javascript var sHTML = $('#summernote').code(); ``` `Destroy` summernote: ```javascript $('#summernote').destroy(); ``` #### Warning - code injection The code view allows the user to enter script contents. Make sure to filter/[sanitize the HTML on the server](https://github.com/search?l=JavaScript&q=sanitize+html). Otherwise, an attacker can inject arbitrary JavaScript code into clients. ### Supported platforms Any modern browser: Safari, Chrome, Firefox, Opera, Internet Explorer 9+. ### Upcoming Features * Responsive toolbar * Table: Handles (sizing, selection) and popover * IE8 Support * Clipboard (you can paste images already) * Media object selection ### Developer information #### structure of summernote.js ``` summernote.js - Renderer.js (Generate markup) - Locale.js (Locale object) ㄴEventHandler.js - Toolbar.js (Toolbar module) ㄴPopover.js (Popover module) ㄴHandle.js (Handle module) ㄴDialog.js (Dialog module) ㄴEditor.js (Abstract editor module) - Style.js (Style Getter and Setter) ㄴHistory.js (Store on jQuery.data) -----------------------------Core Script----------------------------- agent.js (agent information) async.js (aysnc utility) key.js (keycode object) dom.js (dom functions) list.js (list functions) range.js (W3CRange extention) --------------------------------------------------------------------- ``` #### document structure ``` - body container:
, ,
,