Repolode
ianstormtaylor

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. 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 обновляется ежедневно.

Похожие проекты

Современный и простой в использовании текстовый редактор для терминала, который поставляется одним статическим бинарным файлом без зависимостей и позиционируется как преемник nano.

29,7 тыс.1,4 тыс.GoMITОбновлён 6 часов назад