Расширяемый фреймворк для текстовых редакторов от Meta: ядро не зависит от UI-фреймворков, доступны официальные React bindings.
ianstormtaylor/slate
Настраиваемый TypeScript-фреймворк для создания rich text-редакторов на React с архитектурой, ориентированной на плагины, и ядром без схемы.
- Звёзды
- 31,743
- Форки
- 3,304
- Открытые issues
- 6
- Последний коммит
- 10 часов назад
Что это?
Slate — фреймворк для создания rich text-редакторов в браузере. Он работает как расширяемый слой поверх contenteditable и использует React для рендеринга. Ядро практически не ограничивает структуру документа, поэтому разработчики могут определять собственные типы блочных и встроенных элементов — например, комментарии, встраиваемые объекты, упоминания или таблицы — вместо того, чтобы подстраиваться под фиксированную схему.
Документы представлены в виде вложенного дерева, похожего на DOM, и изменяются с помощью команд и операций высокого уровня. Модель данных разработана так, чтобы позже поверх неё можно было добавить совместное редактирование. Отдельные пакеты предоставляют отмену и повтор действий, сериализацию в стиле HTML и создание документов на основе JSX.
Проект разделён на монорепозиторий с несколькими пакетами: slate для базовой модели, slate-react для рендеринга, slate-history для отмены и повтора действий и slate-hyperscript для создания документов в JSX. Сейчас проект находится в бета-версии, поэтому некоторые API могут измениться.
Ключевые возможности
- 01Архитектура на основе плагинов: поведение редактора настраивается с их помощью.
- 02Ядро без схемы позволяет определять собственные типы блочных и встроенных узлов.
- 03Вложенное дерево документов, построенное по аналогии с DOM и поддерживающее такие структуры, как таблицы и вложенные цитаты.
- 04Компоненты React для рендеринга редакторов через slate-react.
- 05История с отменой и повтором действий доступна через плагин slate-history.
- 06Создание документов на основе JSX с помощью slate-hyperscript.
Сценарии использования
- Создание редактора в стиле Medium или Google Docs с пользовательскими блоками, например встраиваемыми объектами или комментариями.
- Создание редактора с Markdown-сокращениями, который преобразует ввод по мере набора текста.
- Добавление @-упоминаний или встроенных узлов с данными в интерфейс редактирования текста.
- Создание приложения на React, которому нужен rich text-ввод с небезструктурной моделью документа.
Быстрый старт
- 1
Откройте руководство по установке Getting Started в официальной документации
Что важно знать
- Slate находится в стадии бета-тестирования, и некоторые API ещё не окончательно определены и могут измениться несовместимым образом.
- Проект поддерживают волонтёры, а не крупная компания, поэтому, возможно, вам придётся самостоятельно вносить исправления.
Темы
Частые вопросы
- Что такое slate?
- Настраиваемый TypeScript-фреймворк для создания rich text-редакторов на React с архитектурой, ориентированной на плагины, и ядром без схемы. Slate — фреймворк для создания rich text-редакторов в браузере. Он работает как расширяемый слой поверх contenteditable и использует React для рендеринга. Ядро практически не ограничивает структуру документа, поэтому разработчики могут определять собственные типы блочных и встроенных элементов — например, комментарии, встраиваемые объекты, упоминания или таблицы — вместо того, чтобы подстраиваться под фиксированную схему.
- slate можно использовать бесплатно? Какая у него лицензия?
- slate распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- slate всё ещё поддерживается?
- Активно поддерживается. Последний коммит в slate — 21 окт. 2026 г..
- Для чего можно использовать slate?
- Создание редактора в стиле Medium или Google Docs с пользовательскими блоками, например встраиваемыми объектами или комментариями. Создание редактора с Markdown-сокращениями, который преобразует ввод по мере набора текста. Добавление @-упоминаний или встроенных узлов с данными в интерфейс редактирования текста. Создание приложения на React, которому нужен rich text-ввод с небезструктурной моделью документа.
- Как установить slate?
- Откройте руководство по установке Getting Started в официальной документации
- Где скачать slate?
- Исходный код и инструкции по установке — на GitHub: https://github.com/ianstormtaylor/slate
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Блочный текстовый редактор для веба, который сохраняет контент в чистом JSON, а возможности расширяются с помощью плагинов-инструментов.
Headless-редактор форматированного текста на базе ProseMirror, не привязанный к фреймворку и расширяемый множеством расширений.
Современный и простой в использовании текстовый редактор для терминала, который поставляется одним статическим бинарным файлом без зависимостей и позиционируется как преемник nano.
Бесплатный редактор исходного кода и замена Блокноту для Windows с подсветкой синтаксиса многих языков программирования.
Кроссплатформенная реализация текстового редактора Notepad++ на Qt для Windows, Linux и macOS.