mirror of
https://git.sr.ht/~coasteen/dotfiles
synced 2025-11-04 14:47:38 +01:00
142 lines
6.7 KiB
Lua
142 lines
6.7 KiB
Lua
|
|
-- Credits to https://raw.githubusercontent.com/BreadOnPenguins/nvim/refs/heads/master/lua/plugins/render-markdown.lua
|
||
|
|
|
||
|
|
require("render-markdown").setup({
|
||
|
|
link = {
|
||
|
|
-- Turn on / off inline link icon rendering.
|
||
|
|
enabled = true,
|
||
|
|
-- Additional modes to render links.
|
||
|
|
render_modes = false,
|
||
|
|
-- How to handle footnote links, start with a '^'.
|
||
|
|
footnote = {
|
||
|
|
-- Turn on / off footnote rendering.
|
||
|
|
enabled = true,
|
||
|
|
-- Replace value with superscript equivalent.
|
||
|
|
superscript = true,
|
||
|
|
-- Added before link content.
|
||
|
|
prefix = "",
|
||
|
|
-- Added after link content.
|
||
|
|
suffix = "",
|
||
|
|
},
|
||
|
|
-- Inlined with 'image' elements.
|
||
|
|
image = " ",
|
||
|
|
-- Inlined with 'email_autolink' elements.
|
||
|
|
email = " ",
|
||
|
|
-- Fallback icon for 'inline_link' and 'uri_autolink' elements.
|
||
|
|
hyperlink = " ",
|
||
|
|
-- Applies to the inlined icon as a fallback.
|
||
|
|
highlight = "RenderMarkdownLink",
|
||
|
|
-- Applies to WikiLink elements.
|
||
|
|
wiki = {
|
||
|
|
icon = " ",
|
||
|
|
body = function()
|
||
|
|
return nil
|
||
|
|
end,
|
||
|
|
highlight = "RenderMarkdownWikiLink",
|
||
|
|
},
|
||
|
|
-- Define custom destination patterns so icons can quickly inform you of what a link
|
||
|
|
-- contains. Applies to 'inline_link', 'uri_autolink', and wikilink nodes. When multiple
|
||
|
|
-- patterns match a link the one with the longer pattern is used.
|
||
|
|
-- The key is for healthcheck and to allow users to change its values, value type below.
|
||
|
|
-- | pattern | matched against the destination text |
|
||
|
|
-- | icon | gets inlined before the link text |
|
||
|
|
-- | kind | optional determines how pattern is checked |
|
||
|
|
-- | | pattern | @see :h lua-patterns, is the default if not set |
|
||
|
|
-- | | suffix | @see :h vim.endswith() |
|
||
|
|
-- | priority | optional used when multiple match, uses pattern length if empty |
|
||
|
|
-- | highlight | optional highlight for 'icon', uses fallback highlight if empty |
|
||
|
|
custom = {
|
||
|
|
web = { pattern = "^http", icon = " " },
|
||
|
|
github = { pattern = "github%.com", icon = " " },
|
||
|
|
gitlab = { pattern = "gitlab%.com", icon = " " },
|
||
|
|
stackoverflow = { pattern = "stackoverflow%.com", icon = " " },
|
||
|
|
wikipedia = { pattern = "wikipedia%.org", icon = " " },
|
||
|
|
youtube = { pattern = "youtube%.com", icon = " " },
|
||
|
|
},
|
||
|
|
},
|
||
|
|
callout = {
|
||
|
|
-- Callouts are a special instance of a 'block_quote' that start with a 'shortcut_link'.
|
||
|
|
-- The key is for healthcheck and to allow users to change its values, value type below.
|
||
|
|
-- | raw | matched against the raw text of a 'shortcut_link', case insensitive |
|
||
|
|
-- | rendered | replaces the 'raw' value when rendering |
|
||
|
|
-- | highlight | highlight for the 'rendered' text and quote markers |
|
||
|
|
-- | quote_icon | optional override for quote.icon value for individual callout |
|
||
|
|
-- | category | optional metadata useful for filtering |
|
||
|
|
|
||
|
|
note = { raw = "[!NOTE]", rendered = " Note", highlight = "RenderMarkdownInfo" },
|
||
|
|
tip = { raw = "[!TIP]", rendered = " Tip", highlight = "RenderMarkdownSuccess" },
|
||
|
|
important = { raw = "[!IMPORTANT]", rendered = " Important", highlight = "RenderMarkdownHint" },
|
||
|
|
warning = { raw = "[!WARNING]", rendered = " Warning", highlight = "RenderMarkdownWarn" },
|
||
|
|
caution = { raw = "[!CAUTION]", rendered = " Caution", highlight = "RenderMarkdownError" },
|
||
|
|
abstract = { raw = "[!ABSTRACT]", rendered = " Abstract", highlight = "RenderMarkdownInfo" },
|
||
|
|
summary = { raw = "[!SUMMARY]", rendered = " Summary", highlight = "RenderMarkdownInfo" },
|
||
|
|
tldr = { raw = "[!TLDR]", rendered = " Tldr", highlight = "RenderMarkdownInfo" },
|
||
|
|
info = { raw = "[!INFO]", rendered = " Info", highlight = "RenderMarkdownInfo" },
|
||
|
|
todo = { raw = "[!TODO]", rendered = " Todo", highlight = "RenderMarkdownInfo" },
|
||
|
|
hint = { raw = "[!HINT]", rendered = " Hint", highlight = "RenderMarkdownSuccess" },
|
||
|
|
success = { raw = "[!SUCCESS]", rendered = " Success", highlight = "RenderMarkdownSuccess" },
|
||
|
|
check = { raw = "[!CHECK]", rendered = " Check", highlight = "RenderMarkdownSuccess" },
|
||
|
|
done = { raw = "[!DONE]", rendered = " Done", highlight = "RenderMarkdownSuccess" },
|
||
|
|
question = { raw = "[!QUESTION]", rendered = " Question", highlight = "RenderMarkdownWarn" },
|
||
|
|
help = { raw = "[!HELP]", rendered = " Help", highlight = "RenderMarkdownWarn" },
|
||
|
|
faq = { raw = "[!FAQ]", rendered = " Faq", highlight = "RenderMarkdownWarn" },
|
||
|
|
attention = { raw = "[!ATTENTION]", rendered = " Attention", highlight = "RenderMarkdownWarn" },
|
||
|
|
failure = { raw = "[!FAILURE]", rendered = " Failure", highlight = "RenderMarkdownError" },
|
||
|
|
fail = { raw = "[!FAIL]", rendered = " Fail", highlight = "RenderMarkdownError" },
|
||
|
|
missing = { raw = "[!MISSING]", rendered = " Missing", highlight = "RenderMarkdownError" },
|
||
|
|
danger = { raw = "[!DANGER]", rendered = " Danger", highlight = "RenderMarkdownError" },
|
||
|
|
error = { raw = "[!ERROR]", rendered = " Error", highlight = "RenderMarkdownError" },
|
||
|
|
bug = { raw = "[!BUG]", rendered = " Bug", highlight = "RenderMarkdownError" },
|
||
|
|
example = { raw = "[!EXAMPLE]", rendered = " Example", highlight = "RenderMarkdownHint" },
|
||
|
|
quote = { raw = "[!QUOTE]", rendered = " Quote", highlight = "RenderMarkdownQuote" },
|
||
|
|
cite = { raw = "[!CITE]", rendered = " Cite", highlight = "RenderMarkdownQuote" },
|
||
|
|
},
|
||
|
|
checkbox = {
|
||
|
|
enabled = true,
|
||
|
|
render_modes = false,
|
||
|
|
bullet = false,
|
||
|
|
right_pad = 1,
|
||
|
|
unchecked = {
|
||
|
|
icon = " ",
|
||
|
|
highlight = "RenderMarkdownUnchecked",
|
||
|
|
scope_highlight = nil,
|
||
|
|
},
|
||
|
|
checked = {
|
||
|
|
icon = " ",
|
||
|
|
highlight = "RenderMarkdownChecked",
|
||
|
|
scope_highlight = nil,
|
||
|
|
},
|
||
|
|
custom = {
|
||
|
|
todo = { raw = "[-]", rendered = " ", highlight = "RenderMarkdownTodo", scope_highlight = nil },
|
||
|
|
},
|
||
|
|
},
|
||
|
|
bullet = {
|
||
|
|
enabled = true,
|
||
|
|
render_modes = false,
|
||
|
|
icons = { "●", "○", "◆", "◇" },
|
||
|
|
ordered_icons = function(ctx)
|
||
|
|
local value = vim.trim(ctx.value)
|
||
|
|
local index = tonumber(value:sub(1, #value - 1))
|
||
|
|
return ("%d."):format(index > 1 and index or ctx.index)
|
||
|
|
end,
|
||
|
|
left_pad = 0,
|
||
|
|
right_pad = 0,
|
||
|
|
highlight = "RenderMarkdownBullet",
|
||
|
|
scope_highlight = {},
|
||
|
|
},
|
||
|
|
quote = { icon = "▋" },
|
||
|
|
anti_conceal = {
|
||
|
|
enabled = true,
|
||
|
|
-- Which elements to always show, ignoring anti conceal behavior. Values can either be
|
||
|
|
-- booleans to fix the behavior or string lists representing modes where anti conceal
|
||
|
|
-- behavior will be ignored. Valid values are:
|
||
|
|
-- head_icon, head_background, head_border, code_language, code_background, code_border,
|
||
|
|
-- dash, bullet, check_icon, check_scope, quote, table_border, callout, link, sign
|
||
|
|
ignore = {
|
||
|
|
code_background = true,
|
||
|
|
sign = true,
|
||
|
|
},
|
||
|
|
above = 0,
|
||
|
|
below = 0,
|
||
|
|
},
|
||
|
|
})
|