Repository navigation
Releases: manji-0/bmd
Release list
v0.7.0
Changes since v0.6.0
Display
- Wide terminals wrap the document at
[view] max_width(default 100) and center the column;0turns the cap off (#17) - The status bar shows the enclosing section, such as "Guide › Install › From source" (#17)
- The status bar, popups, and search prompt are themed, with new
status_bar,status_info,status_error, andpopup_borderroles (#17) - The status bar and outline fit narrow widths: low-priority segments drop first and long file names keep their end (#17)
- The help overlay lists the keys bound in your keymap, and scrolls on short terminals (#17)
- Task-list markers can be set with
[view] checklist(auto,unicode,emoji, orascii) (#17) - Mermaid diagrams use the merman 0.9 default look (white background, dark outlines)
Navigation
- After opening
other.md#section, one Esc returns to the linking document (previously two) - Going back through the anchor or document stack lands on the same block after a terminal resize
- The live view and marks (
a–z) stay on the same block across resizes and outline toggles - A failed restore while going back no longer drops older documents from the stack
AsciiDoc
include::reads files beneath the opened document's folder;../and paths outside it are refused, and stdin or GitHub sources never read local files- Front matter lists only the attributes the document sets, instead of about 70 built-in ones
Memory
- Only the two newest document frames keep their rendered buffers; older frames rebuild in idle time before you reach them
- Kitty images are stored zlib-compressed when the terminal supports it
Internal
- Dependencies updated, including merman 0.9 and acdc-parser 0.11
Install
Download the archive for your platform from the assets below, extract bmd, and place it on your PATH.
cargo install bmd --version 0.7.0v0.6.0
Changes since v0.5.1
Navigation and input
n/N/Tab cycle links across the whole document; footnote markers are skipped and open by click (#16)- The status line shows the selected link URL or footnote label (#7)
- Esc and
Oare one step back with a clear status;His unbound because Esc already closes help (#15) - Search highlights matches and shows a live count while you type
- The outline has no separate focus mode;
pno longer means previous link (#10) - Drag-selecting text no longer copies on mouse-up
- Checklists that only exist in the session are demoted;
xon the top line is unbound (#12) - The GitHub PR listing is behind
--pr-listing(#13) - The built-in theme presets are now
dark,light, andcursor-midnight(#14)
Rendering fixes
- Footnotes are drawn below the body instead of over the first rows
- Blocks are separated by exactly one blank row (previously the first two blocks touched and a blank row trailed the document)
- Styled text no longer gains spaces at style boundaries (
**Bold**,rendered as “Bold ,”) - Over-long words start on a new row instead of being glued to the previous word
- Text right before a hard line break (
\/+) is no longer dropped - The space after a link no longer inherits its underline
- Click targets for links, footnote markers, and checkboxes come from the rendered frame itself, so they are no longer off by a column or row
- Search inside footnotes wraps at the same width as rendering
- AsciiDoc: block images keep their alt text (
[alt], then.Title, then the file name), and links or markup insidefootnote:[…]are kept
Configuration
[theme.<role>]accepts every theme style, includingmathandtext_selection; an unknown role is now a config error instead of being ignored- Colors also accept 256-color indices (for example
208)
Internal
- The library surface is limited to what the binary uses; the unused public modules are gone
- Mermaid and image previews share one generic load session
- Rendering is a single top-down pass cached as a buffer; layout rules are enforced by architecture tests and render invariant tests over every sample
- Fewer dependency features: cold
cargo testbuilds are about 30% faster and the target directory is about 40% smaller
Install
Download the archive for your platform from the assets below, extract bmd, and place it on your PATH.
cargo install bmd --version 0.6.0v0.5.1
Changes since v0.5.0
Toolchain and crates
- MSRV 1.92.0 → 1.98.1 (edition stays 2024)
- Refresh crates and drop syntect’s yaml-rust load path so
cargo auditno longer reports unmaintained yaml-rust - Clippy and tests run
--lockedin CI, prek, and devbox
Navigation
- Jump-stack stores priors fixed at link-jump time; live current section/file stays outside the stack
- Heading outline, yank, and
[/]jumps share one catalog
Document frames
DocumentFramesnapshots outline, text selection, preview zoom, and TOC index; marks clear on reload; unused terminal-image visibility path is gone- Mermaid, image, and prefetch worker sessions move into the stacked frame on suspend; apply-failure and stack-full restore them so consume cannot leave the live file without a session
Install
Download the archive for your platform from the assets below, extract bmd, and place it on your PATH.
cargo install bmd --version 0.5.1v0.5.0
Changes since v0.4.1
Navigation
- Sticky outline sidebar (
t): pin headings,j/kto move,Enter/oto jump - Vim-style scroll marks:
ma/'a(a–z) - Yank:
ycopies a text selection;yllink URL,yhheading#slug,ycnearest code block
Internals
- Crate layers stay inward: slug lives in domain, filesystem access goes through a port, keymap no longer cycles with config
- CI rejects reverse imports (
tests/architecture.rs) - Split oversized adapters (GitHub, link hit-testing, RST/AsciiDoc/Markdown parsers, document model) and group App UI state
Install
Download the archive for your platform from the assets below, extract bmd, and place it on your PATH.
cargo install bmd --version 0.5.0v0.4.1
Changes since v0.4.0
Correctness / domain hardening
- Clamp
scroll_toand terminal resize tomax_scrollso logical and visual scroll stay in sync after shrink/restore - Reject search transitions outside search-input mode (
WrongMode) instead of silently no-oping - Sort search matches before selecting the current hit; clamp
ActiveSearchindex on construction - Keep
Documentfields crate-private with accessors; rewrite GitHub relative links viarewrite_document_links - Redact GitHub auth tokens in
Debugoutput (Token(***))
Install
Download the archive for your platform from the assets below, extract bmd, and place it on your PATH.
cargo install bmd --version 0.4.1v0.4.0
Changes since v0.3.0
GitHub integration
- Open GitHub blob URLs and PR URLs directly:
bmd https://github.com/owner/repo/blob/ref/path.mdor.../pull/123 - PR URLs list the changed document files; navigate them with
n/o - In-app links: opening a GitHub blob URL that points to a supported document format (from a local file or another GitHub document) fetches and displays it in bmd instead of opening a browser
- Force IPv4 for GitHub requests, avoiding multi-second stalls on networks with broken IPv6 routing
Markdown
- Fix links, bold, and other inline formatting being silently dropped inside tight list items (no blank line between items)
Image / mermaid previews
- Fix blurry mermaid diagrams caused by upscaling an undersized raster to fit the preview popup
- Raise the terminal graphics-capability query timeout (200ms → 1s) to reduce false negatives on slower-responding terminals
- When the terminal falls back to the low-fidelity halfblocks protocol, pressing
oon a mermaid diagram or image opens it in the OS default viewer instead of rendering it illegibly inline
Install
Download the archive for your platform from the assets below, extract bmd, and place it on your PATH.
cargo install bmd --version 0.4.0v0.3.0
Changes since v0.2.0
Footnotes
- Select footnote references with
n/palongside links - Open footnote definitions in a floating preview with
o
Markdown / GFM
- Autolink bare
http://andhttps://URLs in inline text - Boxed GFM callout rendering; callout panels shrink to content width
- Fix inline-title TIP callouts merging title into body
UI
- Mouse text selection with automatic clipboard copy on release
yto copy the current selection again
Build
- Rust 1.92 toolchain and dependency updates
Install
Download the archive for your platform from the assets below, extract bmd, and place it on your PATH.
cargo install bmd --version 0.3.0v0.2.0
Changes since v0.1.2
Multi-format support
- Parse and render reStructuredText and AsciiDoc in addition to Markdown
- Auto-detect input format; shared domain model across formats
- Cross-format parity test suite
Markdown / GFM
- Footnotes, strikethrough, heading IDs, table alignment, YAML front matter
- Superscript and subscript (including tight parsing)
- Definition lists
reStructuredText
- Comments, image/code directives, footnotes, nested lists, transitions as horizontal rules
- Table alignments, grid tables, indented blockquotes
- Inline math roles, hard breaks, strikethrough, checklist items
- TOC as a floating preview link
AsciiDoc
- Footnotes, styling, and document metadata
Math
- LaTeX math parsing and terminal rendering across supported markup formats
UI / navigation
- Mouse clicks to open links and dismiss image previews
- Improved table link click precision and line-offset navigation
Other
- License simplified to Apache-2.0 only (removed MIT dual-license)
- CI fixes (rustfmt, clippy)
Install
Download the archive for your platform from the assets below, extract bmd, and place it on your PATH.
cargo install bmd --version 0.2.0v0.1.2
Changes since v0.1.1
- Add configurable keymaps and theme presets, with Cursor Midnight as the default
- Defer preview open until render completes and cache popup buffers
- Refactor navigation stacks so prior scroll positions are fixed only at link jumps
- Add viewport-scoped document prefetch for faster link navigation
- Roll back the document stack when doc_reset restore fails
- Add use-case tests for document prefetch navigation flows
- Add manual functional test documents under
docs/func-check - Remove unused
textwrapandurldependencies - Wrap CJK text at grapheme boundaries in narrow terminals
Install
Download the archive for your platform from the assets below, extract bmd, and place it on your PATH.