All notable changes to this project will be documented in this file.
- Cached search-highlighted lines so unchanged redraws reuse prior highlighted output instead of re-running regex highlighting across the whole document.
- Moved local image dimension probing off the UI thread during load/reload by sending probe jobs to the background image worker.
- Removed per-frame document line cloning before paragraph rendering by transferring ownership of display lines into
Text. - Kept scrolling/input responsive while images load by throttling image-load result processing per UI tick.
- Moved image resize/encode work off the UI thread into a dedicated background resize worker so rendering large images no longer blocks navigation.
- Cached virtual-row counts in
max_scrollkeyed by content width, with invalidation on reload, search-state changes, and image layout updates to avoid rebuilding the full display document on frequent navigation/redraw paths.
- Less-style half-page navigation aliases:
d(down) andu(up), in addition toCtrl-d/Ctrl-u(issue #1).
- Lazy image loading with non-blocking background fetch/decode so markdown opens immediately.
- Image layout now reserves space before load using HTML
<img width height>hints when available. - Images without explicit dimensions use a default placeholder estimate during lazy loading.
- Improved image rendering stability while scrolling past images by fixing partial-viewport draw artifacts and distortion.
- Long image source captions are truncated in display text to reduce wrap bleed in the viewport.
- Visible in-document cursor with
line:columncursor position in the status bar for easier eye tracking.
- Syntax highlighting for fenced code blocks with recognized language tags.
- Inline terminal image rendering for markdown images and HTML
<img ...>tags. - Remote image loading for
http://andhttps://image URLs. --image-protocolCLI option to force a specific image backend (auto,halfblocks,sixel,kitty,iterm2).
- Markdown image tokens now include visual fallback caption lines when an image cannot be loaded.
- TUI redraw loop now renders on input/resize state changes instead of a fixed idle cadence to reduce flicker while scrolling.
- Vim-style full-page navigation with
Ctrl-f(down) andCtrl-b(up). - Visual highlighting for search matches in the document view, with stronger emphasis on the active match.
- Renamed the CLI and package from
mdviewtomdvi. - Updated in-app title/help text and README command examples to use
mdvi. - Search matches are rebuilt after file reload so navigation and highlights stay accurate.