return { { "iamcco/markdown-preview.nvim", build = "cd app && npm install", init = function() vim.g.mkdp_filetypes = { "markdown" } end, ft = { "markdown" }, }, { "mzlogin/vim-markdown-toc", init = function() vim.g.vmt_auto_update_on_save = 0 vim.g.vmt_dont_insert_fence = 1 end, ft = { "markdown" }, }, { "dbridges/vim-markdown-runner", cmd = { "MarkdownRunner", "MarkdownRunnerInsert" }, config = function() vim.api.nvim_set_keymap("n", "r", "MarkdownRunner", { noremap = false, silent = true }) vim.api.nvim_set_keymap("n", "R", "MarkdownRunnerInsert", { noremap = false, silent = true }) end, ft = { "markdown" }, }, { "preservim/vim-markdown", dependencies = { "godlygeek/tabular" }, init = function() -- All concealing is handled by Treesitter vim.g.vim_markdown_conceal = 0 vim.g.vim_markdown_conceal_code_blocks = 0 vim.g.vim_markdown_frontmatter = 0 vim.g.vim_markdown_strikethrough = 0 vim.g.vim_markdown_auto_insert_bullets = 0 vim.g.vim_markdown_new_list_item_indent = 0 vim.g.vim_markdown_folding_disabled = 1 end, ft = { "markdown" }, }, { "nvim-treesitter/nvim-treesitter", opts = function(_, opts) if type(opts) == "table" then opts.ensure_installed = opts.ensure_installed or {} vim.list_extend(opts.ensure_installed, { "markdown_inline", "markdown", }) end end, }, { "jose-elias-alvarez/null-ls.nvim", opts = function(_, opts) if type(opts) == "table" then opts.sources = opts.sources or {} local null_ls = require("null-ls") vim.list_extend(opts.sources, { null_ls.builtins.diagnostics.markdownlint_cli2, null_ls.builtins.diagnostics.vale, null_ls.builtins.diagnostics.proselint, null_ls.builtins.formatting.prettierd.with({ filetypes = { "markdown" }, }), }) end end, }, }