Como escapar de um caractere de pipe em uma instrução de código em uma tabela de redução de custos?

100

No GitHub, quero construir uma tabela contendo pedaços de código em Markdown. Funciona bem, exceto quando eu coloco um caractere de tubo (ou seja |) entre os caracteres de crase (ou seja, `).

Aqui está o que eu quero:

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

O problema é que a barra vertical na instrução do código da segunda linha é interpretada como um delimitador de coluna. Então, a renderização da mesa parece muito feia. Como poderia evitar isso?

Note que já tentei usar o |código HTML, mas ele produz a |= y;.

Marc de Verdelhan
fonte

Respostas:

143

A partir de março de 2017, usar tubos com escape é muito mais fácil: \|veja outras respostas.

Se você remover os crases ( ` ), usar o |hack funcionará

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

e produz a seguinte saída

insira a descrição da imagem aqui

Alternativamente, você pode substituir os crases ( ` ) por uma <code></code>marcação que corrige os problemas de maneira mais adequada, preservando a renderização

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

gerando a seguinte saída

insira a descrição da imagem aqui

nulltoken
fonte
4
Sim, funcionou usando <code></code>marcação! Muito obrigado.
Marc de Verdelhan
O Bitbucket não permite <code>-blocos: - / existe outra possibilidade?
Sergej
2
No GitHub, o escape de redução \|funciona. As pessoas pulam para HTML muito rápido, sem tentar escapar da redução.
jnm2
Em março de 2019, em Gitlab Wikis, você ainda precisa usar " &#124;" dentro do código de marcação.
knb
Ainda não compatível com o Bitbucket, consulte bitbucket.org/site/master/issues/17106/…
Lorenzo Solano
19

A partir de meados de 2017, o tubo pode simplesmente ser escapado com uma barra invertida, assim: \|

Isso funciona tanto dentro quanto fora dos crases.

O código HTML também pode ser usado novamente, mas apenas fora dos crases.

Resposta anterior:

Em março de 2017, a resposta aceita parou de funcionar porque o GitHub alterou seu analisador de marcação . Usar outro símbolo Unicode que se assemelha a um tubo parece ser a única opção no momento, por exemplo:

ǀ (U + 01C0, letra latina clique dental)

∣ (U + 2223, o símbolo divide)

⎮ (U + 23AE, Extensão Integral)

Janosch
fonte
2
A resposta aceita parece funcionar bem para mim no GitHub, tanto em um Gist quanto na solicitação de pull que enviei.
Iiridayn