Super Simple WYSIWYG Editor on Bootstrap(3.0 and 2.x).
Summernote is a javascript program that helps you to create WYSIWYG Editor on web.
Home Page: http://hackerwins.github.io/summernote/
Summernote has something specials no like others.
- Simple UI
- Interative WYSIWYG editing
- Handy integration with server
- Gmail WYSIWYG Editor (http://www.gmail.com)
- Redactor (http://imperavi.com/redactor/)
Summernote uses opensouce libraries(jQuery, bootstrap, fontAwesome)
Include Following code into <head>
tag of your HTML:
<!-- include libraries(jQuery, bootstrap, fontawesome) -->
<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" />
<!-- include summernote css/js-->
<link href="summernote.css" rel="stylesheet">
<script src="summernote.min.js"></script>
If your summernote download is placed in a different folder, don't forget to change file's paths.
And place div
tag to somewhere in the body
tag. This element will be placed by the visual representation of the summernote.
<div id="summernote">Hello Summernote</div>
Finally, run script after document ready.
$(document).ready(function() {
$('#summernote').summernote();
});
Get HTML code
if you need.
var sHTML = $('#summernote').code();
Destroy
summernote.
$('#summernote').destroy();
- jQuery: http://jquery.com/
- Bootstrap: http://getbootstrap.com (both 2.x and 3.x)
- fontAwesome: https://github.com/FortAwesome/Font-Awesome (both 3.x and 4.x)
- Modern Browser (Safari, Chrome, Firefox, Opera, Internet Explorer 9+)
- OS (Windows, Mac, Linux)
- Responsive Toolbar
- Table: Handles(Sizing, Selection) and Popover
- support IE8
- Clipboard
- Media Object Selection
- Plugin system
- Dom Editing: insert(Un)OrderedList, indent/outdent
- History in a line.
- Remove
autoFormatRange
option - Fixed
onChange
issues
- Dom editing: insertPara, insertNode
- Extract codemirror.autoFormatOnStart option
- Bug patch (createLink)
- Air Mode
- And bug patch (scroll, createLink, ...)
- Support 15 Languages(https://github.com/HackerWins/summernote/tree/master/lang)
- Add local-server for develop summernote.
- Font style: Font-Family
- And Bug patch.
- Support both Font-Awesome 3.x and 4.x
- CodeMirror as Codeview
- Insert Video (by cdownie)
- Support 5 Languages(by hendrismit, tschiela, inomies, cverond)
- Restructuring: jQuery build pattern
- Support both Bootstrap 3.0 and 2.x
- Fullscreen
- Codeview
- Image Upload callback
- Bugs(image upload, fontsize, tab, recent color, ...)
- Help dialog(keyboard shortcut)
- Init options(event callbacks, custom toolbar)
- Resize bar
- Support IE8 Beta(some range bugs, can't insert Image)
- Undo/Redo
- Image sizing handle and popover
- Support standalone css
- Support Multiple Editor
- Remove jQuery.curstyles dependency
- Font style: size, color, bold, italic, underline, remove font style
- Para style: bullet, align, outdent, indent, line height
- Image: drag & drop, dialog
- Link: popover and dialog
- Table: create table with dimension picker
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)
---------------------------------------------------------------------
# grunt-cli is need by grunt; you might have this installed already
npm install -g grunt-cli
npm install
# build full version of summernote: dist/summernote.js
grunt build
# generate minified copy: dist/summernote.min.js, dist/summernote.css
grunt dist
At this point, you should now have a build/
directory populated with everything you need to use summernote.
run tests with PhantomJS
grunt test
run local server with connect and watch.
# this will open a browser on http://localhost:3000.
grunt server
# If you change source code, automatically reload your page.
- JSHint: http://www.jshint.com/about/
- JSHint rule: https://github.com/HackerWins/summernote/blob/master/.jshintrc
- Email: [email protected]
- Twitter: http://twitter.com/hackerwins
summernote may be freely distributed under the MIT license.