GitHub が Markdown を悪魔的にいじくり回す - 666 を DCLXVI に変更 質問する

GitHub が Markdown を悪魔的にいじくり回す - 666 を DCLXVI に変更 質問する

私の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

DCLXVIローマ数字の番号は666

これは本当にゾッとしました。私のローカルファイルと生のファイル両方とも を表示します666

GitHub は何をしているのか、番号なしリストのインデントがおかしくなっているのはなぜか? これはイースターエッグなのか、それとも悪魔的なバグなのか?

ベストアンサー1

これに続いて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 マークダウン仕様GFM: GitHub 風の Markdown 仕様の上に構築されていますCommonMark 仕様

そしてトミ・カイコネン言及されている彼の答え666の後にドットがあるため、順序付きリストになっています。GFM仕様セクション5.2

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

- 666\. ha.

フォーネバー答え

そのため、666GitHubREADMEマークダウンではその数字はローマ数字に変更されます。


マイク・リパートコメント:

iそのリストの最初の要素なので、 notと表示されるはずですdclxvi。Markdown
の順序付きリストでは、実際に使用されている番号は無視され、順番に番号が付けられますが、これを変更する方法は見たことがありません。

しかし、そうではありません。dclxvi生成されたHTMLコードは であり<ol start="666">、これは と一致しているため、が表示されます。GFM仕様:

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

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

マイクはこう付け加えた。

@VonC 他の人のために、VonC のドキュメント リンクからの別の役立つ抜粋を以下に示します。

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


また、なぜスペースがおかしくなっているのですか?あなたの回答ではそのことに気づきませんでした

<ol>順序なしリスト項目 内に順序付きリストを取得します<li>

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

GitHub CSS ルールには以下が含まれます。

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

とすると3em
正しいパディング
の代わりに
間違ったパディング

おすすめ記事