[0.5.3] - 2025-12-13
Added
-
Styled keybinding hints footer - New context-aware footer bar showing relevant keybindings
- Styled key badges with theme colors (
help_key_bg,help_key_fg,help_desc_fg,footer_bg) - Hints update based on current mode (Normal, Interactive, LinkFollow, DocSearch, etc.)
- Element-specific hints in interactive mode (Checkbox, Table, Link, Details, CodeBlock, Image)
- Table mode shows cell navigation hints (j/k Row, h/l Col, e Edit, y Copy)
- Styled key badges with theme colors (
-
Vim-style count prefixes - Repeat motions with numeric prefixes like vim
5jmoves down 5 items,10kmoves up 10 items- Works in Normal mode (outline/content navigation) and Interactive mode
- Supports: j/k navigation, h/l table columns, content scrolling
0without count goes to first item (vim behavior preserved)- Link follow mode still uses
1-9for direct link jumping
-
Collapse/Expand commands - New command palette commands for outline management
:collapse/:ca- Collapse all headings with children:expand/:ea- Expand all headings:collapse N- Collapse all headings at level N (e.g.,:collapse 2for h2):expand N- Expand all headings at level N- Status messages show count of affected headings
-
Inline HTML tag rendering - Parse HTML tags in details block summaries
<strong>,<b>render as bold<em>,<i>render as italic<code>renders as inline code- No longer shows literal
<strong>tags in rendered view
-
Nested interactive elements in details blocks - Select elements inside expanded details
- Tables, links, code blocks, images inside details are now selectable
- Hierarchical status display:
▸Navigation > Table: 5×3 - Expansion state persists after exiting interactive mode
-
Safe edit buffer system - Table cell edits are now buffered in memory instead of immediately written to file
- Changes are applied to in-memory document for immediate display
- Explicit save required with
:wcommand to write changes to disk - Status shows "X unsaved change(s)" after edits
- Prevents accidental data loss from unforeseen bugs
-
Save command (
:w) - New command to save pending edits:w,:write, or:savewrites all buffered edits to file atomically- Shows confirmation: "Saved X change(s) to filename.md"
-
Undo command (
:uandCtrl+z) - Undo table cell edits before saving:uor:undoin command palette undoes last editCtrl+zkeybinding in Interactive and InteractiveTable modes- Stack-based undo: each edit can be individually reverted
- Shows remaining unsaved changes count after undo
-
Quit confirmation for unsaved changes - Prompts before quitting with unsaved edits
- Dialog shows number of unsaved changes
Enter/ysaves changes and quitsEscapecancels and returns to normal mode
Changed
-
Status bar shows context-aware position - Position info based on focused pane
- Outline focused:
[Outline] 3/15 (20%)- heading position - Content focused:
[Content] Line 42 (35%)- scroll position - Cleaner status bar without inline keybinding hints (moved to footer)
- Outline focused:
-
Esc key behavior in normal mode - Shows helpful hint instead of doing nothing
- Displays: "Press q to quit • : for commands • ? for help"
- Guides new users on how to exit or access features
Fixed
-
Table navigation in interactive mode - j/k now moves cells when in table mode
- Previously j/k moved between elements instead of table rows
- Esc now exits table mode before exiting interactive mode
-
Table row bounds - Can now navigate to last row in tables
- Fixed off-by-one error in
table_move_down()
- Fixed off-by-one error in
Technical
-
Theme footer colors (
src/tui/theme.rs)- Added
help_key_bg,help_key_fg,help_desc_fg,footer_bgto all 16 theme variants - Added
help_key_style(),help_desc_style(),footer_style()helper methods - Updated
with_custom_colors()andwith_color_mode_custom()for footer fields
- Added
-
Config footer colors (
src/config.rs)- Added footer color fields to
CustomThemeConfigfor user customization
- Added footer color fields to
-
Layout footer section (
src/tui/ui/layout.rs)- Added
Section::Footerto layout system
- Added
-
Count prefix system (
src/tui/app.rs,src/tui/mod.rs)- Added
count_prefix: Option<usize>to App state accumulate_count_digit(),take_count(),clear_count(),has_count()methods- Event loop accumulates digits before motion commands
- Added
-
Collapse/expand methods (
src/tui/app.rs)collapse_all(),expand_all(),collapse_level(n),expand_level(n)- Added
CollapseAll,ExpandAll,CollapseLevel,ExpandLeveltoCommandAction
-
HTML parsing utility (
src/parser/utils.rs)- Added
parse_inline_html()function for HTML tag to InlineElement conversion
- Added
Full Changelog: v0.5.2...v0.5.3