Как избежать символа вертикальной черты в операторе кода в таблице уценки?

101

На GitHub я хочу создать таблицу, содержащую фрагменты кода в Markdown. Он работает нормально, за исключением случаев, когда я помещаю вертикальную черту (т.е. |) между символами обратной кавычки (т.е. `).

Вот что я хочу:

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

Проблема в том, что вертикальная черта в операторе кода второй строки интерпретируется как разделитель столбцов. Тогда отрисовка таблицы выглядит довольно некрасиво. Как я мог этого избежать?

Обратите внимание, что я уже пытался использовать |HTML-код, но он выдает a |= y;.

Марк де Верделан
источник

Ответы:

146

По состоянию на март 2017 года использовать экранированные трубы стало намного проще: \|см. Другие ответы.

Если вы удалите обратные кавычки ( ` ), использование |хака работает

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

и производит следующий вывод

введите описание изображения здесь

В качестве альтернативы вы можете заменить обратные кавычки ( ` ) <code></code>разметкой, которая лучше устраняет проблемы, сохраняя рендеринг

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

генерируя следующий вывод

введите описание изображения здесь

нулевой токен
источник
4
Ага, работал с <code></code>разметкой! Большое спасибо.
Marc de Verdelhan
Bitbucket не допускает <code>-blocks: - / есть ли другая возможность?
Сергей
2
На GitHub \|работает функция уценки . Люди слишком быстро переходят на HTML, не пытаясь избежать уценки.
jnm2
По состоянию на март 2019 года в Gitlab Wikis вам все еще нужно использовать " &#124;" внутри кода разметки.
Knb
До сих пор не поддерживается Bitbucket см bitbucket.org/site/master/issues/17106/...
Lorenzo Solano
21

По состоянию на середину 2017 года канал можно просто экранировать с помощью обратной косой черты, например: \|

Это работает как внутри, так и снаружи обратных кавычек.

HTML-код теперь тоже можно использовать снова, но только без обратных кавычек.

Предыдущий ответ:

По состоянию на март 2017 года принятый ответ перестал работать, поскольку GitHub изменил свой анализатор уценки . Использование другого символа Юникода, напоминающего трубу, сейчас кажется единственным вариантом, например:

ǀ (U + 01C0, стоматологический щелчок латинскими буквами)

∣ (U + 2223, Символ разделяет)

⎮ (U + 23AE, интегральное расширение)

Янош
источник
2
Принятый ответ, похоже, отлично работает для меня в GitHub, как в Gist, так и в отправленном мной запросе на перенос.
Iiridayn
9

Вы можете выйти из |таблицы в GFM \следующим образом:

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

См. Https://github.github.com/gfm/#example-191 или https://github.com/dotnet/csharplang/pull/743 в качестве примера.

Ииридейн
источник
Спасибо. Это работает на Github. Кажется, что Github MarkDown распознает строку \|в таблице и действует соответственно.
Стивен Чанг