Summernote
Super simple WYSIWYG Editor using Bootstrap (3.0 and 2.x).
Summernote
Summernote is a JavaScript library that helps you create WYSIWYG editors online.
Home Page: http://hackerwins.github.io/summernote/
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
Installation and dependencies
Summernote uses opensouce libraries: jQuery, Bootstrap, Font Awesome.
For Meteor, just run meteor add summernote:summernote
. More info in the Meteor README.
For other/no frameworks:
1. include JS/CSS
Include the following code in the <head>
tag of your HTML:
<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.min.js"></script>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" />
<script type="text/javascript" src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css" />
<link href="summernote.css" rel="stylesheet">
<script src="summernote.min.js"></script>
2. target elements
Then place a div
tag somewhere in the body
tag. This element will be replaced with the summernote editor.
<div id="summernote">Hello Summernote</div>
3. summernote
Finally, run this script after the DOM is ready:
$(document).ready(function() {
$('#summernote').summernote();
});
API
code
- get the HTML source code underlying the text in the editor:
var sHTML = $('#summernote').code();
Destroy
summernote:
$('#summernote').destroy();
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 - Editor.js (Abstract editor)
ㄴStyle.js (Style Getter and Setter)
ㄴHistory.js (Store on jQuery.data)
ㄴToolbar.js (Toolbar module)
ㄴPopover.js (Popover module)
ㄴHandle.js (Handle module)
ㄴDialog.js (Dialog module)
-----------------------------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)
---------------------------------------------------------------------
build summernote
npm install -g grunt-cli
npm install
grunt build
grunt dist
At this point, you should now have a build/
directory populated with everything you need to use summernote.
test summernote
run tests with PhantomJS
grunt test
start local server for developing summernote.
run local server with connect and watch.
grunt server
Coding convention
Contacts
License
summernote may be freely distributed under the MIT license.