GitHubは悪魔的にMarkdownをいじっています-666をDCLXVIに変更します


729

私のGitHubリポジトリには、readmeしかありません。このReadmeで、私はローカルでこれを書きました:

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のローマ数字です。

これは本当に私を忍び込ませました。ローカルファイルとrawファイルの両方が表示され666ます。

GitHubは何をしているのですか?そして、番号なしリストのインデントが台無しになっているのはなぜですか?これはイースターエッグですか、それとも悪魔のようなバグですか?


15
私がそれを正しく見れば、あなたは- 5. whateverそれを試してみましたか?·V whatever
Hans Koch

8
ジャストは自分自身をテストし、すべての数字はローマ数字に変換します。github.com/NoahCristino/Forked/tree/...
ノアCristino

27
弾丸にハイフンを使用する@immibisは標準のマークダウンですよね?
ESR 2017年

16
@EdmundReedネストされたリスト表記も標準のマークダウンではありませんか?
user253751 2017年

4
実際のラテン数字も気にしないでください。その数はおそらく、翻訳エラーによる一般的な理解が何であるかをまったく意味しません。

回答:


474

これにはgithub /マークアップの問題991が続くようです。順序付けされたサブリストでは、10進数は自動的にローマ数字に変わります。

問題の原因を発見しました。CSSです

これは、ネストされた順序付きリストがHTMLでレンダリングされるための予想される方法です。

これはHTMLでは予期されていません。https://jsfiddle.net/tf5jtv8s

デフォルトのHTML動作は変更しません。

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

CSSは知りませんが、これが問題の原因であると私は理解しています。CSSを無効にすると期待どおりの結果が得られます。(私は私の携帯から来ているので、ブラウザインスペクタを使用できません)

GitHub Flavored Markdownの正式な仕様」で述べたように、GitHub markdown spec GFM:GitHub Flavored Markdown SpecCommonMark Specの上に構築されてい ます。

そして、Tommi Kaikkonen彼の回答で述べたように、順序付けられたリストは666に続くドットのためです。GFM 仕様セクション5.2を参照してください。

セクション6.1で述べたように、この問題を回避するために、ASCII句読文字はバックスラッシュでエスケープできます。
つまり:

- 666\. ha.

ForNeVeR回答で明示的に示されている)

そのため666、GitHub READMEマークダウンでその番号がローマ数字に変更されます。


Mike Lippertがコメントしました:

そのリストの最初の要素なので、inot として表示されdclxviます。
マークダウンの順序付きリストでは、実際に使用されている番号と番号が順番に無視されます。これを変更する方法は見ていません。

ただし、いいえ:dclxvi生成されたhtmlコードが<ol start="666">であるため、が表示されます。これは、GFM仕様と一致しています。

リストアイテムが順序付けられている場合、順序付けされたリストマーカーに基づいて、開始番号も割り当てられます。

(ここで、「666」は順序付きリストマーカーです)

マイクは付け加えます:

@VonC誰にとっても、VonCのドキュメントリンクからのもう1つの便利な抜粋を次に示します。

「順序付きリストの開始番号は、最初のリストアイテムのリスト番号によって決まります。後続のリストアイテムの番号は無視されます。」


また、間隔がめちゃくちゃになるのはなぜですか?聞き取れませんでした

順序付けられ<ol>ていないリストアイテム 内に順序付けられたリストを取得します<li>

<ul>
  <li>
    <ol start="666">
      <li>ha.</li>
    </ol>
  </li>
</ul>

GitHub CSSルールには次のものがあります。

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

あなたが置くならば3em、あなたは 代わりに得るでしょう
正しいパディング

間違ったパディング


10
@MDXF疑わしいのは、ドットが続く数字が、順序付けられていないリスト項目( '-')と同じ行の順序付けられたリスト変換されるためです。通常、<li>と<ol>は同じ行にレンダリングされることは想定されていません...
VonC

@MDXF正確なCSSルールを使用して回答を編集しましたが、これにより不適切な間隔が生じます。
VonC 2017年

2
実際、出力は、聞いたことのない値下げの拡張機能か、バグのどちらかだと思います。はい-.666は順序付けられたサブリストですが、そのリストの最初の要素なので、dclxviではなくiと表示されます。マークダウンの順序付きリストでは、実際に使用されている番号と番号が順番に無視されます。これを変更する方法は見ていません。
Mike Lippert 2017年

2
@MikeLippertいいえ、それはdclxviに表示されます。これは、生成されたHTMLコードが<ol start="666">であり、github.github.com / gfm / #list-itemsと一致しているためです。順序付きリストマーカーに基づいて」(ここでは、「666」は順序付きリストマーカーです)
VonC、2017年

2
@VonCおかげで、私はgithub風味のマークダウンのその拡張機能を知らなかったし、コメントする前にそれをすばやくグーグルで見つけることができなかった。他の誰にとっても、VonCのドキュメントリンクからのもう1つの便利な抜粋があります。
Mike Lippert 2017年


84

他の答えはあなたが問題を抱えている理由を説明するのに適していますが、それを修正する方法の正確な例を示していません。

そして、あなたはすでに不完全な方法でそれ解決しているようで、あなたのテキストを

- `666`. ha.

番号の後のドットをエスケープして、通常のテキスト(順序付けされたリストラベルではない)のように見せるための一般的なトリックがあります。

- 666\. ha. (this will render as you probably want)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.