GitHub mengacaukan Markdown - mengubah 666 ke DCLXVI

729

Repositori GitHub saya tidak memiliki apa-apa selain readme di dalamnya. Dalam readme ini, secara lokal saya menulis ini:

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.

Penekanan pada baris terakhir. Apa yang GitHub putuskan untuk tunjukkan tidak 666 .

dclxvi

DCLXVIadalah angka Romawi untuk 666 .

Ini benar-benar membuatku takut. File lokal saya dan file mentah keduanya ditampilkan 666.

Apa yang dilakukan GitHub, dan mengapa lekukan pada daftar yang tidak bernomor kacau? Apakah ini telur paskah, atau serangga setan?

MD XF
sumber
15
Apakah Anda mencobanya - 5. whateverharus berubah menjadi ·V whateverjika saya melihatnya dengan benar
Hans Koch
8
Baru saja menguji diri saya dan semua angka dikonversi ke angka romawi: github.com/NoahCristino/Forked/tree/…
Noah Cristino
27
@immibis menggunakan tanda hubung untuk peluru adalah penurunan standar bukan?
ESR
16
@ EdmundReed Bukankah notasi daftar bersarang juga penurunan standar?
user253751
4
Jangan khawatir tentang angka Latin yang sebenarnya. Angka itu mungkin tidak berarti sama sekali apa pengertian umum karena kesalahan terjemahan.

Jawaban:

474

Hal ini tampaknya diikuti oleh masalah github / markup 991 , di mana pada sub-daftar yang dipesan, angka desimal secara otomatis berubah menjadi angka romawi.

Saya telah menemukan penyebab masalah. Itu adalah CSS

Ini adalah cara yang diharapkan untuk daftar berurut bersarang untuk disajikan dalam HTML.

Ini tidak diharapkan dalam HTML. https://jsfiddle.net/tf5jtv8s

Kami tidak melakukan modifikasi apa pun terhadap perilaku HTML default.

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

Saya tidak tahu CSS tetapi pemahaman saya adalah bahwa ini adalah penyebab masalah. Saya bisa mendapatkan hasil yang diharapkan dengan menonaktifkan CSS. (Saya dari ponsel saya jadi saya tidak bisa menggunakan inspektur browser)

Seperti disebutkan dalam " Spesifikasi formal untuk GitHub Flavoured Markdown ", spesifikasi GitHub penurunan harga GFM: GitHub Flavoured Specdown Spec dibangun di atas CommonMark Spec .

Dan seperti yang dikatakan Tommi Kaikkonen dalam jawabannya , daftar yang diurutkan adalah karena titik yang mengikuti 666. Lihat bagian Spec GFM 5.2 .

Seperti yang disebutkan dalam bagian 6.1 , karakter tanda baca ASCII apa pun mungkin lolos garis miring terbalik, untuk menghindari masalah ini.
Itu berarti:

- 666\. ha.

(secara eksplisit ditunjukkan pada ForNeVeR 's jawaban )

Itulah mengapa 666angka itu diubah menjadi angka romawi dalam READMEpenurunan harga GitHub .


Mike Lippert berkomentar:

elemen pertama dalam daftar itu sehingga seharusnya ditampilkan sebagai itidak dclxvi.
Daftar urutan penurunan harga mengabaikan angka aktual yang digunakan dan angka berurutan, dan saya belum melihat cara untuk mengubahnya.

Namun, tidak: itu menunjukkan dclxvi, karena kode html yang dihasilkan adalah <ol start="666">, yang konsisten dengan spesifikasi GFM :

Jika item daftar dipesan, maka ia juga diberi nomor awal, berdasarkan penanda daftar yang dipesan "

(di sini, ' 666' adalah penanda daftar yang dipesan)

Mike menambahkan:

@VonC Untuk orang lain di sini ada kutipan berguna lain dari tautan dokumen VonC:

"Nomor awal dari daftar yang dipesan ditentukan oleh nomor daftar dari item daftar awalnya. Jumlah item daftar berikutnya diabaikan."


Juga, mengapa jaraknya kacau? Saya tidak menangkap itu dalam jawaban Anda

Anda mendapatkan daftar yang dipesan <ol>dalam item daftar yang tidak dipesan <li>:

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

Aturan GitHub CSS meliputi:

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

Jika Anda menempatkan 3em, Anda akan mendapatkan bukan
padding yang benar

bantalan salah

VONC
sumber
10
@ MDXF Saya curiga karena nomor yang diikuti oleh titik diubah menjadi daftar berurutan di baris yang sama dengan item daftar yang tidak dipesan ('-'). Biasanya, <li> dan <ol> tidak seharusnya dirender pada baris yang sama ...
VonC
@ MDXF Saya telah mengedit jawaban dengan aturan CSS yang tepat yang menyebabkan spasi salah.
VonC
2
Sebenarnya saya pikir outputnya adalah peningkatan markdown yang belum pernah saya dengar, atau bug. Ya - .666 adalah sublist yang dipesan, NAMUN, ini adalah elemen pertama dalam daftar itu sehingga harus ditampilkan karena saya tidak dclxvi . Daftar urutan penurunan harga mengabaikan angka aktual yang digunakan dan angka berurutan, dan saya belum melihat cara untuk mengubahnya.
Mike Lippert
2
@MikeLippert no, ini ditampilkan di dclxvi, karena kode html yang dihasilkan adalah <ol start="666">, yang konsisten dengan github.github.com/gfm/#list-items : "Jika item daftar dipesan, maka ia juga diberi nomor mulai, berdasarkan penanda daftar berurutan "(di sini, '666' adalah penanda daftar berurutan)
VonC
2
@VonC Terima kasih, saya tidak tahu bahwa peningkatan untuk penurunan harga rasa github, dan tidak menemukannya dengan googling cepat sebelum saya berkomentar. Untuk orang lain, inilah kutipan lain yang bermanfaat dari tautan dokumen VonC, "Nomor awal daftar yang dipesan ditentukan oleh nomor daftar item daftar awalnya. Jumlah item daftar berikutnya diabaikan."
Mike Lippert
376

Menambahkan periode setelah 666menjadikannya penanda daftar yang diurutkan .

GitHub menyatakan CSS yang merender penanda daftar yang diurutkan menggunakan angka romawi:

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

Melarikan diri dari periode dengan backslash, dan Anda akan melihat output yang benar.

Tommi Kaikkonen
sumber
84

Sementara jawaban lain bagus untuk menjelaskan mengapa Anda memiliki masalah, mereka belum memberi Anda contoh yang tepat tentang cara memperbaikinya .

Dan sepertinya Anda sudah menyelesaikannya dengan cara yang tidak sempurna , dengan mengganti teks Anda

- `666`. ha.

Ada trik umum untuk menghindari titik setelah angka agar terlihat seperti teks normal (dan bukan label daftar yang diurutkan):

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