Skip to content

CYJB/Cyjb.Markdown

Repository files navigation

Cyjb.Markdown

codecov

提供 Markdown 的解析和 HTML 渲染能力,基于 .NET 6。

使用方法

可以解析任意 Markdown 字符串

using Cyjb.Markdown;
using Cyjb.Markdown.Renderer;

// 将 Markdown 字符串解析成语法树。
Document doc = Document.Parse("This is a **markdown**");

// 将语法树渲染成 HTML 字符串。
HtmlRenderer renderer = new();
doc.Accept(renderer);
Console.WriteLine(renderer);
// <p>This is a <strong>markdown</strong></p>

可以通过 Document.Parse 方法的 options 参数指定需要使用的 Markdown 特性,所有支持的 Markdown 特性参见下文。

可以利用 SyntaxVisitor 遍历 Markdown 语法树,提供定制的逻辑。

支持的 Markdown 特性

  • 支持完整的 CommonMark 0.31.2,具体请参见这里
  • 支持部分 GitHub Flavored Markdown (GFM),具体包括:
  • 支持额外的列表样式:a. itemi. itemα. item,具体规范请参见这里
  • 支持数学公式:$ $$$ $$,具体规范请参见这里
  • 支持为标题、代码块、链接和图片添加属性:{#id .class key=value},具体规范请参见这里
  • 支持为标题自动生成标识符,具体规范请参见这里
  • 支持直接将标题内容作为链接标签使用,具体规范请参见这里
  • 支持自定义容器::::detail :::,具体规范请参见这里

其它的建议用法

  • 下标:<sub> </sub>
  • 上标:<sup> </sup>
  • 下划线:<u> </u>

Markdown 解析用到了由 Cyjb.Compilers.Design 在设计时生成的词法分析器,因此预计不会提供运行时扩展 Markdown 特性的能力。

详细的类库文档,请参见 Wiki

欢迎访问我的博客获取更多信息。

参考