Releases: selimacerbas/markdown-preview.nvim
v1.7.0
v1.6.0
- Fix: overlay zoom-in no longer cuts off content. The fullscreen mermaid viewer now properly scrolls when zoomed beyond the viewport (#11)
- Feature:
bottom_paddingconfig option (0–1 fraction) controls how far the last line can scroll. Default 0.5 means the final line scrolls to the viewport midpoint (#12) - Feature: WSL support — the preview now opens via
explorer.exeon Windows Subsystem for Linux (#14)
v1.5.3
- Strip YAML front matter from preview — metadata blocks no longer render as headings/text
v1.5.2
- Add task list checkbox rendering (
- [ ]/- [x]) via markdown-it-task-lists
v1.5.1
- Remove heading anchor permalink symbols (#) from preview for cleaner readability
v1.5.0
- Add takeover instance mode (default): single browser tab shared across Neovim instances via lock file coordination
- Add multi instance mode: independent server and browser tab per instance (port 0)
- Add lock file and remote event modules for cross-instance coordination
- Secondary instances get scroll sync via HTTP event injection
v1.4.0
What's new
LaTeX math rendering
Added support for LaTeX math via KaTeX and markdown-it-texmath.
- Inline math:
$E = mc^2$ - Display math:
$$\int_0^\infty e^{-x^2} dx$$ - LaTeX environments:
\begin{equation}...\end{equation}
All loaded from CDN, zero extra dependencies. Just update and it works.
Closes #6
v1.3.0
What's new
Line-based scroll sync
Rewrote scroll sync from heading-based to line-based interpolation, inspired by peek.nvim and iamcco/markdown-preview.nvim.
Before: Only headings were tracked (5-15 anchor points), scrolling up was inconsistent, files without headings had no sync at all.
After: Every block element (paragraphs, headings, lists, tables, blockquotes, code blocks) is tagged with its source line number. The browser interpolates between the nearest elements for sub-element precision. Scrolling is instant (no animation fighting) and works in both directions consistently.
Fixes:
- Scrolling up no longer fights with itself
- Files with no headings now scroll correctly
- Layout shifts (images loading) re-apply scroll position automatically
v1.2.1
Fixed
- Scroll sync heading detection was broken due to Lua pattern
{n,m}quantifier not being supported (treated as literal text). Headings are now correctly matched. - Removed debug logging left from development.
- Updated README with scroll sync documentation and fixed stale keymap references in troubleshooting.
v1.2.0
New
Heading-based scroll sync
As you move your cursor between sections in Neovim, the browser preview smoothly scrolls to the corresponding heading. No configuration needed — enabled by default.
- Tracks the nearest heading above the cursor via
CursorMovedautocmd - Sends a lightweight SSE event only when the heading changes (no unnecessary traffic)
- Browser uses
scrollIntoView({ behavior: 'smooth' })for a polished experience - Disable with
scroll_sync = falsein setup if not wanted
Requires live-server.nvim v1.1.0+ (for send_event API).
Closes #5