delta_text_view 1.0.0 copy "delta_text_view: ^1.0.0" to clipboard
delta_text_view: ^1.0.0 copied to clipboard

Пакет для отображения Delta формата (используется в Quill редакторе) в виде текста во Flutter

Changelog #

1.0.0 #

Виджеты #

  • DeltaTextView — виджет для отображения Quill Delta в виде Text.rich/SelectableDeltaTextView

    • Блоковые атрибуты (заголовки, списки, цитаты, блоки кода) отображаются как текстовые префиксы (# , - , 1. , > )
    • Параметры: delta, defaultStyle, mentionConfig, emojiConfig, emojiOnlySize, maxLines, textAlign, overflow, selectable, selectionColor, onSelectionChangedAsDelta, onTapSelectableText, onLinkTap, contextMenuBuilder
    • Автоматическое увеличение emoji (emojiOnlySize, по умолчанию 48), когда Delta состоит только из emoji-эмбедов
  • SelectableDeltaTextView — виджет выделяемого текста на базе EditableText

    • Корректно фиксирует якорь выделения (base) при автоскролле в лентах с reverse: true
    • Контекстное меню по умолчанию (AdaptiveTextSelectionToolbar), копирование через Ctrl+C/Cmd+C и через меню

Упоминания (mentions) #

  • MentionConfig — конфигурация разбора и отображения произвольных embed-упоминаний
    • embedKey (по умолчанию 'mention'), fromJson, widgetBuilder, onTap({mention, details})
  • MentionDelta — интерфейс модели упоминания (toJson(), displayData)
  • MentionSpan / MentionWidget — рендер упоминания как InlineSpan/виджета, с поддержкой выделения

Emoji #

  • EmojiConfig — конфигурация разбора и отображения emoji-эмбедов (embedKey, widgetBuilder)
  • DefaultEmojiWidget — виджет по умолчанию для цветных emoji на всех платформах (корректный рендер CBDT/COLR шрифтов на macOS/iOS/Windows/Android/Linux)
  • EmojiSpanInlineSpan для emoji-эмбедов, занимающий одну позицию в выделении

Парсинг и работа с Delta #

  • DeltaParser — центральный трансформер Delta → текст/InlineSpan
    • parseDeltaToSpans, deltaWithMentionsAsText, deltaWithEmojisAsText, deltaHasMentionOps, parseStringToDelta
    • exceedsMaxLines — проверяет превышение лимита визуальных строк с учётом переноса по словам
  • SelectionToDeltaConverter — извлечение под-Delta из TextSelection (rangeToDelta), с учётом блочных префиксов и embed-объектов
  • DeltaClipboard — внутрипроцессный буфер обмена для Delta, позволяет восстановить форматирование при вставке
  • DeltaExtensions — расширения над Delta:
    • toPlainText, toPlainTextWithBlockPrefixes, documentLength, plainTextLength, lineCount, truncateToLines
    • getMentions, hasMention, applyListRealIndex
    • isPlainTextEmpty / isPlainTextNotEmpty
  • DeltaAttributesExt — расширение атрибутов Delta (toTextStyle, blockPrefixInfo, applyPrefix)

Поддержка форматирования #

  • Inline: bold, italic, underline, strike, color, background, font, size, link (открытие через url_launcher, можно отключить через onLinkTap: null)
  • Block: header (1-6), list (bullet/ordered, с list-real-index), blockquote, code-block, indent, align

Примеры #

  • Демонстрационное приложение в example/ с примерами использования всех возможностей пакета
1
likes
130
points
38
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Пакет для отображения Delta формата (используется в Quill редакторе) в виде текста во Flutter

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

dart_quill_delta, flutter, url_launcher

More

Packages that depend on delta_text_view