Jak uciec przed znakiem potoku w instrukcji kodu w tabeli przecen?


101

W GitHub chcę zbudować tabelę zawierającą fragmenty kodu w Markdown. Działa dobrze, z wyjątkiem sytuacji, gdy umieszczam znak kreski pionowej (tj. |) Między znakami backtick (tj. `).

Oto, czego chcę:

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

Problem polega na tym, że pionowa kreska w instrukcji kodu drugiej linii jest interpretowana jako separator kolumny. Wtedy renderowanie tabeli wygląda dość brzydko. Jak mogłem tego uniknąć?

Zauważ, że próbowałem już użyć |kodu HTML, ale tworzy a |= y;.

Odpowiedzi:


145

Od marca 2017 r. Używanie uciekających rur jest znacznie łatwiejsze: \|Zobacz inne odpowiedzi.

Jeśli usuniesz znaki grawerowane ( ` ), użycie |hacka zadziała

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

i generuje następujący wynik

wprowadź opis obrazu tutaj

Alternatywnie możesz zamienić lewe apostrofy ( ` ) na <code></code>znaczniki, które ładniej rozwiązują problemy, zachowując renderowanie

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

generując następujący wynik

wprowadź opis obrazu tutaj


4
Tak, pracowałem przy użyciu <code></code>znaczników! Dziękuję Ci bardzo.
Marc de Verdelhan

Bitbucket nie zezwala na <code>-bloki: - / czy jest inna możliwość?
Sergej

2
W GitHub \|działa ucieczka z przeceną . Ludzie przeskakują do HTML zbyt szybko, nie próbując uniknąć przeceny.
jnm2

Od marca 2019 r. W Gitlab Wiki nadal trzeba używać „ &#124;” wewnątrz kodu znaczników.
knb

Nadal nie jest obsługiwany przez Bitbucket, patrz bitbucket.org/site/master/issues/17106/ ...
Lorenzo Solano

20

Od połowy 2017 r. Znak potoku można po prostu zmienić za pomocą odwrotnego ukośnika, na przykład: \|

Działa to zarówno wewnątrz, jak i na zewnątrz graweru.

Kod HTML może być teraz użyty ponownie, ale tylko poza lewymi znakami.

Poprzednia odpowiedź:

Od marca 2017 r. Zaakceptowana odpowiedź przestała działać, ponieważ GitHub zmienił parser przecen . Użycie innego symbolu Unicode, który przypomina potok, wydaje się obecnie jedyną opcją, np .:

ǀ (U + 01C0, łacińska litera dentystyczna)

∣ (U + 2223, symbol dzieli)

⎮ (U + 23AE, integralne rozszerzenie)


2
Zaakceptowana odpowiedź wydaje się działać dobrze dla mnie w GitHubie, zarówno w Gist, jak iw przesłanym przeze mnie żądaniu ściągnięcia.
Iiridayn

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.