My GitHub repository has nothing but a readme in it. In this readme, locally I wrote this:
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.
Emphasis on the last line. What GitHub decided to show was not 666
.
DCLXVI
is the Roman Numeral number for 666.
This really creeped me out. My local file and the raw file both show 666
.
What is GitHub doing, and why is the indentation on the un-numbered list messed up? Is this an easter egg, or some satanic bug?
GitHub uses its own Markdown processor; GitHub Pages uses jekyll-commonmark. This means your README.md file will look different on GitHub's website than on your GitHub Pages website.
Markdown is an easy-to-read, easy-to-write syntax for formatting plain text. We've added some custom functionality to create GitHub Flavored Markdown, used to format prose and code across our site.
The Implementation To ensure that the rendered Markdown in our website is fully compliant with the CommonMark spec, the new backend implementation for GFM parsing on GitHub is based on cmark , the reference implementation for CommonMark developed by John MacFarlane and many other fantastic contributors.
This seems to be followed by github/markup issue 991, where on ordered sub-list, decimal numerals automatically turns into roman numerals.
I have found the cause of problem. It is CSS
This is the expected way for nested ordered lists to render in HTML.
This is not expected in HTML. https://jsfiddle.net/tf5jtv8s
We don't make any modifications to the default HTML behavior.
ol ol,ul ol{list-style-type:lower-roman}
I don't know CSS but my understanding is that this is the cause of problem. I can get expected result by disabling CSS. (I am from my mobile so I can't use browser inspector)
As mentioned in "A formal spec for GitHub Flavored Markdown", GitHub markdown spec GFM: GitHub Flavored Markdown Spec is built on top of the CommonMark Spec.
And as Tommi Kaikkonen mentioned in his answer, the ordered list is because of the dot following 666. See GFM Spec section 5.2.
As mentioned in section 6.1, any ASCII punctuation character may be backslash-escaped, to avoid this issue.
That means:
- 666\. ha.
(as explicitly shown in ForNeVeR's answer)
That is why that 666
number is changed to roman numerals in a GitHub README
markdown.
Mike Lippert commented:
the 1st element in that list so it should show as
i
notdclxvi
.
Markdown ordered lists ignore the actual number used and number sequentially, and I haven't seen a way to change that.
However, no: it shows dclxvi
, because the generated html code is <ol start="666">
, which is consistent with the GFM specs:
If the list item is ordered, then it is also assigned a start number, based on the ordered list marker"
(here, '666
' is the ordered list marker)
Mike adds:
@VonC For anyone else here's another useful excerpt from VonC's doc link:
"The start number of an ordered list is determined by the list number of its initial list item. The numbers of subsequent list items are disregarded."
Also, why is the spacing messed up? I didn't catch that in your answer
You get an ordered list <ol>
within an un-ordered list item <li>
:
<ul> <li> <ol start="666"> <li>ha.</li> </ol> </li> </ul>
GitHub CSS rules include:
.markdown-body ol { padding-left: 2em; }
If you put 3em
, you would get
instead of
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With