Skip to content

Markdown Extra

lang.markdown adds editing support for prose-heavy repositories, docs sites, and README work.

Enable it

-- ~/.config/blak/lua/blak/user.lua
return {
extras = {
enabled = {
"lang.markdown",
},
},
}

Or enable it with:

:BlakExtras enable lang.markdown

What it adds

SurfaceContribution
Treesittermarkdown, markdown_inline
Masonprettier, prettierd, markdownlint
LSPmarksman
Formattingprettierd, falling back to prettier, for markdown
Lintingmarkdownlint for markdown

Configure Marksman

Marksman is registered as marksman. Add server options there if needed:

return {
extras = {
enabled = { "lang.markdown" },
},
lsp = {
servers = {
marksman = {
filetypes = { "markdown" },
},
},
},
}

Configure formatting

The default uses prettierd first and falls back to prettier:

return {
extras = {
enabled = { "lang.markdown" },
},
format = {
formatters_by_ft = {
markdown = { "prettierd", "prettier", stop_after_first = true },
},
},
}

To use only the plain Prettier binary:

return {
extras = {
enabled = { "lang.markdown" },
},
format = {
formatters_by_ft = {
markdown = { "prettier" },
},
},
}

Configure linting

The extra maps Markdown files to markdownlint. Keep rules in project config such as .markdownlint.json, or disable the editor lint hook:

return {
extras = {
enabled = { "lang.markdown" },
},
lint = {
linters_by_ft = {
markdown = {},
},
},
}

Install and verify

:BlakToolsInstall
:BlakTreesitterInstall
:BlakDoctor

Open a Markdown file and check :LspInfo for marksman.