web-dev-qa-db-fra.com

GitHub joue sataniquement avec Markdown - remplace 666 par DCLXVI

Mon référentiel GitHub ne contient qu'un readme. Dans ce readme, localement, j'ai écrit ceci:

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.

L'accent sur la dernière ligne. Ce que GitHub a décidé de montrer était et non 666.

dclxvi

DCLXVI est le numéro du chiffre romain pour 666 .

Cela m'a vraiment effrayé. Mon fichier local et le fichier brut montrent tous deux 666.

Que fait GitHub et pourquoi l’indentation sur la liste non numérotée est-elle gâchée? Est-ce un oeuf de Pâques ou un insecte satanique?

605
MD XF

Ceci semble être suivi de github/markup issue 991 , où, sur une sous-liste ordonnée, les nombres décimaux se transforment automatiquement en chiffres romains.

J'ai trouvé la cause du problème. C'est CSS

C'est le moyen attendu pour les listes ordonnées imbriquées à afficher en HTML.

Ce n'est pas prévu en HTML. https://jsfiddle.net/tf5jtv8s

Nous n'apportons aucune modification au comportement HTML par défaut.

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

Je ne connais pas le CSS, mais je crois comprendre que c'est la cause du problème. Je peux obtenir le résultat attendu en désactivant CSS. (Je viens de mon téléphone portable et je ne peux donc pas utiliser l'inspecteur de navigateur)

Comme indiqué dans " Spécification formelle pour GitHub Flavored Markdown ", spécification GitHub Markdown GFM: GitHub Flavored Markdown Spec est construite sur le CommonMark Spec =.

Et comme Tommi Kaikkonen mentionné dans sa réponse , la liste ordonnée est due au point suivant 666. Voir section 5.2 des spécifications GFM .

Comme indiqué dans la section section 6.1 , tout caractère de ponctuation ASCII peut être échappé par une barre oblique inversée afin d'éviter ce problème.
Cela signifie:

- 666\. ha.

(comme indiqué explicitement dans ForNeVeR 's answer )

C’est pourquoi le numéro 666 est remplacé par un chiffre romain dans une démarque GitHub README.


Mike Lippert a commenté:

le 1er élément de cette liste doit donc indiquer i pas dclxvi.
Les listes ordonnées de Markdown ignorent le nombre réel utilisé et le nombre séquentiellement, et je n’ai pas trouvé le moyen de changer cela.

Cependant, non: il affiche dclxvi, car le code html généré est <ol start="666">, ce qui est cohérent avec les spécifications GFM :

Si l'élément de liste est commandé, un numéro de début lui est également attribué, en fonction du marqueur de liste ordonné "

(ici, '666' est le marqueur de la liste ordonnée)

Mike ajoute:

@VonC Pour les autres, voici un autre extrait utile du lien de la documentation de VonC:

"Le numéro de début d'une liste ordonnée est déterminé par le numéro de liste de son élément de liste initial. Les numéros des éléments de liste suivants ne sont pas pris en compte."


Aussi, pourquoi l'espacement est-il gâché? Je n'ai pas compris ça dans ta réponse

Vous obtenez une liste ordonnée <ol> dans un élément de liste non ordonnée <li>:

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

Les règles CSS de GitHub incluent:

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

Si vous mettez 3em, vous obtiendrez
correct padding
au lieu de
wrong padding

392
VonC

L'ajout d'une période après 666 le rend n marqueur de liste ordonnée .

GitHub déclare le CSS qui rend les marqueurs de liste ordonnée en chiffres romains:

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

Échapper à la période avec une barre oblique inverse, et vous devriez voir la sortie correcte.

359
Tommi Kaikkonen

Tandis que d’autres réponses expliquent bien pourquoi le problème, ils ne vous ont pas donné un exemple exact de la procédure à suivre corrige ça.

Et il semble que vous ayez déjà résolu le problème de manière imparfaite , en remplaçant votre texte par

- `666`. ha.

Il y a une astuce courante pour échapper au point après le nombre et lui donner l'apparence d'un texte normal (et non d'une étiquette de liste ordonnée):

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