首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Markdig解析Markdown以按类型获取部件

用Markdig解析Markdown以按类型获取部件
EN

Stack Overflow用户
提问于 2022-02-21 09:15:54
回答 1查看 917关注 0票数 0

在一个旧的项目中,我们使用Microsoft.Toolkit.Parsers.Markdown来解析Markdown内容。

例如,我们使用这个库获取MD块中的标题列表,如下所示:

代码语言:javascript
运行
复制
void Main()
{

    string md = @"
# h1
## h2

Some content.

## h2 bis

some other content
    ";

    var headings = GetHeadings(md);
    headings.Dump();
}

// You can define other methods, fields, classes and namespaces here

private List<string> GetHeadings(string markdownContent)
{
    var document = new Microsoft.Toolkit.Parsers.Markdown.MarkdownDocument();
    document.Parse(markdownContent);

    return document.Blocks
        .Where(block => block.Type == MarkdownBlockType.Header)
        .Select(block => block.ToString()).ToList();
}

现在,我们正在将整个项目移植到一个更新的版本。Microsoft.Toolkit.Parsers.Markdown现在已经不受欢迎了,微软建议改用MarkDig

有没有一种方法可以像我们使用Toolkit库那样解析MD文本并检索不同的块?

如果没有,我可以使用哪些其他库来实现相同的结果?

EN

Stack Overflow用户

回答已采纳

发布于 2022-02-21 11:15:19

正如电子报警器在对这个问题的评论中所建议的那样,这个问题可以这样解决:

代码语言:javascript
运行
复制
var document = Markdown.Parse(markdownContent);

return document.Select(b => b as HeadingBlock)
                .Where(b => b != null)
                .Select(hb => hb.Inline.FirstChild.ToString());

我所缺少的部分是MarkdownDocument对象本身就是块的集合。相反,要使用Microsoft.Toolkit.Parsers.Markdown.MarkdownDocument,检索块,需要访问Blocks属性。

更多细节关于源代码

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71203767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档