Выпущен редактор форматированного текста Quill 2.0 со значительно улучшенными функциями, надежностью и опытом разработчиков.

Вышла версия Quill 2.0.

Официальное заявление TypeScript

Исходный код Quill был полностью переведен на TypeScript с преимуществами раннего обнаружения ошибок, улучшенной ремонтопригодностью и улучшенной инструментальной поддержкой.

Раньше разработчикам приходилось @types/quillустанавливать его как отдельный пакет для получения определений TypeScript. В Quill 2.0 объявления типов можно получить непосредственно из исходного кода.

несколько реестров

Проекты блогов могут использовать Quill для предоставления полнофункционального интерфейса редактирования самой публикации, включая заголовки, изображения и блоки кода, в то время как на той же странице Quill также поддерживает ввод комментариев полужирным и курсивом, а также поддерживаемые форматы ссылок. Новые registryфункции Quill 2.0 поддерживают этот вариант использования, позволяя нескольким редакторам со своими собственными конфигурациями стилей сосуществовать на одной странице без каких-либо конфликтов.

Автоматическое обнаружение подвижного контейнера

Раньше разработчикам приходилось указывать контейнер прокрутки редактора при создании экземпляра Quill, чтобы курсор или выделение пользователя могли прокручиваться в поле зрения при необходимости. Но эту конфигурацию часто упускают из виду или путают, а перемещаемый контейнер либо указывается неправильно, либо не указывается вообще. Кроме того, в более крупных приложениях и базах кода не всегда легко найти подходящий контейнер прокрутки для повторно используемых компонентов редактора, которые могут появляться в разных контекстах. В версии 2.0 Quill автоматически находит правильный контейнер прокрутки, что упрощает использование Quill с текстом более длинного формата и поддерживает более сложные взаимодействия, такие как свободно вложенные контейнеры прокрутки и горизонтальную прокрутку.

Использование Входного события

Одной из главных сильных сторон Quill является его модель документов с внутренним управлением, которая не полагается на DOM как на единственный источник достоверной информации. Это обеспечивает отображение состояний форматированного текста, более близкое к ментальной модели разработчика, и поддерживает более простой API редактирования текста.

Quill делает это, отслеживая изменения DOM и нормализуя их обратно в свою внутреннюю модель документа. Однако браузеры могут обрабатывать действия пользователя непоследовательно или неправильно, что приводит к созданию неверных изменений DOM. Например, когда пользователь выбирает красный текст и заменяет его при вводе, браузер иногда заменяет его элементом, атрибуты fontкоторого содержат красный цвет style, даже если редактор использует spanэтот элемент для представления цвета.

В Quill 2.0 используйте современные и распространенные функции браузера для запуска InputEvents . Теперь действия пользователя сначала фиксируются для обновления внутренней модели документа, а затем полученные изменения синхронизируются с DOM. Этот подход обеспечивает более единообразный и надежный процесс редактирования, особенно для сложного контента и форматов. В настоящее время эта функция ориентирована на наиболее проблемные источники взаимодействий с заменой текста, и в будущем планируется ее более широкое использование.

Ниже приведен список основной информации об обновлении для версии 2.0:

Основные улучшения

  • Quill теперь является действительным пакетом ESM для лучшей поддержки экосистемы (например, упаковщиков) и функций встряхивания деревьев.

  • Поддержка вложенного пера #3590

  • Улучшенный метод ввода (IME) и поддержка корректора орфографии #3807.

  • Семантическая очистка события TEXT_CHANGE № 3778.

  • История: запись выбранных значений в модуль истории № 3823.

  • Автоматически обнаруживать прокручиваемые контейнеры #3840

  • Буфер обмена: улучшена поддержка вставки из Google Docs и Microsoft Word.

Улучшения производительности

  • Quill 2.0 включает в себя ряд оптимизаций производительности, наиболее важной из которых является повышение скорости рендеринга больших объемов контента.

  • Улучшение производительности вставки #3815

  • По возможности избегайте получения наборов выбора #3538

  • Нет необходимости устанавливать Contents, когда контейнер пуст #3539

Модернизация кода

  • Переход на TypeScript

  • Официальная декларация TypeScript предоставлена.

  • Переход на Vitest для модульного тестирования

  • Перейдите на Playwright для комплексного тестирования

  • Перенести сайт в Gatsby

Подробности можно найти в официальном объявлении и руководстве по переходу на версию 2.0:

рекомендация

отwww.oschina.net/news/288177/quill-2-0-released
рекомендация