[0.5.7] - 2026-02-26
Added
-
Home/End key bindings - Navigate to first/last with Home/End keys (#43)
- Works in Normal, Interactive, Help, and FilePicker modes
- Also added PageUp/PageDown bindings in Normal mode for consistency
-
Directory and multi-file support - Open file picker with directory argument (#43)
treemd .opens file picker in current directorytreemd docs/opens file picker in specified directory- Multiple file arguments supported (e.g.,
treemd *.md)
-
Compact tree style - Gapless box-drawing characters for tree visualization (#43)
- Now uses
├──instead of├─(connected, no gaps) - Config option
tree_style: "compact" (default) or "spaced" - Works in both
--treeCLI output and query tree output
- Now uses
-
Todo filter for outline - Filter heading tree to show only headings with open todos (#44)
- Press
tto toggle filtering by open todos (- [ ]or* [ ]) - Shows only headings that contain open todos (directly or in descendants)
- Preserves hierarchy: parent headings shown if any child has todos
- Status message shows count of headings with open todos
- Press
-
SOTA Content filtering - Robust YAML frontmatter and LaTeX handling (#43)
- Unicode Approximation: LaTeX math symbols like
\alpha,\sum,\inftyare now rendered as readable Unicode (α,∑,∞) instead of being stripped. - Superscript/Subscript support: Common exponents and indices (like
x^2,n_i) are converted to Unicode (x²,nᵢ). - Environment Preservation: Content inside LaTeX environments (like
equationoralign) is preserved while stripping the tags. hide_frontmatteroption strips---\n...\n---blocks at document start.hide_latexoption handles math and LaTeX commands robustly without "half measures".- Aggressive filtering remains available but the standard mode is now preferred.
- Unicode Approximation: LaTeX math symbols like
-
Smart Responsive Tables - Tables now wrap and collapse intelligently (#43)
- Cell Wrapping: Long content now wraps into multiple lines within columns, ensuring data remains readable even on narrow terminals.
- Content-weighted widths: Uses 70% average + 30% max for fairer column distribution.
- Adaptive padding: Dynamically reduces cell padding (2 → 1 → 0) to save space.
- Unicode ellipsis: Optimized truncation using
…for maximum information density.
-
File picker quit - Press
qto exit file picker dialog (#43)
Fixed
- EOF scroll behavior - Content no longer scrolls past the last line (#43)
- Now uses actual rendered line count (not raw markdown lines) for scroll limits
- Scroll stops when last line is visible at bottom of viewport
- Consistent behavior across all scroll methods (j/k, Page Up/Down, Home/End)
Technical
-
Config additions (
src/config.rs)- Added
ContentConfigstruct withhide_frontmatter,hide_latex,latex_aggressivefields - Added
tree_stylefield toUiConfig(defaults to "compact") - Added
is_compact_tree()helper method to Config
- Added
-
Content filtering utilities (
src/tui/ui/util.rs)- Added
strip_frontmatter()for YAML frontmatter removal - Added SOTA
strip_latex()with Unicode symbol mapping and environment preservation - Added
wrap_text()utility for Unicode-aware word wrapping - Added
filter_content()combining all filters
- Added
-
Tree rendering (
src/parser/document.rs,src/query/output.rs)- Added
render_box_tree_styled()method with compact parameter - Updated
format_tree_value()to support compact mode
- Added
-
App state (
src/tui/app.rs)- Added
file_picker_dirfield for custom directory support - Added
should_hide_frontmatter()andshould_hide_latex()getters - Updated
scan_markdown_files()to use custom directory
- Added
-
Table rendering (
src/tui/ui/table.rs,src/tui/ui/mod.rs)- Refactored
render_table_rowto returnVec<Line>for multi-line wrapping - Implemented smart wrapping logic using
util::wrap_text - Propagated width adjustments through nested content structures
- Comprehensive test updates for new wrapping behavior
- Refactored
Full Changelog: v0.5.6...v0.5.7