Skip to main content

livemd_flutter 0.3.0 copy "livemd_flutter: ^0.3.0" to clipboard
livemd_flutter: ^0.3.0 copied to clipboard

A lossless continuous Markdown Live Preview editor for Flutter.

0.3.0 #

  • Render complete ![alt](destination) syntax as an inline picture with a broken-image fallback, while arrow-key traversal into the image range still reveals the exact source.
  • Resolve image destinations through an injectable LiveMarkdownImageResolver that maps asset: paths to the application bundle instead of the network.
  • Disable the editable text forced strut so rendered Markdown owns its line heights, and reserve the exact image row height: heading lines, block rows, and inline placeholders no longer overflow or overlap their neighbors.
  • Keep hidden marker runs height-tight so revealing inline syntax keeps the following content vertically stable.
  • Report picture clicks through onImageTap and snap stray pointer carets out of image source ranges, so clicks near a rendered row never reveal source that the caret was not meant to enter.
  • Render ![alt](destination.mp4) as a video slot when the destination is a video file, with an injectable LiveMarkdownVideoBuilder for real playback, an onVideoTap pointer action, and source reveal on caret traversal.
  • Render ![alt](destination.mp3) as an audio slot when the destination is an audio file, with an injectable LiveMarkdownAudioBuilder for real playback, an onAudioTap pointer action, and source reveal on caret traversal.
  • Size the caret to the natural glyph height (ascent plus descent) instead of the whole leading-inflated line, so it covers lowercase descenders without poking into the neighbors.
  • Make the whole task marker one opaque hit target so clicking anywhere on it toggles the task instead of placing the caret inside the marker.

0.2.0 #

  • Replace the per-block preview/TextField switcher with one continuous native editing surface and a source-range projection layer.
  • Store the complete TextEditingValue, including global selection and IME composing state, in LiveMarkdownController.
  • Add a lossless positioned syntax tree with nested inline nodes, complex link destinations, Wiki aliases, escaping, and literal incomplete states.
  • Make rendered links and task checkboxes pointer actions while arrow-key traversal into the same ranges reveals their Markdown source.
  • Keep rapid task-checkbox clicks inside a full-line hit target and derive each toggle from the latest source state, preventing accidental source reveal.
  • Add Obsidian-style list, task, ordered-list, and quote Enter/Shift+Enter, Backspace, Tab, Shift+Tab, and ordered renumbering commands.
  • Keep code fences, Callouts, GFM tables, and thematic breaks rendered until the caret enters their source range.
  • Add global selection, IME, interaction, structural editing, nested syntax, and vertical-stability regression tests.
  • Record an Obsidian 1.13.7 behavior oracle and expand the macOS example.

0.1.0 #

  • Add lossless Markdown block parsing.
  • Add live preview editor and document controller.
  • Reveal source markers only for the inline token containing the caret.
  • Keep font size, weight, and line height stable when source markers appear.
  • Keep blank-line insertion focused after Return and support Backspace joins.
  • Map preview taps to source offsets instead of always jumping to block end.
  • Add arrow-key navigation between semantic blocks.
  • Keep task and bullet markers visual while their source stays lossless.
  • Keep single-line headings, paragraphs, and list items at a fixed vertical position while source markers expand.
  • Add undo/redo, theming hooks, tests, and a macOS/web example.
0
likes
0
points
235
downloads

Publisher

unverified uploader

Weekly Downloads

A lossless continuous Markdown Live Preview editor for Flutter.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, flutter_markdown_plus

More

Packages that depend on livemd_flutter