A comprehensive Neovim plugin that provides modern markdown editing capabilities, implementing features found in popular editors like Typora, Mark Text, and Obsidian.
[!NOTE] v2.0 includes breaking changes. Please read the migration guide before upgrading: v2.0 Migration Guide (Wiki).
Key Features: Zero dependencies • Works with any filetype • Full test coverage (85%+) • Extensively documented
https://github.com/user-attachments/assets/493361af-f191-4faf-ac1c-4da01222e37d
https://github.com/user-attachments/assets/5ddbc02c-68ba-44f0-8cc0-41807a23e788
Using lazy.nvim:
{
"yousefhadder/markdown-plus.nvim",
ft = "markdown",
opts = {},
}
That's it! The plugin will automatically activate with default keymaps when you open a markdown file.
vim.g.markdown_plus configuration was removed; call require("markdown-plus").setup(opts) (or lazy.nvim opts = {}) explicitly.<localleader> instead of <leader>.headers.parse_header() now expects (line, next_line) to support setext headings.features.html_block_awareness = true skips formatting/list/header operations inside HTML blocks.<localleader>ms switches ATX/setext heading style (H1/H2).<localleader>mh (insert) and <localleader>mH (cycle style).list.smart_outdent = true) for parent-aware marker continuation.<localleader>me (visual mode) escapes/unescapes markdown punctuation.<localleader>mc insert/wrap, ]b/[b navigate, <localleader>mC change language.<localleader>mS, inline code <localleader>m\``, highlight m=, clear formatting mF`.vim.g.maplocalleader = "\\" (or your preferred key) before plugin setup.Want to customize?
{
"yousefhadder/markdown-plus.nvim",
ft = "markdown",
opts = {
-- Your custom configuration here
},
}
See Configuration for all available options.
MIT License - see LICENSE file for details.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!