GitHub狠狠地砸了Markdown

我的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,在订购的子列表中,十进制数字自动变成罗马数字。

我找到了问题的原因。 这是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规范构建于CommonMark规范之上。

正如Tommi Kaikkonen在他的回答中所提到的那样,有序列表是由于666后面的点。请参阅GFM规范第5.2节。

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

- 666. ha.

(正如ForNeVeR的答案中明确所示)

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


Mike Lippert评论道:

该列表中的第一个元素,因此它应该显示为i不是dclxvi
减价有序列表会忽略实际使用的数字和序号,我还没有看到改变这种情况的方法。

但是,否:它显示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
}

用反斜杠逃避期限,你应该看到正确的输出。


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

而且你似乎已经用不完美的方式解决了它,用你的文字替换你的文字

- `666`. ha.

有一个常见的技巧就是在数字后面加点,以使其看起来像普通文本(而不是有序列表标签):

- 666. ha. (this will render as you probably want)
链接地址: http://www.djcxy.com/p/3423.html

上一篇: GitHub satanically messing with Markdown

下一篇: out" (add comment) in a batch/cmd?