关于GitHub在Markdown上乱哄哄地说:GitHub在Markdown上乱哄哄 – 将666改为DCLXVI

GitHub satanically messing with Markdown - changes 666 to DCLXVI

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

1
2
3
4
5
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 / markup issue 991,其中在有序子列表中,十进制数字自动变成罗马数字。

I have found the cause of problem. It is CSS

This is the expected way for nested ordered lists to render in HTML.

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

We don't make any modifications to the default HTML behavior.

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

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

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

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

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

1
- 666\. ha.

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

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

Mike Lippert评论道:

the 1st element in that list so it should show as i not dclxvi.
Markdown ordered lists ignore the actual number used and number sequentially, and I haven't seen a way to change that.

但是,没有:它显示dclxvi,因为生成的html代码是,这与GFM规范一致:

If the list item is ordered, then it is also assigned a start number, based on the ordered list marker"

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

迈克补充说:

@VonC For anyone else here's another useful excerpt from VonC's doc link:

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

Also, why is the spacing messed up? I didn't catch that in your answer

您在未排序的列表项

  • 中获得有序列表

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <ul>

     
    <li>

       
         
    <li>
    ha.
    </li>

       
     
    </li>


    </ul>

    GitHub CSS规则包括:

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

    如果你把3em,你会得到
    correct padding
    代替
    wrong padding


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

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

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

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


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

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

    1
    - `666`. ha.

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

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