-
Notifications
You must be signed in to change notification settings - Fork 96
Markdown inline
--- Configuration for inline markdown. ---@class markview.config.markdown_inline --- ---@field enable boolean Enable **inline markdown** rendering. --- ---@field block_references markview.config.markdown_inline.block_refs Block reference link configuration. ---@field checkboxes markview.config.markdown_inline.checkboxes Checkbox configuration. ---@field emails markview.config.markdown_inline.emails Email link configuration. ---@field embed_files markview.config.markdown_inline.embed_files Embed file link configuration. ---@field emoji_shorthands markview.config.markdown_inline.emojis Github styled emoji shorthands. ---@field entities markview.config.markdown_inline.entities HTML entities configuration. ---@field escapes markview.config.markdown_inline.escapes Escaped characters configuration. ---@field footnotes markview.config.markdown_inline.footnotes Footnotes configuration. ---@field highlights markview.config.markdown_inline.highlights Highlighted text configuration. ---@field hyperlinks markview.config.markdown_inline.hyperlinks Hyperlink configuration. ---@field images markview.config.markdown_inline.images Image link configuration. ---@field inline_codes markview.config.markdown_inline.inline_codes Inline code/code span configuration. ---@field internal_links markview.config.markdown_inline.internal_links Internal link configuration. ---@field uri_autolinks markview.config.markdown_inline.uri_autolinks URI autolink configuration. ---@field tags markview.config.markdown_inline.tags Obsidian-style tags configuration.
Enables preview of inline elements in markdown.
--- Configuration for block reference links. ---@class markview.config.markdown_inline.block_refs --- ---@field enable boolean Enable rendering of block references. --- ---@field default markview.config.__inline Default configuration for block reference links. ---@field [string] markview.config.__inline Configuration for block references whose label matches with the key's pattern.
Changes how block references look.
block_references = { enable = true, default = { icon = " ", hl = "MarkviewPalette6Fg", file_hl = "MarkviewPalette0Fg", }, },
--- Configuration for checkboxes. ---@class markview.config.markdown_inline.checkboxes --- ---@field enable boolean Enable rendering of checkboxes. --- ---@field checked markview.config.markdown_inline.checkboxes.opts Configuration for `[x]` & `[X]`. ---@field unchecked markview.config.markdown_inline.checkboxes.opts Configuration for `[ ]`. --- ---@field [string] markview.config.markdown_inline.checkboxes.opts Configuration for `[string]` checkbox.
Changes how checkboxes look.
checkboxes = { enable = true, checked = { text = "", hl = "MarkviewCheckboxChecked", scope_hl = "MarkviewCheckboxChecked" }, unchecked = { text = "", hl = "MarkviewCheckboxUnchecked", scope_hl = "MarkviewCheckboxUnchecked" }, ["/"] = { text = "", hl = "MarkviewCheckboxPending" }, [">"] = { text = "", hl = "MarkviewCheckboxCancelled" }, ["<"] = { text = "", hl = "MarkviewCheckboxCancelled" }, ["-"] = { text = "", hl = "MarkviewCheckboxCancelled", scope_hl = "MarkviewCheckboxStriked" }, ["?"] = { text = "", hl = "MarkviewCheckboxPending" }, ["!"] = { text = "", hl = "MarkviewCheckboxUnchecked" }, ["*"] = { text = "", hl = "MarkviewCheckboxPending" }, ['"'] = { text = "", hl = "MarkviewCheckboxCancelled" }, ["l"] = { text = "", hl = "MarkviewCheckboxProgress" }, ["b"] = { text = "", hl = "MarkviewCheckboxProgress" }, ["i"] = { text = "", hl = "MarkviewCheckboxChecked" }, ["S"] = { text = "", hl = "MarkviewCheckboxChecked" }, ["I"] = { text = "", hl = "MarkviewCheckboxPending" }, ["p"] = { text = "", hl = "MarkviewCheckboxChecked" }, ["c"] = { text = "", hl = "MarkviewCheckboxUnchecked" }, ["f"] = { text = "", hl = "MarkviewCheckboxUnchecked" }, ["k"] = { text = "", hl = "MarkviewCheckboxPending" }, ["w"] = { text = "", hl = "MarkviewCheckboxProgress" }, ["u"] = { text = "", hl = "MarkviewCheckboxChecked" }, ["d"] = { text = "", hl = "MarkviewCheckboxUnchecked" }, },
Each checkbox has the following options.
---@class markview.config.markdown_inline.checkboxes.opts --- ---@field text string Text used to replace `[]` part. ---@field hl? string Highlight group for `text`. ---@field scope_hl? string Highlight group for the list item.
Each checkbox has the following options.
--- Configuration for inline codes. ---@alias markview.config.markdown_inline.inline_codes markview.config.__inline
Changes how inline codes are shown.
inline_codes = { enable = true, hl = "MarkviewInlineCode", padding_left = " ", padding_right = " " },
Tip
You can set inline_codes.virtual = true to add a mask to the text.
This allows using them on lines that have a line highlight(e.g. headings).
This will be enabled if the line is in a heading regardless of what you set.
--- Configuration for emails. ---@class markview.config.markdown_inline.emails --- ---@field enable boolean Enable rendering of Emails. --- ---@field default markview.config.markdown_inline.emails.opts Default configuration for emails ---@field [string] markview.config.markdown_inline.emails.opts Configuration for emails whose label(address) matches `string`.
Changes how emails are shown.
emails = { enable = true, default = { icon = " ", hl = "MarkviewEmail" }, ["%@gmail%.com$"] = { --- user@gmail.com icon = " ", hl = "MarkviewPalette0Fg" }, ["%@outlook%.com$"] = { --- user@outlook.com icon = " ", hl = "MarkviewPalette5Fg" }, ["%@yahoo%.com$"] = { --- user@yahoo.com icon = " ", hl = "MarkviewPalette6Fg" }, ["%@icloud%.com$"] = { --- user@icloud.com icon = " ", hl = "MarkviewPalette6Fg" } },
Each emails have these options.
--[[ Options for a specific email type. ]] ---@alias markview.config.markdown_inline.emails.opts markview.config.__inline
--- Configuration for obsidian's embed files. ---@class markview.config.markdown_inline.embed_files --- ---@field enable boolean Enable rendering of Embed files. --- ---@field default markview.config.markdown_inline.embed_files.opts Default configuration for embed file links. ---@field [string] markview.config.markdown_inline.embed_files.opts Configuration for embed file links whose label matches `string`.
Changes how embed file links are shown.
embed_files = { enable = true, default = { icon = " ", hl = "MarkviewPalette7Fg" } },
Each embed file types have these options.
--[[ Options for a specific embed file type. ]] ---@alias markview.config.markdown_inline.embed_files.opts markview.config.__inline
--- Configuration for Github-styled emoji shorthands. ---@class markview.config.markdown_inline.emojis --- ---@field enable boolean Enable rendering of emoji shorthands. ---@field hl? string Highlight group for the emoji.
Changes how github emojis are shown.
emoji_shorthands = { enable = true },
--- Configuration for HTML entities. ---@class markview.config.markdown_inline.entities --- ---@field enable boolean Enable rendering of HTML entities. ---@field hl? string Highlight group for the symbol.
Changes how entities are shown.
entities = { enable = true, hl = "Special" },
--- Configuration for escaped characters. ---@class markview.config.markdown_inline.escapes --- ---@field enable boolean Enable rendering of escaped characters.
Changes how escaped characters are shown.
escapes = { enable = true },
--- Configuration for footnotes. ---@class markview.config.markdown_inline.footnotes --- ---@field enable boolean Enable rendering of footnotes. --- ---@field default markview.config.markdown_inline.footnotes.opts Default configuration for footnotes. ---@field [string] markview.config.markdown_inline.footnotes.opts Configuration for footnotes whose label matches `string`.
Changes how footnotes are shown.
footnotes = { enable = true, default = { icon = " ", hl = "MarkviewHyperlink" }, ["^%d+$"] = { --- Numbered footnotes. icon = " ", hl = "MarkviewPalette4Fg" } },
Each footnote type has the following options.
--[[ Options for a specific footnote type. ]] ---@alias markview.config.markdown_inline.footnotes.opts markview.config.__inline
--- Configuration for Obsidian-style highlighted texts. ---@class markview.config.markdown_inline.highlights --- ---@field enable boolean Enable rendering of highlighted text. --- ---@field default markview.config.markdown_inline.highlights.opts Default configuration for highlighted text. ---@field [string] markview.config.markdown_inline.highlights.opts Configuration for highlighted text that matches `string`.
Changes how highlights are shown.
highlights = { enable = true, default = { padding_left = " ", padding_right = " ", hl = "MarkviewPalette3" } },
Each highlights type has the following options.
--[[ Options for a specific footnote type. ]] ---@alias markview.config.markdown_inline.highlights.opts markview.config.__inline
--- Configuration for hyperlinks. ---@class markview.config.markdown_inline.hyperlinks --- ---@field enable boolean Enable rendering of hyperlink. --- ---@field default markview.config.markdown_inline.hyperlinks.opts Default configuration for hyperlinks. ---@field [string] markview.config.markdown_inline.hyperlinks.opts Configuration for links whose description matches `string`.
Changes how footnotes are shown.
hyperlinks = { enable = true, default = { icon = " ", hl = "MarkviewHyperlink", }, ["github%.com/[%a%d%-%_%.]+%/?$"] = { --- github.com/<user> icon = " ", hl = "MarkviewPalette0Fg" }, ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/?$"] = { --- github.com/<user>/<repo> icon = " ", hl = "MarkviewPalette0Fg" }, ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+/tree/[%a%d%-%_%.]+%/?$"] = { --- github.com/<user>/<repo>/tree/<branch> icon = " ", hl = "MarkviewPalette0Fg" }, ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+/commits/[%a%d%-%_%.]+%/?$"] = { --- github.com/<user>/<repo>/commits/<branch> icon = " ", hl = "MarkviewPalette0Fg" }, ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/releases$"] = { --- github.com/<user>/<repo>/releases icon = " ", hl = "MarkviewPalette0Fg" }, ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/tags$"] = { --- github.com/<user>/<repo>/tags icon = " ", hl = "MarkviewPalette0Fg" }, ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/issues$"] = { --- github.com/<user>/<repo>/issues icon = " ", hl = "MarkviewPalette0Fg" }, ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/pulls$"] = { --- github.com/<user>/<repo>/pulls icon = " ", hl = "MarkviewPalette0Fg" }, ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/wiki$"] = { --- github.com/<user>/<repo>/wiki icon = " ", hl = "MarkviewPalette0Fg" }, ["developer%.mozilla%.org"] = { priority = -9999, icon = " ", hl = "MarkviewPalette5Fg" }, ["w3schools%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette4Fg" }, ["stackoverflow%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette2Fg" }, ["reddit%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette2Fg" }, ["github%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette6Fg" }, ["gitlab%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette2Fg" }, ["dev%.to"] = { priority = -9999, icon = " ", hl = "MarkviewPalette0Fg" }, ["codepen%.io"] = { priority = -9999, icon = " ", hl = "MarkviewPalette6Fg" }, ["replit%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette2Fg" }, ["jsfiddle%.net"] = { priority = -9999, icon = " ", hl = "MarkviewPalette5Fg" }, ["npmjs%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette0Fg" }, ["pypi%.org"] = { priority = -9999, icon = " ", hl = "MarkviewPalette0Fg" }, ["mvnrepository%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette1Fg" }, ["medium%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette6Fg" }, ["linkedin%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette5Fg" }, ["news%.ycombinator%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette2Fg" }, },
Each hyperlinks type has the following options.
--[[ Options for a specific hyperlink type. ]] ---@alias markview.config.markdown_inline.hyperlinks.opts markview.config.__inline
--- Configuration for image links. ---@class markview.config.markdown_inline.images --- ---@field enable boolean Enable rendering of image links --- ---@field default markview.config.markdown_inline.images.opts Default configuration for image links ---@field [string] markview.config.markdown_inline.images.opts Configuration image links whose description matches `string`.
Changes how images are shown.
images = { enable = true, default = { icon = " ", hl = "MarkviewImage", }, ["%.svg$"] = { icon = " " }, ["%.png$"] = { icon = " " }, ["%.jpg$"] = { icon = " " }, ["%.gif$"] = { icon = " " }, ["%.pdf$"] = { icon = " " } },
Each highlights type has the following options.
--[[ Options for a specific image link type. ]] ---@alias markview.config.markdown_inline.images.opts markview.config.__inline
--- Configuration for obsidian's internal links. ---@class markview.config.markdown_inline.internal_links --- ---@field enable boolean Enable rendering of internal links. --- ---@field default markview.config.markdown_inline.internal_links.opts Default configuration for internal links. ---@field [string] markview.config.markdown_inline.internal_links.opts Configuration for internal links whose label match `string`.
Changes how internal links are shown.
internal_links = { enable = true, default = { icon = " ", hl = "MarkviewPalette7Fg", }, },
Each internal link type has the following options.
--[[ Options for a specific internal link type. ]] ---@alias markview.config.markdown_inline.internal_links.opts markview.config.__inline
--- Configuration for URI autolinks. ---@class markview.config.markdown_inline.uri_autolinks --- ---@field enable boolean Enable rendering of URI autolinks. --- ---@field default markview.config.markdown_inline.uri_autolinks.opts Default configuration for URI autolinks. ---@field [string] markview.config.markdown_inline.uri_autolinks.opts Configuration for URI autolinks whose label match `string`.
Changes how uri autolinks look.
uri_autolinks = { enable = true, default = { icon = " ", hl = "MarkviewEmail" }, ["github%.com/[%a%d%-%_%.]+%/?$"] = { --- github.com/<user> icon = " ", hl = "MarkviewPalette0Fg" }, ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/?$"] = { --- github.com/<user>/<repo> icon = " ", hl = "MarkviewPalette0Fg" }, ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+/tree/[%a%d%-%_%.]+%/?$"] = { --- github.com/<user>/<repo>/tree/<branch> icon = " ", hl = "MarkviewPalette0Fg" }, ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+/commits/[%a%d%-%_%.]+%/?$"] = { --- github.com/<user>/<repo>/commits/<branch> icon = " ", hl = "MarkviewPalette0Fg" }, ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/releases$"] = { --- github.com/<user>/<repo>/releases icon = " ", hl = "MarkviewPalette0Fg" }, ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/tags$"] = { --- github.com/<user>/<repo>/tags icon = " ", hl = "MarkviewPalette0Fg" }, ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/issues$"] = { --- github.com/<user>/<repo>/issues icon = " ", hl = "MarkviewPalette0Fg" }, ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/pulls$"] = { --- github.com/<user>/<repo>/pulls icon = " ", hl = "MarkviewPalette0Fg" }, ["github%.com/[%a%d%-%_%.]+/[%a%d%-%_%.]+%/wiki$"] = { --- github.com/<user>/<repo>/wiki icon = " ", hl = "MarkviewPalette0Fg" }, ["developer%.mozilla%.org"] = { priority = -9999, icon = " ", hl = "MarkviewPalette5Fg" }, ["w3schools%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette4Fg" }, ["stackoverflow%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette2Fg" }, ["reddit%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette2Fg" }, ["github%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette6Fg" }, ["gitlab%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette2Fg" }, ["dev%.to"] = { priority = -9999, icon = " ", hl = "MarkviewPalette0Fg" }, ["codepen%.io"] = { priority = -9999, icon = " ", hl = "MarkviewPalette6Fg" }, ["replit%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette2Fg" }, ["jsfiddle%.net"] = { priority = -9999, icon = " ", hl = "MarkviewPalette5Fg" }, ["npmjs%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette0Fg" }, ["pypi%.org"] = { priority = -9999, icon = " ", hl = "MarkviewPalette0Fg" }, ["mvnrepository%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette1Fg" }, ["medium%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette6Fg" }, ["linkedin%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette5Fg" }, ["news%.ycombinator%.com"] = { priority = -9999, icon = " ", hl = "MarkviewPalette2Fg" }, },
Each uri autolinks type has the following options.
--[[ Options for a specific URI autolink type. ]] ---@alias markview.config.markdown_inline.uri_autolinks.opts markview.config.__inline
--- Configuration for emails. ---@class markview.config.markdown_inline.tags --- ---@field enable boolean Enable rendering of Obsidian-style tags. --- ---@field default markview.config.markdown_inline.tags.opts Default configuration for tags. ---@field [string] markview.config.markdown_inline.tags.opts Configuration for emails whose name(text after `#`) matches `string`.
Changes how #tags are shown.
require("markview.config.markdown_inline").tags = { default = { hl = "MarkviewPalette7", padding_left = " ", padding_right = " " }, enable = true }
Each tag type has the following options.
--[[ Options for a specific email type. ]] ---@alias markview.config.markdown_inline.tags.opts markview.config.__inline