Форматы данных

Как экранировать pipe в Markdown-таблицах

В Markdown-таблице неэкранированный pipe обычно разделяет ячейки. Добавьте перед буквальным pipe обратный слеш, чтобы он остался частью содержимого ячейки.

Опубликовано

Почему pipe создаёт ещё одну ячейку

Расширение таблиц считает pipe разделителями колонок. Неэкранированный буквальный pipe способен сдвинуть следующие значения в неожиданные колонки или нарушить соответствие строки заголовку.

| Expression | Meaning |
| --- | --- |
| yes|no | Either value |

Экранируйте pipe в обычном тексте ячейки

Поставьте один обратный слеш Markdown непосредственно перед pipe. В исходнике структурный разделитель останется отдельным от символа, который отображается внутри ячейки.

| Expression | Meaning |
| --- | --- |
| yes\|no | Either value |

Экранируйте pipe и внутри inline-кода

В ячейках GFM обратные кавычки не мешают парсеру таблиц распознать pipe как разделитель. Оставляйте обратный слеш внутри фрагмента кода.

| Regex | Result |
| --- | --- |
| `cat\|dog` | Matches cat or dog |

Команды и операторы требуют того же подхода

Shell-конвейеры, объединения TypeScript и другой код часто содержат pipe. Экранируйте каждый буквальный pipe, относящийся к ячейке, а не к структуре таблицы.

| Example | Context |
| --- | --- |
| `cat app.log \| grep ERROR` | Shell pipeline |
| `string \| null` | Type union |

Сгенерированному Markdown может требоваться ещё один уровень экранирования

Если Markdown-исходник хранится внутри JSON, JavaScript или строки другого формата, внешний язык тоже может поглощать обратные слеши. Проверяйте итоговый текст Markdown, а не предполагайте, что литерал исходного кода содержит нужную последовательность \|.

const cell = "yes\\|no"; // produces yes\|no in Markdown

Запасные варианты зависят от renderer

Числовая HTML-сущность | может работать там, где поддерживаются HTML-сущности, но переносимое решение GFM — документированное экранирование обратным слешем. Проверьте конечную среду до стандартизации запасного варианта.

Краткий чек-лист диагностики

  • Посчитайте ожидаемые колонки в заголовке, разделителе и строке данных.
  • Экранируйте только pipe содержимого, а не структурные разделители.
  • Оставляйте экранирование внутри фрагментов inline-кода.
  • Учитывайте экранирование строк JSON или языка программирования.
  • Просматривайте точный сгенерированный Markdown в целевом renderer.

Проверьте пример

Сохраните literal pipe внутри ячеек Markdown

В regex, shell и type union используются backslash-escape, чтобы pipe не создавал лишние столбцы.

| Example | Context |
| --- | --- |
| `cat\|dog` | Regex alternation |
| `cat app.log \| grep ERROR` | Shell pipeline |
| `string \| null` | Type union |

Ожидаемый результат: Импортированная таблица содержит ровно два столбца, а каждый escaped pipe остаётся внутри нужной ячейки.

Проверьте сложный случай

Импортируйте таблицу с экранированными pipe

Загрузите GFM-таблицу с примерами regex и shell pipe и изучите сгенерированный исходник и preview.

Перейти в Markdown Table Generator →