What is summernote?
Summernote is a JavaScript library that provides a WYSIWYG (What You See Is What You Get) editor. It allows users to create and edit content with a rich text editor that includes various formatting options, image and video embedding, and more.
What are summernote's main functionalities?
Basic Text Formatting
This code initializes Summernote on a textarea element, enabling basic text formatting options like bold, italic, underline, and more.
<script>
$(document).ready(function() {
$('#summernote').summernote();
});
</script>
<textarea id="summernote"></textarea>
Image Upload
This code demonstrates how to handle image uploads in Summernote by providing a custom callback function for the onImageUpload event.
<script>
$(document).ready(function() {
$('#summernote').summernote({
callbacks: {
onImageUpload: function(files) {
// Custom image upload logic
}
}
});
});
</script>
<textarea id="summernote"></textarea>
Video Embedding
Summernote allows users to embed videos directly into the editor. This is done through the toolbar options available in the initialized editor.
<script>
$(document).ready(function() {
$('#summernote').summernote();
});
</script>
<textarea id="summernote"></textarea>
Custom Toolbar
This code shows how to customize the toolbar in Summernote by specifying the buttons and their groups.
<script>
$(document).ready(function() {
$('#summernote').summernote({
toolbar: [
['style', ['bold', 'italic', 'underline', 'clear']],
['font', ['strikethrough', 'superscript', 'subscript']],
['fontsize', ['fontsize']],
['color', ['color']],
['para', ['ul', 'ol', 'paragraph']],
['height', ['height']]
]
});
});
</script>
<textarea id="summernote"></textarea>
Other packages similar to summernote
tinymce
TinyMCE is another popular WYSIWYG editor that offers a wide range of features similar to Summernote. It provides extensive customization options, plugins, and a robust API for developers.
ckeditor
CKEditor is a highly versatile WYSIWYG editor that supports rich text editing, image and media embedding, and various plugins. It is known for its flexibility and extensive documentation.
quill
Quill is a modern WYSIWYG editor that is lightweight and highly customizable. It offers a modular architecture, making it easy to extend and customize according to specific needs.
Summernote
Summernote is a JavaScript library that helps you create WYSIWYG editors with a simple and easy-to-use interface. Summernote is licensed under MIT and maintained by the community.
Homepage: https://summernote.org
Why Summernote?
Summernote has a few special features:
- Simple and User-friendly: Providing a simple and intuitive interface that allows users
- Easy to install: Just include the JS/CSS files on your HTML and create a div tag to get started.
- Compatible with Bootstrap: Bootstrap 3, 4, and 5.
- Rich ecosystem: A wide array of plugins and connectors are available, enhancing functionality and integration options.
- Easy image handling: Images are automatically embedded in the content using base64 encoding, eliminating the need for separate image management
How to Use
Summernote is built on jQuery.
How to install
1. Include JS/CSS
Include the following code in the <head>
tag of your HTML:
<script type="text/javascript" src="//code.jquery.com/jquery-3.6.0.min.js"></script>
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" />
<script type="text/javascript" src="cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script>
<link href="summernote-bs5.css" rel="stylesheet">
<script src="summernote-bs5.js"></script>
2. Place a div
tag
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. Initialize Summernote
Finally, initialize Summernote with the following JavaScript:
$(document).ready(function() {
$('#summernote').summernote();
});
For more examples, please visit to homepage.
API
Summernote provides a set of API. For example, you can use the following code to get the HTML source code underlying the text in the editor:
var html = $('#summernote').summernote('code');
For more detail about API, please refer to document.
Warning - code injection
The code view allows the user to enter script contents. Make sure to filter/sanitize the HTML on the server. Otherwise, an attacker can inject arbitrary JavaScript code into clients.
For contributing
See the CONTRIBUTING.md for details on how to contribute to Summernote.
Contributors ✨
Thanks go to these incredible people:
Is your company using Summernote? Ask your boss to support us. It will help us dedicate more time to maintain this project and to make it even better for all our users. Also, your company logo will show up on here and on our website: -) [Become a sponsor]
Backers
Please be our Backers.
Contacts