Skip to content

v2.1.38 — Markdown previews and extensible custom blocks

Choose a tag to compare

@github-actions github-actions released this 30 Aug 19:14
· 22 commits to main since this release

Highlights

Markdown previews, built in

  • .md and .markdown files now use the full live viewer: CommonMark prose,
    tables, task lists, strikethrough, code, links, local images, and MathJax math
    all update through the same CLI and Neovim workflow as LaTeX.
  • No additional renderer is required. Markdown parsing and MathJax are bundled
    in both Cargo-built and GitHub release binaries, while raw Markdown HTML
    remains inert rather than being injected into the page.

Theorems, proofs, and project-defined blocks

  • Markdown theorem fences understand both Bookdown and Quarto conventions,
    including their native theorem references, forward references, numbering,
    and titles.
  • Proof blocks can reveal blurred content on demand. Projects can define safe,
    declarative block appearances, labels, colors, italics, and reveal behavior
    through [markdown.blocks.NAME].
  • Existing note syntax can be preserved with [markdown.block-syntaxes.ID]:
    literal start templates containing {name} and optional {title}, plus a
    literal end marker, support forms such as Jinja-style
    {% call result(...) %} / {% endcall %} without executing Jinja.
  • Config → Markdown config → Recognize ::: blocks controls compact
    MathPreview, Bookdown, and Quarto colon fences. The same option is
    [markdown] colon-fences; advanced custom formats and start/end templates
    remain configurable through TOML. Layered Project, Global, and Custom saves
    preserve inherited settings and existing config content.

More dependable source sync and navigation

  • Markdown source sync is now token-precise across prose, formatting, tables,
    and code. Rapid cursor and selection updates no longer get dropped, and
    click-back preserves unsaved symlinked buffers.
  • Per-buffer snapshots prevent edits in multiple previews from cancelling or
    rerouting one another. Heading fragment links, duplicate headings, Unicode
    fragments, and footnotes now resolve reliably without colliding with
    source-sync IDs.
  • Local Markdown assets resolve consistently in live and one-shot previews,
    and macro-only edits refresh MathJax once without disturbing the compact
    update path.

Safety and TeX compatibility

Custom delimiters, block formats, theorem attributes, titles, and colors remain
bounded, escaped, and data-only; malformed or ambiguous structures fail closed.
Markdown parsing, custom blocks, link aliases, and source-sync changes are
format-isolated: existing LaTeX HTML, hashes, IDs, syncing, and viewer behavior
remain unchanged.

Live-update compatibility

WebSocket protocol 77 → 80 carries the corrected Markdown sync, custom-block
interaction state, and live Markdown configuration. Stale tabs reload once to
adopt the matching client, then continue updating normally.

Prebuilt mathpreview-cli archives for macOS and GNU/Linux (arm64/x86_64), plus SHA-256 checksums, are attached below.