我的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是罗马数字,代表666。

这真的吓到我了。我的本地文件和原始文件都显示666。

GitHub在做什么,为什么没有编号的列表上的缩进搞砸了?这是彩蛋,还是邪恶的虫子?


当前回答

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

看起来你已经用一种不完美的方式解决了这个问题,用

- `666`. ha.

有一个常见的技巧来转义数字后面的点,使它看起来像一个正常的文本(而不是一个有序的列表标签):

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

其他回答

这似乎是紧随其后的github/标记问题991,其中有序子列表,十进制数字自动转换为罗马数字。

我已经找到问题的原因了。它是CSS 这是预期的嵌套有序列表在HTML中呈现的方式。 这在HTML中是不需要的。https://jsfiddle.net/tf5jtv8s 我们不对默认的HTML行为进行任何修改。 Ol Ol,ul Ol {list-style-type:lower-roman} 我不知道CSS,但我的理解是,这是问题的原因。我可以通过禁用CSS得到预期的结果。(我从我的手机,所以我不能使用浏览器检查器)

正如在“GitHub调味Markdown的正式规范”中提到的,GitHub降价规范GFM: GitHub调味Markdown spec是建立在CommonMark spec之上的。

正如Tommi Kaikkonen在他的回答中提到的,有序列表是因为666后面的点。参见GFM Spec第5.2节。

正如第6.1节中提到的,为了避免这个问题,任何ASCII标点字符都可以被反斜杠转义。 这意味着:

- 666\. ha.

(这在ForNeVeR的回答中明确显示)

这就是为什么666数字在GitHub README markdown中被更改为罗马数字。


Mike Lippert评论道:

列表中的第一个元素,所以它应该显示为I而不是dclxvi。 Markdown有序列表忽略了实际使用的数字和按顺序的数字,我还没有看到改变这一点的方法。

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

如果列表项是有序的,那么它也被分配一个开始编号,基于有序的列表标记“

(这里,'666'是有序列表标记)

迈克补充道:

@VonC对于其他人来说,这里有另一个来自VonC文档链接的有用摘录: 有序列表的开始编号由其初始列表项的列表编号决定。后续列表项的数量被忽略。”


还有,为什么空格是乱的?从你的回答中我没听出来

你在一个无序列表项<li>中得到一个有序列表<ol>:

<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
}

使用反斜杠转义句点,您应该会看到正确的输出。

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

看起来你已经用一种不完美的方式解决了这个问题,用

- `666`. ha.

有一个常见的技巧来转义数字后面的点,使它看起来像一个正常的文本(而不是一个有序的列表标签):

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