Markdown workflow for Neovim

Preview, render, upload, format, and ship from one plugin.

md-tool.nvim brings live preview, PicGo image upload, TOC generation, table editing, list continuation, and in-editor Markdown rendering under one command prefix and one configuration model.

For users who are tired of stitching together five plugins just to make Markdown feel complete. Also includes a full Chinese README for setup details and option notes.

Neovim 0.11.6+ Tree-sitter rendering Rust preview service PicGo image upload Single command prefix
Preview in context live browser sync
md-tool.nvim side-by-side Neovim and browser preview
Why it feels cohesive

One prefix. Shared config. No fragmented Markdown stack.

md-tool.nvim is opinionated about workflow shape: the features are meant to fit together, not compete with each other. Preview, editing helpers, and rendering all live behind the same mental model.

01

Live preview with a local Rust service

Push raw Markdown from Neovim, render it through pulldown-cmark, and keep browser clients in sync over WebSocket updates with scroll synchronization.

02

PicGo upload from local or remote images

Run :MDTupload on a Markdown image link, upload through PicGo, and replace the destination in place without disturbing alt text or titles.

03

Tree-sitter rendering inside the editor

Decorate headings, bullets, task lists, code fences, links, images, callouts, and tables without touching the original Markdown source.

04

Table editing that stays out of the way

Enable buffer-local table mode when you want it, auto-align the active table, and get practical insert-mode helpers for pipes and row creation.

05

Conservative list continuation

Continue Markdown lists, task items, and indentation where it makes sense, while deliberately avoiding the noisy behavior that often makes other list plugins tiring.

06

TOC generation with fenced markers

Generate or update a single TOC block using predictable markers, frontmatter-aware placement, and a command set that behaves consistently.

Workflow

Designed around the actual writing loop.

The plugin is strongest when used as a loop rather than a checkbox list: write in Neovim, preview instantly, upload assets when needed, and keep structure under control without context switching.

1

Write in raw Markdown

Keep the original text readable while enhanced rendering removes visual noise inside Neovim.

2

Preview without leaving your editor rhythm

The browser mirrors the current buffer through a lightweight local service, including local image paths.

3

Upload images at the link site

Use PicGo exactly where the Markdown image already exists, instead of jumping to a separate asset pipeline.

4

Clean structure as you go

Tables, lists, and TOC updates stay close to editing, so maintenance does not become a separate task later.

Setup

Simple installation, deeper configuration when you need it.

The default path is intentionally short. Full option commentary lives in the example config and bilingual README files in the repository.

A

Examples included

The repository ships minimal and fully annotated examples for lazy.nvim and packer.nvim.

B

Release-friendly preview binary

Tagged installs prefer GitHub release assets before falling back to a local Cargo build.

C

PicGo can stay external or inline

Use an existing PicGo config file or provide the config table directly in plugin setup.

Command surface

Easy to remember because the namespace stays flat.

Every module lives under the same MDT prefix, so the plugin reads like a single tool instead of a bag of unrelated features.

Preview

Open, close, and keep a browser mirror in sync.

  • MDTpriviewToggle
  • MDTpriviewEnable
  • MDTpriviewDisable

Editing helpers

Format tables and keep list continuation predictable.

  • MDTtableToggle
  • MDTtableFormat
  • MDTlistToggle

Structure and assets

Update TOC blocks and upload images without leaving Markdown.

  • MDTtocGen
  • MDTtocUpdate
  • MDTupload

Make Markdown in Neovim feel like a product, not a workaround.

Explore the repository, read the bilingual docs, grab a tagged release, and turn your Markdown setup into one coherent workflow.