better markdown

This commit is contained in:
root 2026-04-01 06:32:39 +00:00
parent b1e353c5a4
commit c4bbcf9d25
1 changed files with 189 additions and 6 deletions

195
init.lua
View File

@ -913,12 +913,195 @@ require('lazy').setup({
-- inline markdown -- inline markdown
{ {
'MeanderingProgrammer/render-markdown.nvim', 'MeanderingProgrammer/render-markdown.nvim',
dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-mini/mini.nvim' }, -- if you use the mini.nvim suite dependencies = { 'nvim-treesitter/nvim-treesitter' },
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-mini/mini.icons' }, -- if you use standalone mini plugins config = function()
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons local function get_hl(name)
---@module 'render-markdown' local ok, hl = pcall(vim.api.nvim_get_hl, 0, { name = name, link = false })
---@type render.md.UserConfig if ok then return hl end
opts = {}, return {}
end
local function apply_highlights()
local normal = get_hl 'Normal'
local normal_float = get_hl 'NormalFloat'
local color_column = get_hl 'ColorColumn'
local comment = get_hl 'Comment'
local code_bg = color_column.bg or normal_float.bg or normal.bg
local quote_fg = comment.fg or normal.fg
for i = 1, 6 do
vim.api.nvim_set_hl(0, 'RenderMarkdownH' .. i, {
fg = 'fg',
bold = true,
})
vim.api.nvim_set_hl(0, 'RenderMarkdownH' .. i .. 'Bg', {
fg = 'fg',
bg = 'NONE',
bold = true,
})
end
vim.api.nvim_set_hl(0, 'RenderMarkdownBullet', {
fg = 'fg',
})
vim.api.nvim_set_hl(0, 'RenderMarkdownUnchecked', {
fg = 'fg',
})
vim.api.nvim_set_hl(0, 'RenderMarkdownChecked', {
fg = 'fg',
})
for i = 1, 6 do
vim.api.nvim_set_hl(0, 'RenderMarkdownQuote' .. i, {
fg = quote_fg or 'fg',
})
end
if code_bg then
vim.api.nvim_set_hl(0, 'RenderMarkdownCode', {
bg = code_bg,
})
vim.api.nvim_set_hl(0, 'RenderMarkdownCodeBorder', {
bg = code_bg,
})
vim.api.nvim_set_hl(0, 'RenderMarkdownCodeInline', {
bg = code_bg,
})
else
vim.api.nvim_set_hl(0, 'RenderMarkdownCode', {
bg = 'NONE',
})
vim.api.nvim_set_hl(0, 'RenderMarkdownCodeBorder', {
bg = 'NONE',
})
vim.api.nvim_set_hl(0, 'RenderMarkdownCodeInline', {
bg = 'NONE',
})
end
end
apply_highlights()
vim.api.nvim_create_autocmd('ColorScheme', {
callback = apply_highlights,
})
require('render-markdown').setup {
sign = {
enabled = false,
},
heading = {
sign = false,
icons = { '', '', '', '', '', '' },
position = 'inline',
width = 'block',
left_margin = 0,
left_pad = 0,
right_pad = 0,
border = { true, true, false, false, false, false },
above = ' ',
below = '',
foregrounds = {
'RenderMarkdownH1',
'RenderMarkdownH2',
'RenderMarkdownH3',
'RenderMarkdownH4',
'RenderMarkdownH5',
'RenderMarkdownH6',
},
backgrounds = {
'RenderMarkdownH1Bg',
'RenderMarkdownH2Bg',
'RenderMarkdownH3Bg',
'RenderMarkdownH4Bg',
'RenderMarkdownH5Bg',
'RenderMarkdownH6Bg',
},
},
paragraph = {
left_margin = 0,
indent = 0,
},
bullet = {
icons = { '', '', '' },
left_pad = 0,
right_pad = 1,
highlight = 'RenderMarkdownBullet',
},
checkbox = {
bullet = false,
left_pad = 0,
right_pad = 1,
unchecked = {
icon = '',
highlight = 'RenderMarkdownUnchecked',
},
checked = {
icon = '',
highlight = 'RenderMarkdownChecked',
},
},
quote = {
icon = '',
repeat_linebreak = false,
highlight = {
'RenderMarkdownQuote1',
'RenderMarkdownQuote2',
'RenderMarkdownQuote3',
'RenderMarkdownQuote4',
'RenderMarkdownQuote5',
'RenderMarkdownQuote6',
},
},
code = {
style = 'normal',
border = 'none',
width = 'full',
left_margin = 0,
left_pad = 0,
right_pad = 0,
inline = true,
inline_left = '',
inline_right = '',
inline_pad = 0,
highlight = 'RenderMarkdownCode',
highlight_border = 'RenderMarkdownCodeBorder',
highlight_inline = 'RenderMarkdownCodeInline',
},
pipe_table = {
preset = 'none',
cell = 'padded',
padding = 1,
border_enabled = true,
style = 'full',
},
link = {
hyperlink = '',
email = '',
image = '',
wiki = {
enabled = false,
},
custom = {},
},
}
end,
}, },
-- image render -- image render