Creating a Tiny HTML Rich Text Editor with Vanilla JavaScript

Jul 20, 2023 | Programming

In this blog post, you’ll discover how to create a lightweight, user-friendly HTML rich text editor using less than 5 Kb of compressed library space—all thanks to vanilla JavaScript. Let’s dive into the steps to install, use, and customize the Tiny Editor, and also explore some troubleshooting tips to keep your project running smoothly.

What is Tiny Editor?

Tiny Editor is a minimalistic library aimed to empower HTML elements, transforming them into rich text editors without the bloat of heavy dependencies. It serves as an excellent tool for developers looking to add editing capabilities to their websites or applications while maintaining speed and efficiency.

How to Install

  • Using npm: Run the following command in your terminal:
  • 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>

How to Use Tiny Editor

  1. Reference the Tiny Editor library in your HTML document.
  2. Add a data-tiny-editor attribute to the HTML element you wish to transform into an editor.

Dynamically Creating an Editor

You can harness the power of the exported function window.__tinyEditor.transformToEditor() to create an editor on the fly. This function takes the DOM element you want to transform as its first argument, typically a div. For a practical example, check the public/index.html file.

Extracting Formatted Text

To gather the formatted text from the editor, simply listen for the input event on your HTML editor element:

document
  .querySelectorAll("[data-tiny-editor]")
  .forEach(editor => {
    editor.addEventListener("input", e => console.log(e.target.innerHTML));
  });

This allows you to access and manipulate the text inside your editor as users add or modify content.

Customizing the Tiny Editor

Tiny Editor offers many customization options. By default, all options are enabled. You can disable individual options using specific data attributes. For instance, if you want to remove the bold formatting button, you can use:

<div data-tiny-editor data-bold="no"></div>

Available Options:

  • data-formatblock="no": Remove the styles dropdown list
  • data-bold="no": Remove the bold button
  • data-italic="no": Remove the italic button
  • data-underline="no": Remove the underline button
  • data-fontname="no": Remove the font dropdown list
  • data-forecolor="no": Remove the text color button
  • data-justifyleft="no": Remove left align button
  • data-justifycenter="no": Remove center align button
  • data-justifyright="no": Remove right align button
  • data-insertorderedlist="no": Remove numbered list button
  • data-insertunorderedlist="no": Remove bulleted list button
  • data-outdent="no": Remove decrease indent button
  • data-indent="no": Remove increase indent button
  • data-remove-format="no": Remove clear formatting button
  • data-autofocus="no": Remove autofocus from the editor

Supported Browsers

The Tiny Editor supports modern browsers such as Chrome, Firefox, and Edge. However, please note that it is not compatible with Internet Explorer.

Troubleshooting

If you run into any issues while using Tiny Editor, here are some troubleshooting tips to help you out:

  • Editor Not Loading: Ensure that the library is correctly linked in your HTML document, and that you have added the data-tiny-editor attribute to your designated element.
  • Formatted Text Extraction Fails: Double-check your event listener implementation to ensure you’re listening on the correct elements.
  • Customization Not Working: Review the data attributes used; ensure they are correctly applied to your editor element.

For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

A Word on Code Analogy

Think of creating the Tiny HTML Editor as assembling a custom toolkit for woodworking. The framework (vanilla JavaScript) provides the sturdy table on which your tools (various options and buttons) can rest. Instead of having a sprawling toolbox jammed with all sorts of swords and screwdrivers, you handpick only the essentials that you need for your masterpiece. Similarly, Tiny Editor allows you to use the necessary components to build your rich text editor while keeping everything light and efficient.

Now that you have the insight to wield your new Tiny Editor like a pro, get ready to create a fabulous editing experience for your web projects!

Stay Informed with the Newest F(x) Insights and Blogs

Tech News and Blog Highlights, Straight to Your Inbox