awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
GetmeUK avatar

GetmeUK/ContentTools

0
View on GitHub↗
3,977 stars·390 forks·JavaScript·MIT·21 viewsgetcontenttools.com↗

ContentTools

ContentTools is a JavaScript framework and suite of tools for building visual WYSIWYG editors. It provides a DOM manipulation library for parsing and transforming HTML strings into structured editable regions, alongside a visual document orchestrator that manages element behaviors and state transitions.

The framework includes a specialized browser selection manager to ensure consistent caret positioning and text range highlighting across different web browsers. It also features an HTML content validator used to sanitize output and convert third-party media links into valid embed formats.

The system covers a broad range of capabilities, including interactive DOM manipulation for draggable and resizable elements, rich text formatting, and image processing workflows for cropping and rotating. It also provides tools for editing history tracking via DOM snapshots and a UI component system for managing toolboxes and hierarchical breadcrumb navigation.

The project enforces security through element attribute restrictions to prevent unauthorized modifications of HTML tags.

Features

  • Programmatic Element Editing - Provides the core classes and logic used to build and manage HTML elements designated as content-editable.
  • Rich Text WYSIWYG Editors - Provides a framework for building rich text editors that visually handle formatted text and media content.
  • WYSIWYG Editors - Provides a framework for building visual rich text editors that allow direct browser-based HTML editing.
  • DOM Element Class Mappings - Maps DOM tag names and data attributes to JavaScript classes to control rendering and behavior.
  • Editor Lifecycle APIs - Manages the editor's initialization, state, and the definition of editable regions using CSS selectors.
  • Behavioral Tag Mappings - Associates specific DOM tag names or custom data attributes with corresponding element classes for content handling.
  • Regional Component Conversions - Implements the core logic for transforming standard HTML blocks into interactive editable regions.
  • Selection Consistency Layers - Ensures consistent text selection and highlighting behavior across different web browsers.
  • DOM Manipulation Libraries - Includes a library for parsing, transforming, and normalizing HTML strings into structured editable regions.
  • Element Behavior Configurations - Provides a system to define if elements can be dragged, dropped, resized, merged, or removed.
  • Rich Text Editable Regions - Transforms block-level elements within a container into interactive editable regions to maintain browser performance.
  • Selection State Persistence - Saves and restores caret positions and selection ranges to maintain user context during DOM re-mounting.
  • Selection State Management - Provides utilities to query and retrieve the range of currently selected content within an element.
  • Text Selection Management - Ensures consistent text highlighting and caret behavior across different web browsers using a wrapper around native APIs.
  • DOM Manipulation - Implements draggable, resizable, and editable HTML elements with custom behaviors and state tracking.
  • Editor State Orchestrators - Provides a visual document orchestrator to manage element behaviors, state transitions, and editing history.
  • HTML Content Management - Parses and transforms HTML strings into structured formats for manipulation, cleaning, and optimized export.
  • HTML String Parsing - Provides a JavaScript-based parser to convert HTML strings into structured DOM nodes for editor processing.
  • Document Element Insertion - Enables the insertion of interactive elements like links, images, videos, and tables into editable content.
  • Web Content Authoring Interfaces - Provides interfaces for uploading and editing media assets while maintaining valid HTML embed formats.
  • Caret Position Normalization - Ensures consistent caret positioning across browsers by wrapping empty text nodes around self-closing tags.
  • Output Normalizers - Cleans internal scaffolding and reorders tags by length to generate optimized HTML for export.
  • Undo-Redo State History - Stores sequential DOM snapshots to implement undo and redo functionality.
  • Media Upload Workflows - Provides a coordinated workflow dialog for uploading, rotating, and cropping images before insertion.
  • Action-Based State Transitions - Tracks the current editor state and updates it based on processed actions using transition rules.
  • State Machine Logic - Tracks editor state and applies updates based on predefined action rules and callback functions.
  • Editor UI Components - Provides a system for managing and mounting editor-specific UI components like toolboxes, modals, and inspectors.
  • Property Editing Panels - Provides an interface to update an element's attributes, CSS styles, and inner HTML content.
  • Aspect Ratio Preserving Resizing - Adjusts image and video dimensions while preserving aspect ratios and respecting width constraints.
  • Tag-Based Styling Systems - Defines and registers CSS classes that apply to specific HTML tags within the editor.
  • Undo-Redo History - Implements undo and redo functionality by storing sequential snapshots of the document structure.
  • HTML Attribute Restrictions - Enforces security by restricting forbidden attributes on specific HTML tags to prevent unauthorized modifications.
  • HTML Output Optimizers - Generates optimized HTML output by removing internal scaffolding classes and browser-specific formatting.
  • HTML Sanitization Utilities - Ships utilities for sanitizing HTML output and transforming media links into valid embed formats.
  • Inline Text Formatting - Adds or removes specific HTML tags to a range of characters for visual styling.
  • Standalone Editors - Library for building HTML content editors.

Star history

Star history chart for getmeuk/contenttoolsStar history chart for getmeuk/contenttools

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to ContentTools

Similar open-source projects, ranked by how many features they share with ContentTools.
  • basecamp/trixbasecamp avatar

    basecamp/trix

    19,970View on GitHub↗

    Trix is a rich text editor and WYSIWYG text component designed for composing and formatting documents with inline styling and block elements. It functions as an HTML content editor that manages and sanitizes input to ensure a secure and consistent document structure, while serving as a document state manager that tracks edit history and persists serialized state. The editor integrates directly with standard HTML forms, converting rich text into data for submission. It features a configurable sanitization engine that cleanses input HTML to remove unsupported tags and mitigate security risks.

    JavaScript
    View on GitHub↗19,970
  • alex-d/trumbowygAlex-D avatar

    Alex-D/Trumbowyg

    4,147View on GitHub↗

    Trumbowyg is a lightweight JavaScript WYSIWYG editor used to create and format rich-text and HTML content directly within a web browser. It serves as a client-side tool for generating semantic HTML markup and authoring web content. The project features a modular, plugin-based architecture that allows for the addition of new formatting commands and toolbar buttons. It provides a configurable interface where the toolbar layout can be customized via a predefined array and labels can be translated through localization files. The editor covers a wide range of content manipulation capabilities, in

    JavaScript
    View on GitHub↗4,147
  • yoopta-editor/yoopta-editoryoopta-editor avatar

    yoopta-editor/Yoopta-Editor

    3,045View on GitHub↗

    Yoopta-Editor is a headless framework for building customizable block-based rich text editors. It utilizes a JSON-based document engine to manage editor state and provides a WYSIWYG interface for creating structured documents. The system separates core document logic from the visual layer, allowing for complete customization of the user interface. The framework is designed for real-time collaborative editing, featuring a synchronization engine with conflict resolution and remote cursor presence tracking. It offers a highly extensible plugin system that allows developers to define new content

    TypeScriptcontenteditableeditorhacktoberfest
    View on GitHub↗3,045
  • fex-team/ueditorfex-team avatar

    fex-team/ueditor

    6,765View on GitHub↗

    UEditor is a web-based WYSIWYG rich text editor and HTML content authoring tool. It functions as a DOM-based text component that allows users to create and format complex web documents through a visual interface with real-time rendering. The editor enables the creation of rich text content for web applications and content management systems. It manages document state using HTML strings, facilitating the serialization and transfer of data between the browser and server. The system provides capabilities for managing editor content and configuring behavioral parameters through initialization se

    JavaScript
    View on GitHub↗6,765
See all 30 alternatives to ContentTools→

Frequently asked questions

What does getmeuk/contenttools do?

ContentTools is a JavaScript framework and suite of tools for building visual WYSIWYG editors. It provides a DOM manipulation library for parsing and transforming HTML strings into structured editable regions, alongside a visual document orchestrator that manages element behaviors and state transitions.

What are the main features of getmeuk/contenttools?

The main features of getmeuk/contenttools are: Programmatic Element Editing, Rich Text WYSIWYG Editors, WYSIWYG Editors, DOM Element Class Mappings, Editor Lifecycle APIs, Behavioral Tag Mappings, Regional Component Conversions, Selection Consistency Layers.

What are some open-source alternatives to getmeuk/contenttools?

Open-source alternatives to getmeuk/contenttools include: basecamp/trix — Trix is a rich text editor and WYSIWYG text component designed for composing and formatting documents with inline… alex-d/trumbowyg — Trumbowyg is a lightweight JavaScript WYSIWYG editor used to create and format rich-text and HTML content directly… yoopta-editor/yoopta-editor — Yoopta-Editor is a headless framework for building customizable block-based rich text editors. It utilizes a… fex-team/ueditor — UEditor is a web-based WYSIWYG rich text editor and HTML content authoring tool. It functions as a DOM-based text… tinymce/tinymce — TinyMCE is a JavaScript rich text editor and WYSIWYG HTML editor that provides a visual interface for creating and… ory/editor — This project is a customizable browser text editor and a schema-driven document framework designed for building…