协慌网

登录 贡献 社区

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

DCLXVI666的罗马数字。

这真的让我感到震惊。我的本地文件和原始文件都显示666

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

答案

似乎是github / markup 问题 991 ,紧随其后的是在有序子列表上,十进制数字会自动变为罗马数字。

我已经找到问题的原因。是 CSS

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

HTML 中不希望出现这种情况。 https://jsfiddle.net/tf5jtv8s

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

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

我不了解 CSS,但我的理解是这是造成问题的原因。我可以通过禁用 CSS 获得预期的结果。 (我来自手机,因此无法使用浏览器检查器)

如 “ GitHub 风味 Markdown 的正式规范 ” 中所述,GitHub markdown 规范GFM:GitHub Flavored Markdown 规范建立在CommonMark 规范之上。

正如Tommi Kaikkonen回答中提到的那样,排序的列表是由于 666 后的点引起的。请参见GFM Spec 第 5.2 节

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

- 666\. ha.

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

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


迈克 · 利珀特评论:

该列表中的第一个元素,因此应显示为i not dclxvi
Markdown 有序列表会忽略实际使用的数字和顺序的数字,而且我还没有找到改变它的方法。

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