Github 使用什么库来解析 markdown?

问题描述 投票:0回答:3

Github“使用”github 风格的 markdown,但我无法找到它的确切含义。他们在客户端使用什么解析库来渲染预览?

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

如果你能给我指出一个资源,展示 github 风格的 markdown 和 commonmark 如何重叠以及它们如何不同,那就加分了。

github markdown github-flavored-markdown commonmark
3个回答
12
投票

给我指出一个资源,该资源展示了 github 风格的 markdown 和 commonmark 如何重叠以及它们有何不同。

现已(2017 年 3 月)正式记录:请参阅“GitHub Flavored Markdown 的正式规范

从今天开始,我们网站上托管的所有 Markdown 用户内容,包括用户评论、wiki 和存储库中的 .md 文件,都将按照 GitHub Flavored Markdown 的正式规范进行解析和呈现。

这在“GitHub Flavored Markdown 的正式规范”中有详细介绍

此正式规范基于 CommonMark,这是一个雄心勃勃的项目,旨在以反映其现实世界用法的方式正式指定互联网上许多网站使用的 Markdown 语法。
CommonMark 允许人们继续以一贯的方式使用 Markdown,同时为开发人员提供全面的规范和参考实现,以便在平台之间以一致的方式互操作和显示 Markdown。

想法是:

采用 CommonMark 规范并围绕它重新设计我们当前的用户内容堆栈并不是一件容易的事。
我们遇到的主要问题是规范(及其参考实现)严格关注原始 Perl 实现支持的 Markdown 公共子集。
这不包括 GitHub 上一直提供的一些扩展功能。最值得注意的是,缺少对表格、删除线、自动链接和任务列表的支持

为了完全指定我们在 GitHub 上使用的 Markdown 版本(称为 GFM),我们必须正式定义这些功能的语法和语义,这是我们以前从未做过的事情。 我们在现有 CommonMark 规范之上做到了这一点,特别注意确保我们的扩展是原始规范的严格且可选的超集


10
投票

标记是“我们[Github]用来呈现README.your_favorite_markup的代码”。他们将 Redcarpet 列为 Markdown 库。反过来,这使用了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 扩展记录在他们的掌握 Markdown 指南中


0
投票

解析库

cmark-gfm 库和工具是 GitHub 的 cmark 分支,似乎得到了积极维护并与 GitHub.com 的行为相匹配,所以我认为这就是他们截至 2023 年所使用的。

您可能需要使用

-e
选项激活扩展才能获取所有 GitHub 功能。要获取扩展列表,请运行
make && ./build/src/cmark-gfm --list-extensions

文档

GitHub Flavored Markdown 有一个规范,尽管它似乎已经过时了——例如,它没有指定脚注的语法(于 2021 年添加,#64)。

因此,我建议 GitHub 的文档是最好的最新来源。另请注意左侧边栏中“使用高级格式”下的许多部分。

© www.soinside.com 2019 - 2024. All rights reserved.