#markdown-parser #markdown #markdown-syntax #markdown-html #error-reporting #mathml #ast

bin+lib markdowny

支持复杂模板、HTML、HTML属性、Markdown中指定的HTML跨度、HTML块。侧重于错误报告,因此Markdown错误会进行报告

6 个版本 (3 个重大更新)

0.4.0 2024年5月3日
0.3.0 2023年12月10日
0.2.1 2023年3月25日
0.1.2 2022年6月18日
0.1.1 2022年5月29日

#1088解析实现

每月37次 下载

Apache-2.0

565KB
12K SLoC

markdowny

A Markdown 解析器,生成可以轻松调整并转换为文本或 HTML 的 AST。它支持一些额外的语法

  • 跨度在 [] 之间;
  • 没有块元素(如 div 和 p)的 div 在 [[]] 之间;
  • 有块元素(如 div 和 p)的 div 在 [[[]]] 之间;
  • [[[[]]]] 之间的是字面量;
  • 使用 {#id; style: value; .classname} 设置样式/类/ID 等。

此库还具有一个 resolve_markdown() 函数,它执行多个操作

  • 在标题(h1,h2,..)周围创建部分,并创建到它们的链接;
  • 突出显示源代码(如果启用了 syntect 功能);
  • 将数学转换为 mathml(如果启用了 latex2mathml 功能);
  • 创建图像(以 figure_type #reference_key: caption 开头的引用块,图像类型可以是 listing/figure/等,#reference_key 可用于链接);
  • 解析部分和图像计数器(以 ? 开始标题和图像,如果链接体包含 ?,则替换为实际数字)。

依赖关系

~2–10MB
~87K SLoC