Skip to content

ZenNotes v2.13.3

Choose a tag to compare

@github-actions github-actions released this 15 Jul 14:02

ZenNotes 2.13.3: editor polish (block-math navigation, reading-view parity, click accuracy, consistent heading markers)

A patch release: three fixes to the live math rendering that shipped in 2.13.2 (all found within a day of release) plus a heading-marker consistency fix. Installers for macOS, Windows, and Linux (x64 + arm64) are attached below.

🐛 Fixes

  • Vim j/k (and the arrow keys) now step into rendered math blocks. A rendered $$…$$ block is a single widget, and vertical cursor motion used to skip clean over it: only a mouse click could reveal the source, and on notes with several blocks the reveal-induced height changes compounded into multi-line jumps, freezes, and "double skips". Moving onto a block now reveals it and walks the raw LaTeX line by line, in both directions, then re-renders it when you move on. Counts (3j), gj/gk, operators, and movement over other widgets (tables, embeds) are unchanged.

  • A closing $$ at the end of a content line now works in the reading view. The editor accepted a block ending in content$$ (and a whole $$x^2$$ block on one line), but the reading view's parser only closes a block on a fence-only line, so those notes rendered in Edit and broke in Preview, swallowing everything after the block. The reading view now parses exactly the shapes the editor renders; notes already using canonical $$-on-its-own-line fences are untouched. (#399, reported by @ShowhyT)

  • Mouse clicks land where you click, no matter how far you scroll. The math block widget carried vertical margins the editor cannot measure, so every rendered block above the pointer added a few unaccounted pixels: the deeper you scrolled in a math-heavy note, the further below your click the cursor landed. The widget now uses measurable padding, so click position and cursor position agree at any scroll depth.

  • Heading ## markers now reveal with the cursor anywhere in the heading. Headings were the one live-preview element that behaved differently: the marks only appeared when the cursor sat left of the first letter, while list bullets, quote marks, tasks, and inline formatting all reveal anywhere on the active line. The active heading line now reads as source like everything else, and the marks still hide when the cursor is elsewhere. (reported by Julie on Discord)

Also in this release: launching with ZEN_PERF=1 now prints a boot timeline (main.boot.module-loaded, main.boot.app-ready, and absolute uptimeMs on the window marks), so slow-startup reports, like a Linux AppImage taking a minute to first paint, can be pinned to the guilty phase from one terminal run.


Keyboard-first and local-first, as always.