web-dev-qa-db-ger.com

GitHub spielt satanisch mit Markdown - ändert 666 in DCLXVI

Mein GitHub-Repository enthält nur eine Readme-Datei. In dieser Readme-Datei habe ich Folgendes geschrieben:

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.

Schwerpunkt in der letzten Zeile. Was GitHub zeigen wollte, war nicht 666.

dclxvi

DCLXVI ist die römische Zahl für 666 .

Das hat mich wirklich eingeschüchtert. Meine lokale Datei und die Rohdatei zeigen beide 666.

Was macht GitHub und warum ist der Einzug auf der nicht nummerierten Liste durcheinander? Ist das ein Osterei oder ein satanischer Käfer?

605
MD XF

Diesem scheint das Github/Markup-Problem 991 zu folgen, bei dem Dezimalzahlen in einer geordneten Unterliste automatisch in römische Zahlen umgewandelt werden.

Ich habe die Ursache des Problems gefunden. Es ist CSS

Dies ist die erwartete Methode, mit der verschachtelte geordnete Listen in HTML gerendert werden können.

Dies wird in HTML nicht erwartet. https://jsfiddle.net/tf5jtv8s

Wir nehmen keine Änderungen am Standard-HTML-Verhalten vor.

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

Ich kenne CSS nicht, aber ich verstehe, dass dies die Ursache des Problems ist. Ich kann das erwartete Ergebnis durch Deaktivieren von CSS erzielen. (Ich bin von meinem Handy aus und kann den Browser-Inspektor nicht verwenden.)

Wie in " Eine formale Spezifikation für GitHub Flavored Markdown " erwähnt, ist die GitHub-Markdown-Spezifikation GFM: GitHub Flavored Markdown Spec darauf aufgebaut der CommonMark Spec .

Und wie Tommi Kaikkonen in seiner Antwort erwähnte, ist die geordnete Liste wegen des Punktes, der 666 folgt. Siehe GFM Spec Abschnitt 5.2 .

Wie in Abschnitt 6.1 erwähnt, kann jedes ASCII-Interpunktionszeichen mit einem Backslash versehen werden, um dieses Problem zu vermeiden.
Das bedeutet:

- 666\. ha.

(wie explizit in ForNeVeR s Antwort gezeigt)

Aus diesem Grund wird die 666 -Nummer in einem GitHub README -Downdown in römische Ziffern geändert.


Mike Lippert kommentierte:

das erste Element in dieser Liste sollte als i und nicht als dclxvi angezeigt werden.
Markdown-sortierte Listen ignorieren die tatsächlich verwendete Nummer und die Nummer nacheinander, und ich habe keine Möglichkeit gefunden, dies zu ändern.

Nein, es wird jedoch dclxvi angezeigt, da der generierte HTML-Code <ol start="666"> ist, was mit den GFM-Spezifikationen übereinstimmt :

Wenn der Listeneintrag bestellt ist, wird ihm auch eine Startnummer zugewiesen, die auf der geordneten Listenmarkierung basiert. "

(hier ist '666' die geordnete Listenmarkierung)

Mike fügt hinzu:

@VonC Für alle anderen hier ein weiterer nützlicher Auszug aus dem VonC-Dokumentlink:

"Die Startnummer einer geordneten Liste wird durch die Listennummer ihres anfänglichen Listenelements bestimmt. Die Nummern der nachfolgenden Listenelemente werden nicht berücksichtigt."


Auch, warum ist der Abstand durcheinander? Das habe ich in deiner Antwort nicht verstanden

Sie erhalten eine geordnete Liste <ol> innerhalb eines nicht geordneten Listenelements <li>:

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

Zu den GitHub-CSS-Regeln gehören:

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

Wenn Sie 3em setzen, würden Sie bekommen
correct padding
Anstatt von
wrong padding

392
VonC

Das Hinzufügen eines Punktes nach 666 macht es eine geordnete Listenmarkierung .

GitHub deklariert CSS, das geordnete Listenmarkierungen mit römischen Ziffern darstellt:

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

Schließen Sie die Periode mit einem Backslash ab, und Sie sollten die richtige Ausgabe sehen.

359
Tommi Kaikkonen

Andere Antworten erklären zwar gut , warum Sie das Problem haben, aber sie geben Ihnen kein genaues Beispiel dafür, wie behoben werden kann. Das.

Und es scheint, dass Sie es bereits gelöst haben auf unvollständige Weise , indem Sie Ihren Text durch ersetzen

- `666`. ha.

Es gibt einen allgemeinen Trick, um den Punkt nach der Zahl zu maskieren, damit er wie ein normaler Text aussieht (und nicht wie eine geordnete Listenbezeichnung):

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