GitHub在Markdown上乱哄哄 - 将666更改为DCLXVI

MD *_* XF 718 markdown github

我的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.
Run Code Online (Sandbox Code Playgroud)

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

dclxvi

DCLXVI666的罗马数字.

这真的让我感到沮丧.我的本地文件和原始文件都显示666.

什么是GitHub,为什么未编号列表上的缩进搞乱了?这是一个复活节彩蛋,还是一些撒旦虫?

Von*_*onC 472

这似乎是github/markup issue 991,其中在有序子列表中,十进制数字自动变成罗马数字.

我找到了问题的原因.这是CSS

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

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

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

ol ol,ul ol{list-style-type:lower-roman}
Run Code Online (Sandbox Code Playgroud)

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

正如" GitHub Flavored Markdown的正式规范 "中所提到的,GitHub降价规格GFM:GitHub Flavored Markdown Spec建立在CommonMark Spec之上 .

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

6.1节所述,任何ASCII标点字符都可以进行反斜杠转义,以避免此问题.
这意味着:

- 666\. ha.
Run Code Online (Sandbox Code Playgroud)

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

这就是为什么666在GitHub README降价中将该数字更改为罗马数字的原因.


Mike Lippert评论道:

该列表中的第一个元素,因此它应该显示为idclxvi.
Markdown有序列表忽略了实际使用的数字和顺序编号,我还没有看到改变它的方法.

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

如果订购了列表项,则还会根据有序列表标记为其分配一个起始编号"

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

迈克补充说:

@VonC对于其他任何人来说,这是VonC文档链接的另一个有用的摘录:

"有序列表的起始编号由其初始列表项的列表编号确定.后续列表项的编号将被忽略."


另外,为什么间距搞砸了?在你的回答中,我没有注意到这一点

您将<ol>在未排序的列表项中 获得有序列表<li>:

<ul>
  <li>
    <ol start="666">
      <li>ha.</li>
    </ol>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

GitHub CSS规则包括:

.markdown-body ol {
    padding-left: 2em;
}
Run Code Online (Sandbox Code Playgroud)

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

  • @MDXF我怀疑因为一个点后跟的数字被转换为与无序列表项(' - ')相同的行*上的有序列表*.通常,<li>和<ol>不应该在同一行上呈现...... (10认同)
  • 实际上我认为输出要么是我没有听说过的降价增强,要么是错误.是_- .666_是一个有序的子列表,但是,它是该列表中的第一个元素,因此它应显示为_i_而不是_dclxvi_.Markdown有序列表忽略了实际使用的数字和顺序编号,我还没有看到改变它的方法. (2认同)
  • @MikeLippert不,它显示在dclxvi,因为生成的html代码是`<ol start ="666">`,这与https://github.github.com/gfm/#list-items一致:"如果列表项是有序的,然后它也被分配一个起始编号,基于有序列表标记"(这里,'666'是有序列表标记) (2认同)
  • @VonC谢谢,我还没有知道github风味降价的增强功能,并且在我发表评论之前没有找到它与快速谷歌搜索.对于其他任何人来说,这是VonC文档链接的另一个有用的摘录_"有序列表的起始编号由其初始列表项的列表编号决定.后续列表项的编号将被忽略."_ (2认同)

小智 376

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

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

ol ol,ul ol {
    list-style-type: lower-roman
}
Run Code Online (Sandbox Code Playgroud)

使用反斜杠逃避句点,您应该看到正确的输出.


For*_*VeR 82

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

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

- `666`. ha.
Run Code Online (Sandbox Code Playgroud)

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

- 666\. ha. (this will render as you probably want)
Run Code Online (Sandbox Code Playgroud)