GitHub狠狠地砸了Markdown – 把666改成DCLXVI

我的GitHub仓库里只有一个自述文件。 在这个自述中,我在本地写道:

Factoids: - There are about six different ways to do everything in Forked. - There are actually six different ways to enter loops. - There are six directionals and six I/O commands. - 666. ha. 

强调最后一行。 GitHub决定展示的不是 666

dclxvi

DCLXVI是666的罗马数字。

这真的让我失望。 我的本地文件和原始文件都显示666

GitHub在做什么,为什么没有编号的列表上的缩进会搞砸? 这是一个复活节彩蛋,还是一些撒旦虫?

这似乎跟随github /标记问题991 ,在有序的子列表上,十进制数字自动变成罗马数字。

我find了问题的原因。 这是CSS

这是嵌套有序列表在HTML中呈现的预期方式。

这不是在HTML中预期的。 https://jsfiddle.net/tf5jtv8s

我们不对默认的HTML行为进行任何修改。

 ol ol,ul ol{list-style-type:lower-roman} 

我不知道的CSS,但我的理解是,这是问题的原因。 我可以通过禁用CSS来获得预期的结果。 (我从我的手机,所以我不能使用浏览器检查器)

正如“ GitHub Flavored Markdown的正式规范 ”中所提到的,GitHub markdown规范GFM:GitHub Flavored Markdown规范是build立在CommonMark规范之上的。

正如Tommi Kaikkonen在他的回答中提到的那样,有序的列表是由于666的点号。见GFM Spec 5.2节 。

如第6.1节所述 ,任何ASCII标点符号都可能被反斜线转义,以避免此问题。
这意味着:

 - 666\. ha. 

(正如ForNeVeR的答案中明确表示的那样 )

这就是为什么666号码在GitHub README标记中被改为罗马数字的原因。


Mike Lippert评论道:

该列表中的第一个元素,所以它应该显示为i不是dclxvi
降价sorting列表忽略实际使用的数字和序号,我还没有看到一种方法来改变这一点。

但是,否:显示dclxvi ,因为生成的html代码是<ol start="666"> ,与GFM规范一致:

如果列表项目是有序的,那么它也被分配一个起始号码,根据有序列表标记“

(这里“ 666 ”是有序列表标记)

迈克补充说:

@VonC对于其他人来说,这是VonC的doc链接中另一个有用的摘录:

“有序列表的起始号由其初始列表项的列表号确定,后续列表项的号码被忽略。”


另外,为什么间距搞砸了? 我没有听到你的答案

您在无序列表项目 <li>获得有序列表<ol> <li>

 <ul> <li> <ol start="666"> <li>ha.</li> </ol> </li> </ul> 

GitHub CSS规则包括:

 .markdown-body ol { padding-left: 2em; } 

如果你把3em ,你会得到
正确的填充
代替
错误的填充

666之后添加句点使其成为有序列表标记 。

GitHub声明使用罗马数字呈现有序列表标记的CSS:

 ol ol,ul ol { list-style-type: lower-roman } 

用反斜杠转义期间,你应该看到正确的输出。

虽然其他答案很好解释了为什么你有这个问题,他们还没有给你一个如何解决这个问题的确切例子。

而且你似乎已经用不完美的方式解决了这个问题 ,用你的文本replace

 - `666`. ha. 

有一个常见的技巧,让数字看起来像一个正常的文本(而不是一个有序的列表标签)后逃避点:

 - 666\. ha. (this will render as you probably want)