Comment échapper un caractère pipe dans une instruction de code dans une table markdown?

100

Sur GitHub, je souhaite créer une table contenant des morceaux de code dans Markdown. Cela fonctionne bien sauf quand je mets un caractère pipe (ie |) entre les caractères backtick (ie `).

Voici ce que je veux:

      a     |  r  
------------|-----
 `a += x;`  |  r1
 `a |= y;`  |  r2

Le problème est que la barre verticale dans l'instruction de code de la deuxième ligne est interprétée comme un délimiteur de colonne. Ensuite, le rendu de la table est assez moche. Comment pourrais-je éviter cela?

Notez que j'ai déjà essayé d'utiliser le |code HTML, mais cela produit a |= y;.

Marc de Verdelhan
la source

Réponses:

143

Depuis mars 2017, l'utilisation de tuyaux d'échappement est beaucoup plus facile: \|voir d'autres réponses.

Si vous supprimez les backticks ( ` ), l'utilisation du |hack fonctionne

      a     |  r  
------------|-----
 `a += x;`  |  r1
 a |= y;  |  r2

et produit la sortie suivante

entrez la description de l'image ici

Alternativement, vous pouvez remplacer les backticks ( ` ) par un <code></code>balisage qui résout les problèmes plus bien en préservant le rendu

      a     |  r  
------------|-----
 `a += x;`  |  r1
<code>a &#124;= y;</code>  |  r2

générer la sortie suivante

entrez la description de l'image ici

nulltoken
la source
4
Ouais, a fonctionné en utilisant le <code></code>balisage! Merci beaucoup.
Marc de Verdelhan
Bitbucket ne permet pas <code> -blocks: - / y a-t-il une autre possibilité?
Sergej
2
Sur GitHub, l'échappement markdown \|fonctionne. Les gens passent trop vite au HTML sans essayer d'échapper à la démarque.
jnm2
Depuis mars 2019, dans les wikis Gitlab , vous devez toujours utiliser " &#124;" dans le code de balisage.
knb
Toujours pas pris en charge par Bitbucket voir bitbucket.org/site/master/issues/17106/...
Lorenzo Solano
19

À partir de la mi-2017, le tube peut simplement être échappé avec une barre oblique inverse, comme ceci: \|

Cela fonctionne à la fois à l'intérieur et à l'extérieur des backticks.

Le code HTML peut maintenant être utilisé à nouveau, mais seulement en dehors des backticks.

Réponse précédente:

En mars 2017, la réponse acceptée a cessé de fonctionner car GitHub a modifié son analyseur de démarques . Utiliser un autre symbole Unicode qui ressemble à un tuyau semble être la seule option pour le moment, par exemple:

ǀ (U + 01C0, lettre latine clic dentaire)

∣ (U + 2223, le symbole divise)

⎮ (U + 23AE, extension intégrale)

Janosch
la source
2
La réponse acceptée semble fonctionner correctement pour moi dans GitHub, à la fois dans un Gist et dans la demande d'extraction que j'ai soumise.
Iiridayn le