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

DCLXVIเป็นจำนวนเลขโรมันสำหรับ666

สิ่งนี้ทำให้ฉันคลานออกไปจริงๆ ไฟล์โลคัลของฉันและไฟล์ rawทั้งคู่แสดง666ขึ้น

GitHub กำลังทำอะไรและเหตุใดการเยื้องรายการที่ไม่มีหมายเลขจึงเกิดความสับสน นี่เป็นไข่อีสเตอร์หรือมีบั๊กของซาตานบ้างไหม?


15
คุณลอง- 5. whateverมันน่าจะกลายเป็น·V whateverว่าฉันเห็นมันถูกต้องไหม
ฮันส์โคช์

8
เพิ่งทดสอบตัวเองและตัวเลขทั้งหมดจะเปลี่ยนเป็นตัวเลขโรมัน: github.com/NoahCristino/Forked/tree/ …
Noah Cristino

27
@immibis ที่ใช้ยัติภังค์สำหรับกระสุนเป็น markdown มาตรฐานใช่ไหม?
ESR

16
@EdmundReed เครื่องหมายไม่ใช่รายการซ้อนกันเป็นเครื่องหมายมาตรฐานหรือไม่
253751

4
ไม่ต้องกังวลเกี่ยวกับหมายเลขละตินที่แท้จริงเช่นกัน ตัวเลขนั้นอาจไม่ได้หมายความว่าความเข้าใจร่วมกันเป็นอย่างไรเพราะข้อผิดพลาดในการแปล

คำตอบ:


474

ดูเหมือนว่าจะตามด้วยปัญหา Github / มาร์กอัป 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 รส Markdown Specถูกสร้างขึ้นที่ด้านบนของ CommonMark Spec

และเป็นTommi Kaikkonenกล่าวถึงในคำตอบของเขาที่รายการสั่งซื้อเป็นเพราะจุดดังต่อไปนี้ 666 ดูGFM Spec ข้อ 5.2

ตามที่กล่าวไว้ในส่วนที่ 6.1อักขระเครื่องหมายวรรคตอน ASCII ใด ๆ อาจถูกหลีกเลี่ยงแบ็กสแลชเพื่อหลีกเลี่ยงปัญหานี้
นั่นหมายความว่า:

- 666\. ha.

(ตามที่ปรากฏอย่างชัดเจนในคำตอบของForNeVeR )

นั่นคือเหตุผลที่666ตัวเลขนั้นถูกเปลี่ยนเป็นตัวเลขโรมันในREADMEmarkdown ของGitHub


Mike Lippertแสดงความคิดเห็น:

องค์ประกอบที่ 1 ในรายการที่ดังนั้นจึงควรแสดงเป็นไม่ได้i Markdown ที่เรียงลำดับรายการจะเพิกเฉยต่อจำนวนที่ใช้จริงและจำนวนตามลำดับและฉันไม่ได้เห็นวิธีการเปลี่ยนdclxvi

อย่างไรก็ตามไม่มี: มันแสดงdclxviเพราะรหัส html ที่สร้างขึ้น<ol start="666">ซึ่งสอดคล้องกับข้อกำหนด GFM :

หากมีการสั่งซื้อรายการก็จะได้รับหมายเลขเริ่มต้นตามตัวทำเครื่องหมายรายการที่สั่ง "

(ที่นี่ ' 666' เป็นเครื่องหมายรายการที่สั่งซื้อ)

ไมค์เพิ่ม:

@VonC สำหรับคนอื่น ๆ นี่คือข้อความที่ตัดตอนมาจากลิงก์ doc ของ VonC:

"หมายเลขเริ่มต้นของรายการที่สั่งซื้อจะถูกกำหนดโดยหมายเลขรายการของรายการเริ่มต้นหมายเลขของรายการในรายการถัดไปจะถูกเพิกเฉย"


ทำไมระยะห่างจึงเกิดความสับสน? ฉันไม่เข้าใจในคำตอบของคุณ

คุณจะได้รับรายการสั่งซื้อ<ol>ภายในรายการที่ยกเลิกการสั่งซื้อรายการ <li> :

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

กฎ CSS ของ GitHub รวมถึง:

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

ถ้าคุณใส่3emคุณจะได้รับ แทน
การขยายที่ถูกต้อง

การขยายที่ผิด


10
@MDXF ฉันสงสัยว่าเพราะจำนวนที่ตามด้วยจุดจะถูกเปลี่ยนเป็นรายการที่สั่งซื้อในบรรทัดเดียวกันกับรายการที่ไม่ได้สั่งซื้อ ('-') โดยปกติ <li> และ <ol> ไม่ควรแสดงผลในบรรทัดเดียวกัน ...
VonC

@MDXF ฉันได้แก้ไขคำตอบด้วยกฎ CSS ที่แน่นอนซึ่งทำให้ระยะห่างไม่ถูกต้อง
VonC

2
ที่จริงแล้วฉันคิดว่าผลลัพธ์เป็นทั้งการเพิ่มประสิทธิภาพการลดราคาที่ฉันไม่เคยได้ยินหรือมีข้อบกพร่อง ใช่- 0.666เป็นรายการย่อยสั่ง แต่ก็เป็นองค์ประกอบที่ 1 ในรายการที่ดังนั้นจึงควรแสดงเป็นฉันไม่dclxvi Markdown ที่เรียงลำดับรายการจะเพิกเฉยต่อจำนวนที่ใช้จริงและจำนวนตามลำดับและฉันไม่ได้เห็นวิธีการเปลี่ยน
Mike Lippert

2
@MikeLippert ไม่มันแสดงที่ dclxvi เนื่องจากรหัส html ที่สร้างขึ้น<ol start="666">ซึ่งสอดคล้องกับgithub.github.com/gfm/#list-items : "หากรายการมีการสั่งซื้อก็จะได้รับหมายเลขเริ่มต้นด้วย ตามเครื่องหมายรายการที่เรียงลำดับ "(ที่นี่ '666' คือเครื่องหมายรายการที่เรียงลำดับ)
VonC

2
@VonC ขอบคุณฉันไม่เคยรู้จักการเพิ่มประสิทธิภาพสำหรับการทำเครื่องหมายในรูปแบบ github และไม่พบว่ามี googling w / ด่วนก่อนที่ฉันจะแสดงความคิดเห็น สำหรับคนอื่น ๆ นี่คือข้อความที่มีประโยชน์อีกส่วนหนึ่งจากลิงค์เอกสารของ VonC "หมายเลขเริ่มต้นของรายการที่สั่งซื้อจะถูกกำหนดโดยหมายเลขรายการของรายการเริ่มต้นหมายเลขของรายการในรายการถัดไปจะถูกเพิกเฉย"
Mike Lippert

376

เพิ่มระยะเวลาหลังจากที่666ทำเครื่องหมายรายการสั่งซื้อ

GitHub ประกาศ CSS ที่แสดงรายการเครื่องหมายคำสั่งที่ใช้ตัวเลขโรมัน:

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

หลีกเลี่ยงช่วงเวลาด้วยแบ็กสแลชและคุณควรเห็นผลลัพธ์ที่ถูกต้อง


84

ในขณะที่คำตอบอื่น ๆ อธิบายได้ดีว่าทำไมคุณถึงมีปัญหาพวกเขาไม่ได้ให้ตัวอย่างที่ชัดเจนเกี่ยวกับวิธีการแก้ไขปัญหานั้น

และดูเหมือนว่าคุณได้แก้ไขมันแล้วในลักษณะที่ไม่สมบูรณ์แทนที่ข้อความของคุณด้วย

- `666`. ha.

มีเคล็ดลับทั่วไปในการหลีกเลี่ยงจุดหลังตัวเลขเพื่อทำให้ดูเหมือนข้อความปกติ (ไม่ใช่ป้ายกำกับรายการที่สั่งซื้อ):

- 666\. ha. (this will render as you probably want)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.