delta_text_view 1.0.0
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 и через меню
- Корректно фиксирует якорь выделения (base) при автоскролле в лентах с
Упоминания (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)
- EmojiSpan —
InlineSpanдля emoji-эмбедов, занимающий одну позицию в выделении
Парсинг и работа с Delta #
- DeltaParser — центральный трансформер Delta → текст/
InlineSpanparseDeltaToSpans,deltaWithMentionsAsText,deltaWithEmojisAsText,deltaHasMentionOps,parseStringToDelta- exceedsMaxLines — проверяет превышение лимита визуальных строк с учётом переноса по словам
- SelectionToDeltaConverter — извлечение под-Delta из
TextSelection(rangeToDelta), с учётом блочных префиксов и embed-объектов - DeltaClipboard — внутрипроцессный буфер обмена для Delta, позволяет восстановить форматирование при вставке
- DeltaExtensions — расширения над
Delta:toPlainText,toPlainTextWithBlockPrefixes,documentLength,plainTextLength,lineCount,truncateToLinesgetMentions,hasMention,applyListRealIndexisPlainTextEmpty/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/с примерами использования всех возможностей пакета