【发布时间】:2019-11-06 23:40:17
【问题描述】:
前奏
在GFM spec中是这样说的:
本文档是从文本文件
spec.txt生成的,该文件是用 Markdown 编写的,带有一个用于并行测试的小扩展名。脚本tools/makespec.py可用于将spec.txt转换为HTML 或CommonMark(然后可以转换为其他格式)。
我无法找到包含这些文件的公共存储库,但可以在同一网站下找到 spec.txt
目录作为规范本身。这不是我的主要问题,但如果有人能指出一个正式维护这些文件的存储库,我会很高兴。
主要假设
根据上面的引用,我假设spec.txt 中的所有代码,除了专门用于并行测试的代码之外,都是合法的 GFM。
主要问题
在spec.txt中,有如下代码:
## Characters and lines
Any sequence of [characters] is a valid CommonMark
document.
A [character](@) is a Unicode code point. Although some
code points (for example, combining accents) do not correspond to
characters in an intuitive sense, all code points count as characters
for purposes of this spec.
在rendered spec 中,链接[characters] 以及链接[character](@) 已转换为此交叉引用链接:
https://github.github.com/gfm/#character
此语法是否在 GFM 中实现交叉引用(又名锚点)?有一个 popular question about such a feature 表明不存在交叉引用的纯 Markdown 解决方案 - 但是,如果在解析 spec.txt 的解析器中实现了这种基于 (@) 的语法,为什么规范中没有指定它?
【问题讨论】:
-
Github 在 github/cmark-gfm 托管了 Commonmark 扩展版本的代码。有趣的是,该回购的Issue #93 引起了人们的担忧,即github.github.com/gfm 的内容没有公开回购。但是,
github/cmark-gfm存储库中有 spec.txt 的副本。 -
我刚刚检查过,commonmark/cmark 的非扩展 Commonmark 实现也包含与spec.txt 相同的语法。因此,这不是 GFM 特有的,而是通用的通用标记。
标签: markdown github-flavored-markdown