7 releases (4 breaking)
0.5.0 | Nov 11, 2024 |
---|---|
0.4.0 | May 3, 2024 |
0.3.0 | Dec 10, 2023 |
0.2.1 | Mar 25, 2023 |
0.1.1 | May 29, 2022 |
#807 in Parser implementations
137 downloads per month
610KB
13K
SLoC
markdowny
A Markdown parser with strict error handling, generating an AST that can be easily adjusted and converted to text or HTML. It supports some additional syntax:
- spans between
[
and]
; - divs without block elements (such as div and p) between
[[
and]]
; - divs with block elements (such as div and p) between
[[[
and]]]
; - literals between
[[[[
and]]]]
; - setting styles/classes/ids etc with
{#id; style: value; .classname}
. - HTML tags such as
div
with a newline after are assumed to contain block elements. HTML tags without a newline after are assumed to not contain block elements. !![description](image-src)
is a block level image (not wrapped in<p>
)
This library also has a resolve_markdown()
function that does a number of things:
- makes sections around headings (h1,h2,..), and make links to them;
- highlight source code (if
syntect
feature is enabled); - converts math to mathml (if
latex2mathml
feature is enabled); - creates figures (start blockquote with
figure_type #reference_key: caption
, figure type can belisting
/figure
/etc,#reference_key
can be used in links); - resolves section and figure counters (start headings and figures with
?
, if link body contains?
, replace by actual number).
Neovim LSP config
vim.api.nvim_create_autocmd('FileType', {
pattern = 'markdown',
callback = function(args)
vim.lsp.start({
cmd = { 'markdowny-lsp' },
name = 'markdowny',
})
end,
})
Dependencies
~2–11MB
~115K SLoC