Github使用什么库来解析Markdown?

17

Github使用Github风格的markdown,但我无法找到确切的含义。他们在客户端上用哪个解析库来呈现预览?

是否对*.md文件、问题和wiki页面使用相同的库?

如果您能指向一个资源,展示Github风格markdown和commonmark的重叠和区别,则额外加分。

2个回答

12
请指向一个资源,展示github flavored markdown和commonmark的重叠和区别。这现在(2017年3月)已经正式记录在案:参见“GitHub Flavored Markdown的正式规范”。
从今天开始,我们网站上托管的所有Markdown用户内容,包括用户评论、维基和存储库中的.md文件,都将遵循一个GitHub Flavored Markdown的正式规范进行解析和渲染。
这一点在“GitHub Flavored Markdown的正式规范”中有详细说明。
这份正式规范基于“CommonMark”,一个旨在以反映现实使用情况的方式来正式规定许多互联网网站使用的Markdown语法的雄心勃勃的项目。
CommonMark允许人们继续像以前一样使用Markdown,同时为开发人员提供全面的规范和参考实现,以在不同平台之间交互和显示Markdown时保持一致性。

这个想法是:

采用CommonMark规范并对我们当前的用户内容栈进行重新设计并不是一项微不足道的工作。我们遇到的主要问题是该规范(以及因此产生的参考实现)严格关注Markdown原始Perl实现支持的公共子集。这不包括GitHub一直可用的某些扩展功能,最明显的是缺乏对表格、删除线、自动链接和任务列表的支持。为了完全指定我们在GitHub中使用的Markdown版本(称为GFM),我们必须正式定义这些功能的语法和语义,这是我们以前从未做过的事情。我们在现有的CommonMark规范之上完成了这个过程,特别注意确保我们的扩展是原始规范的严格和可选超集。

10

Markup是GitHub使用的代码,用于渲染README文件。他们列出Redcarpet作为Markdown的库。Redcarpet又使用了Sundown。我不确定这是否适用于整个网站。

它还声称具有“大量扩展支持”。

Sundown可以选择支持几种(非官方)Markdown扩展,例如非严格强调、围栏代码块、表格、自动链接、删除线等。

要获取完整详细信息,您可能需要深入研究这些库。

如果您能指向一个资源,显示GitHub风格的Markdown和CommonMark重叠以及它们的区别,那就更好了。

Sundown声称与Markdown v1.0.0和v1.0.3“完全符合标准”,但是我找不到这些版本。只有v1.0.1CommonMark 0.26。

Sundown通过开箱即用的官方Markdown v1.0.0和v1.0.3测试套件,并经过了广泛测试,以确保其输出始终尽可能健康。

GitHub Markdown扩展在他们的Mastering Markdown指南中有文档化


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接