A tiny HTML rich text editor written in vanilla JavaScript
Create a less than 5 Kb (compressed) library that enables a HTML element to be used as a rich text editor in plain old vanilla JavaScript.
If you use and like this library, feel free to support my Open Source projects.
npm install tiny-editor
or load the bundle file directly at the end of your HTML document.
<script src="https://unpkg.com/tiny-editor/dist/bundle.js"></script>
- Reference the editor library in your HTML document
- Add a link tag in your HTML document
<head>
to load the Font Awesome icon set
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
- Add a
data-tiny-editor
attribute to the HTML element you want to transform into an editor
Use the exported function window.__tinyEditor.transformToEditor()
which take as the first argument the DOM element (usually a <div>
) that you want to transform to an editor. Refer to the /public/index.html
for an example.
Listen for the input
event on the editor HTML element.
document
.querySelectorAll('[data-tiny-editor]')
.forEach(editor =>
editor.addEventListener('input', e => console.log(e.target.innerHTML)
)
);
There are various options that can be used to customize how the Tiny Editor will be rendered. By default, every options are enabled. You can disable an option using data attributes.
For example, you can remove the bold format button using the following attribute:
<div data-tiny-editor data-bold="no"></div>
data-formatblock="no"
: remove the styles drop down listdata-bold="no"
: remove the bold buttondata-italic="no"
: : remove the italic buttondata-underline="no"
: remove the underline buttondata-fontname="no"
: remove the font drop down listdata-forecolor="no"
: : remove the text color buttondata-justifyleft="no"
: remove the left align buttondata-justifycenter="no"
: remove the center align buttondata-justifyright="no"
: remove the right align buttondata-insertorderedlist="no"
: remove the numbered list buttondata-insertunorderedlist="no"
: remove the bulleted list buttondata-outdent="no"
: remove the decrease indent buttondata-indent="no"
: remove the increase indent buttondata-remove-format="no"
: remove the clear formatting button
Modern browser (Chrome, Firefox, Edge,...) are supported. Tiny Editor doesn't work on Internet Explorer.