-- 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, }, })