gpt4 book ai didi

parsing - 你会如何解析 Markdown?

转载 作者:行者123 更新时间:2023-12-03 04:32:59 26 4
gpt4 key购买 nike

Edit: I recently learned about a project called CommonMark, which correctly identifies and deals with the ambiguities in the original Markdown specification. http://commonmark.org/ It has great C# library support.

您可以找到语法 here .

下载后的源代码写在 Perl 中,我无意尊重。它充满了正则表达式,并且依赖 MD5散列来转义某些字符。这有点不对劲!

我即将为 Markdown 硬编码一个解析器。这方面有什么经验?

如果你对 Markdown 的实际解析没有任何有意义的话可说,请饶过我。 (这可能听起来很刺耳,但是是的,我正在寻找洞察力,而不是解决方案,即第三方库)。

为了帮助解答,正则表达式旨在识别模式!不要解析整个语法。人们认为这样做是 foobar。

  • 如果您考虑一下 Markdown,它基本上是基于段落的概念。
  • 因此,合理的方法可能是将输入分成段落。
  • 段落有很多种,例如标题、文本、列表、 block 引用和代码。
  • 因此,挑战在于识别这些段落以及它们出现的上下文。

一旦我发现它值得分享,我会带着解决方案回来。

最佳答案

据我所知,唯一使用实际解析器的 Markdown 实现是 Jon MacFarleanepeg-markdownIts parser基于Parsing Expression Grammar解析器生成器名为 peg .

<小时/>

编辑:Mauricio Fernandez最近发布了他的Simple Markup Markdown parser ,这是他写的 OcsiBlog 的一部分博客引擎。因为解析器是写在 OCaml 中的,它极其简单且简短(parser 为 268 个 SLOC,HTML emitter 为 43 个 SLOC),但 blazingly fast (比 discount (用手工优化的 C 语言编写)快 20%,比 BlueCloth ( Ruby ) 快 600 倍),尽管事实上它甚至没有针对性能进行优化然而。由于它仅供 Mauricio 本人内部博客使用,因此与 official Markdown specification 存在一些偏差。 ,但 Mauricio 创建了 a branch which reverts most of those changes .

关于parsing - 你会如何解析 Markdown?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/605434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com