Skip to content

Releases: manji-0/bmd

v0.7.0

Choose a tag to compare

@manji-0 manji-0 released this 03 Nov 03:33
3e6ac08

Changes since v0.6.0

Display

  • Wide terminals wrap the document at [view] max_width (default 100) and center the column; 0 turns 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, and popup_border roles (#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, or ascii) (#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.0

v0.6.0

Choose a tag to compare

@manji-0 manji-0 released this 30 Sep 10:00
a96f7f2

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 O are one step back with a clear status; H is 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; p no longer means previous link (#10)
  • Drag-selecting text no longer copies on mouse-up
  • Checklists that only exist in the session are demoted; x on the top line is unbound (#12)
  • The GitHub PR listing is behind --pr-listing (#13)
  • The built-in theme presets are now dark, light, and cursor-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 inside footnote:[…] are kept

Configuration

  • [theme.<role>] accepts every theme style, including math and text_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 test builds 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.0

v0.5.1

Choose a tag to compare

@cursor cursor released this 20 Sep 13:31
520323a

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 audit no longer reports unmaintained yaml-rust
  • Clippy and tests run --locked in 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

  • DocumentFrame snapshots 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.1

v0.5.0

Choose a tag to compare

@manji-0 manji-0 released this 27 Aug 06:55
v0.5.0
4f1d4d1

Changes since v0.4.1

Navigation

  • Sticky outline sidebar (t): pin headings, j/k to move, Enter/o to jump
  • Vim-style scroll marks: ma / 'a (a–z)
  • Yank: y copies a text selection; yl link URL, yh heading #slug, yc nearest 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.0

v0.4.1

Choose a tag to compare

@manji-0 manji-0 released this 17 Jul 19:05
v0.4.1
db4cdc5

Changes since v0.4.0

Correctness / domain hardening

  • Clamp scroll_to and terminal resize to max_scroll so 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 ActiveSearch index on construction
  • Keep Document fields crate-private with accessors; rewrite GitHub relative links via rewrite_document_links
  • Redact GitHub auth tokens in Debug output (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.1

v0.4.0

Choose a tag to compare

@manji-0 manji-0 released this 09 Jul 11:30

Changes since v0.3.0

GitHub integration

  • Open GitHub blob URLs and PR URLs directly: bmd https://github.com/owner/repo/blob/ref/path.md or .../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 o on 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.0

v0.3.0

Choose a tag to compare

@manji-0 manji-0 released this 08 Jul 01:00
v0.3.0
3a67b28

Changes since v0.2.0

Footnotes

  • Select footnote references with n / p alongside links
  • Open footnote definitions in a floating preview with o

Markdown / GFM

  • Autolink bare http:// and https:// 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
  • y to 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.0

v0.2.0

Choose a tag to compare

@cursor cursor released this 03 Jul 09:08
b210b4c

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.0

v0.1.2

Choose a tag to compare

@manji-0 manji-0 released this 01 Jul 16:24

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 textwrap and url dependencies
  • 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.

v0.1.1

Choose a tag to compare

@manji-0 manji-0 released this 01 Jul 07:32
b6d8079

Changes since v0.1.0

  • Load mermaid and image previews asynchronously in the background, with typed session state and resume on navigation
  • Stop stretching narrow tables to full terminal width
  • Add devbox run publish task for crates.io releases