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;.

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


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)


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.