markdowny

Crates.iomarkdowny
lib.rsmarkdowny
version0.5.0
sourcesrc
created_at2022-05-27 21:09:45.696295
updated_at2024-11-11 19:24:05.75407
descriptionMarkdown parser with focus on error reporting, and with support for hairy templates, HTML, HTML-attributes, HTML-spans, HTML-blocks specified in Markdown.
homepagehttps://www.bitpowder.com/libs/indigo/
repositoryhttps://gitlab.com/bitpowder/indigo-ng
max_upload_size
id595319
size154,058
Bernard van Gastel (bvgastel)

documentation

README

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 be listing/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,
})
Commit count: 1679

cargo fmt