novel_editor 0.4.0
novel_editor: ^0.4.0 copied to clipboard
Novel for Flutter — a Notion-style rich text editor with AI writing assistant, slash commands, floating toolbar, and markdown import/export. Drop-in WYSIWYG editor widget with OpenAI, Gemini, and Anth [...]
0.4.0 #
- Tables that actually work — replaces AppFlowy 4.0.0's broken table renderer (which crashed on any table whose cells had null
height/widthattributes — i.e. every table imported from markdown). Cells now lay out via Flutter's intrinsic-sizedTablewidget, ignoring the buggy attribute path entirely. - Polished table styling — rounded outer border, header row with bold + subtle tint, alternating row stripes, theme-aware light/dark palettes, horizontal scroll for wide tables.
- Notion-style hover affordances — drag-handles fade in on the left of every row and above every column, anchored to actual measured row/column rects so they stay aligned regardless of cell content height. Click a handle for an insert-above / insert-below / delete menu (rows) or insert-left / insert-right / delete (columns). When only one row or column remains the menu's delete entry becomes "Delete table" and removes the whole block.
- Trailing "+" buttons — hover-revealed buttons hug the table's right and bottom edges to add a column or row.
- Click-to-edit inside cells — cell content stretches to fill the cell so taps anywhere inside it land on the inner paragraph and place the cursor.
- Slash menu inside cells — typing
/inside a table cell now opens the slash menu (AppFlowy's whitelist is patched at editor mount to includetable/cell). /tableslash command — inserts a clean 3×2 starter table.- Reactive to mutations — the table widget subscribes to its node attributes via
context.select, so adding/deleting rows or columns rerenders immediately instead of staying stale. - Markdown table normaliser — auto-inserts the
|---|---|separator that GFM requires when importing pipe-delimited content from sources that omit it (e.g. Notion exports). Also merges multi-line cells (rows broken across physical lines) into single GFM rows so they parse correctly. Run-state aware so it never inserts a separator between data rows. - New exports:
LifeOSTableBlockComponentBuilder,LifeOSTableCellBlockComponentBuilder,lifeOSTableSlashItem,normaliseMarkdownTables. - New dependency:
provider ^6.0.0(was already a transitive dep viaappflowy_editor).
0.3.1 #
- Updated example app showcasing all features (AI, toolbar, analytics, dark mode)
- Updated README with complete API documentation
0.3.0 #
- AI in floating toolbar — select text → instant AI actions (Improve, Summarize, Fix Grammar, Shorter, Translate)
- Selection-only AI — AI replaces only the selected text portion, not the whole block
- Fixed toolbar AI button — gradient purple AI dropdown with all actions
- Smart slash command — single
/aientry point with natural language instructions - Expandable AI prompt — grows as you type, positioned near cursor
- Quick action chips — one-tap Improve, Summarize, Fix Grammar when text has context
- Translate asks for language — prompts for target language before translating
- API key security — keys in headers (not URLs), sanitized error messages
- Block type toggle fix — H1/H2/H3 only changes the focused block, not entire document
- Analytics bar — live word count, character count, reading time
- Dark/light theme — auto-detection with manual override
0.2.0 #
- Renamed to
novel_editor— Novel for Flutter - AI integration with pluggable providers (Gemini, OpenAI, Anthropic, custom)
- Floating toolbar, slash commands, dark/light themes
- Markdown import/export
0.1.0 #
- Initial release