# outline/rich-markdown-editor

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/outline-rich-markdown-editor).**

2,934 stars · 593 forks · TypeScript · BSD-3-Clause · archived

## Links

- GitHub: https://github.com/outline/rich-markdown-editor
- Homepage: https://www.getoutline.com
- awesome-repositories: https://awesome-repositories.com/repository/outline-rich-markdown-editor.md

## Topics

`editor` `hacktoberfest` `javascript` `markdown` `prosemirror` `wysiwyg` `wysiwyg-editor`

## Description

This project is a modular rich text editing component for React applications, built on the ProseMirror framework. It provides a visual interface for composing and formatting content using markdown, while maintaining a structured document model that serializes back into clean markdown code.

The editor is designed for high extensibility, allowing developers to inject custom behaviors and formatting commands through a plugin-driven architecture. It supports granular control over the editing environment, including the ability to override default styles, localize interface text, and configure specific behaviors such as read-only modes or character limits.

The system includes comprehensive tools for managing rich media and interactive content, featuring custom callbacks for file uploads and the ability to replace link patterns with embedded components. It also exposes programmatic interfaces for document interaction, enabling developers to extract structural metadata, manage cursor positioning, and synchronize state changes with external data persistence layers.

## Tags

### Content Management & Publishing

- [Markdown Editors](https://awesome-repositories.com/f/content-management-publishing/markdown-editors.md) — Provides a rich text editing component built on ProseMirror for composing and formatting standard markdown content.
- [Visual Markdown Editors](https://awesome-repositories.com/f/content-management-publishing/markdown-to-document-converters/visual-markdown-editors.md) — Provides a visual interface for composing markdown with inline shortcuts and exporting clean markdown code. ([source](https://github.com/outline/rich-markdown-editor#readme))
- [Editor State Synchronization](https://awesome-repositories.com/f/content-management-publishing/content-formats-exporting/content-formats/editor-state-synchronization.md) — Provides event listeners for document changes, focus, and save requests to synchronize state with external data sources. ([source](https://github.com/outline/rich-markdown-editor/blob/main/README.md))
- [Tree-to-Text Serializers](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/document-processing/format-specific-parsers/markdown-abstract-syntax-trees/tree-to-text-serializers.md) — Converts markdown text into a structured node tree and serializes it back into clean markdown code.
- [Editor Interaction APIs](https://awesome-repositories.com/f/content-management-publishing/interactive-document-viewers/editor-interaction-apis.md) — Exposes APIs to control cursor position, scroll to headings, and extract document structure for custom features. ([source](https://github.com/outline/rich-markdown-editor/blob/main/README.md))

### Part of an Awesome List

- [Rich Text Editing Components](https://awesome-repositories.com/f/awesome-lists/devtools/component-and-react-utilities/rich-text-editing-components.md) — Ships a modular and extensible text editing component designed for React applications.
- [Read-Only Viewers](https://awesome-repositories.com/f/awesome-lists/learning/document-reading/read-only-viewers.md) — Supports rendering documents in a non-editable state while maintaining interactive features like clickable links and tables of contents.
- [Editor Image Upload Callbacks](https://awesome-repositories.com/f/awesome-lists/media/file-and-image-handling/editor-image-upload-callbacks.md) — Handles local media file uploads through custom callbacks for integration with external storage. ([source](https://github.com/outline/rich-markdown-editor#readme))

### Development Tools & Productivity

- [Markdown Editing Modes](https://awesome-repositories.com/f/development-tools-productivity/text-editing-modes/markdown-editing-modes.md) — Provides a visual writing interface that supports markdown shortcuts and exports clean, standard markdown code.
- [Editor Configurations](https://awesome-repositories.com/f/development-tools-productivity/editor-configurations.md) — Allows configuration of editor behaviors such as read-only modes, character limits, and text direction. ([source](https://github.com/outline/rich-markdown-editor/blob/main/README.md))
- [Editor Behavior Customizations](https://awesome-repositories.com/f/development-tools-productivity/editor-extensions/editor-behavior-customizations.md) — Offers a highly configurable environment with APIs for managing custom behaviors, media uploads, and document structure.

### Software Engineering & Architecture

- [Immutable State Transactions](https://awesome-repositories.com/f/software-engineering-architecture/immutable-state-transactions.md) — Tracks document content, selection, and transaction history using a centralized immutable state object.
- [Editor Plugins](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/developer-authoring-interfaces/custom-module-implementations/module-functionality-extenders/plugin-extenders/editor-plugins.md) — Provides a plugin architecture to inject custom functionality or remove built-in features. ([source](https://github.com/outline/rich-markdown-editor/blob/main/README.md))
- [Modular Plugin Architectures](https://awesome-repositories.com/f/software-engineering-architecture/modular-plugin-architectures.md) — Injects custom functionality through a modular plugin architecture that intercepts document transactions.

### User Interface & Experience

- [Rich Text Editors](https://awesome-repositories.com/f/user-interface-experience/data-display-components/calendar-views/rich-content-embeds/rich-text-editors.md) — Ships a modular editor library for React that supports custom plugins, media embeds, and full control over document styling.
- [Markdown Renderers](https://awesome-repositories.com/f/user-interface-experience/data-display-components/markdown-renderers.md) — Displays markdown content within a rich text interface supporting advanced formatting and media embeds. ([source](https://github.com/outline/rich-markdown-editor/blob/main/README.md))
- [Interactive Component Embeds](https://awesome-repositories.com/f/user-interface-experience/media-embeds/interactive-component-embeds.md) — Replaces specific link patterns with interactive embedded components using custom matching logic. ([source](https://github.com/outline/rich-markdown-editor#readme))
- [Virtual DOM Reconciliation](https://awesome-repositories.com/f/user-interface-experience/virtual-dom-reconciliation.md) — Synchronizes the internal document model with the browser view by selectively updating only changed DOM parts.

### Data & Databases

- [Document Schema Enforcement](https://awesome-repositories.com/f/data-databases/document-definitions/document-schema-enforcement.md) — Enforces document integrity and formatting rules using a strict schema-based node tree.

### Web Development

- [Read-Only Viewers](https://awesome-repositories.com/f/web-development/html-content-renderers/webview-content-renderers/read-only-viewers.md) — Renders documents in a non-editable state while maintaining interactive features like clickable links and anchor-linked headings. ([source](https://github.com/outline/rich-markdown-editor#readme))
