Генератор Markdown-таблиц

Преобразуйте строки с табуляцией в Markdown-таблицу с необязательной строкой заголовков.

Введите данные и выполните расчёт.

Как превратить данные с табуляцией в Markdown-таблицу?

Коротко: Генератор Markdown-таблиц превращает строки с табуляцией в текст таблицы с вертикальными чертами. Каждая строка ввода становится строкой таблицы, каждая табуляция начинает новый столбец, а разделитель всегда выглядит как | --- |. Если стоит галочка заголовка, первая строка станет шапкой, а каждый символ | в ячейке получит вид \|.

Главное об инструменте

  • Генератор Markdown-таблиц читает поле «Строки со столбцами через табуляцию»: каждая строка ввода даёт строку таблицы, каждый символ табуляции открывает новый столбец.
  • Галочка «Использовать первую строку как заголовок» включена по умолчанию; если её снять, инструмент запишет шапку из пустых ячеек, а все строки ввода останутся данными.
  • Строка-разделитель всегда состоит из --- в каждом столбце: двоеточий для выравнивания нет, а ячейки не добиваются пробелами до ровной ширины.
  • Ширина таблицы равна самой длинной строке ввода, а более короткие строки добиваются пустыми ячейками.
  • Каждая вертикальная черта в ячейке заменяется на \|; обратные косые черты не трогаются, поэтому уже экранированное \| превратится в \\|.
  • Текст ячеек не обрезается по пробелам. Удаляются только полностью пустые строки в конце ввода, а пустая строка в середине становится строкой из пустых ячеек.
  • Преобразование выполняется скриптом страницы без сетевых запросов, а кнопка «Копировать Markdown» пишет в буфер обмена браузера.

Как пользоваться

  1. Скопируйте ячейки из Excel или Google Таблиц (при копировании столбцы разделяются табуляцией) и вставьте их в поле «Строки со столбцами через табуляцию».
  2. Оставьте галочку «Использовать первую строку как заголовок», если в первой строке названия столбцов. Если там обычные данные, снимите её.
  3. Нажмите «Создать таблицу». Markdown появится в поле «Результат Markdown», а в строке состояния будет число строк и столбцов.
  4. Нажмите «Копировать Markdown», вставьте текст в README, вики или issue и проверьте отображение там же.

Логика преобразования

Это работа со строками, арифметики здесь нет. Инструмент выполняет такие шаги.

rows   = ввод, разбитый по переводам строк, затем каждая строка по табуляции
rows   = rows без пустых строк в конце
width  = наибольшее число ячеек в одной строке
cell   = текст ячейки (пусто, если её нет), где каждый | заменён на \|
line   = "| " + ячейки через " | " + " |"
output = строка заголовка, разделитель (--- по числу столбцов), строки данных

Ничего не округляется. В статусе считаются все строки, включая шапку: заголовок и две строки данных дают «3 строки».

Пример расчёта

Эти входные данные прогнали через ту же логику, что и в инструменте. В колонке «Ввод» стрелка обозначает символ табуляции.

ВводГалочка заголовкаMarkdown на выходеСтатус
Команда→Что делает→Пример
Конвейер→Передаёт вывод→ls | wc -l
Копия→Буфер обмена→Ctrl+C
Включена| Команда | Что делает | Пример |
| --- | --- | --- |
| Конвейер | Передаёт вывод | ls \| wc -l |
| Копия | Буфер обмена | Ctrl+C |
3 строки, 3 столбца
Товар→Цена
Чай→250 ₽
Кофе→490 ₽→1 кг
Выключена| | | |
| --- | --- | --- |
| Товар | Цена | |
| Чай | 250 ₽ | |
| Кофе | 490 ₽ | 1 кг |
3 строки, 3 столбца
Город→Пояс
(пустая строка)
Москва→UTC+3
Включена| Город | Пояс |
| --- | --- |
| | |
| Москва | UTC+3 |
3 строки, 2 столбца

Команда с вертикальной чертой в шпаргалке

Допустим, вы пишете шпаргалку по терминалу, и в одной ячейке лежит ps aux | grep node. В обычной Markdown-таблице эта черта разрезала бы ячейку надвое. Генератор превратит её в ps aux \| grep node, и в GitHub-подобных просмотрщиках она отобразится как обычная черта.

Просмотрщики ведут себя по-разному в мелочах, поэтому смотрите превью там, где таблица будет жить.

Почему всё слилось в один столбец

Столбцы делятся только настоящими символами табуляции. Запятые, точки с запятой и ряды пробелов не считаются, так что вставленная строка CSV вроде a,b,c станет одной ячейкой.

Клавиша Tab в текстовом поле браузера обычно переносит фокус на следующий элемент, а не вставляет табуляцию. Поэтому вставляйте данные из таблицы, а не набирайте разделители руками.

Таблица без заголовка

В таблицах GitHub-flavored Markdown над разделителем должна стоять строка заголовка. Поэтому при снятой галочке инструмент выводит строку из пустых ячеек, а не пропускает её. Если месту назначения нужны настоящие названия, добавьте их первой строкой ввода и оставьте галочку включённой.

Перенос строки внутри ячейки

В коде есть правило, которое заменяет перенос строки в ячейке на <br>. На практике оно не срабатывает: ввод режется по переносам раньше, чем обрабатываются ячейки, и каждый перенос начинает новую строку таблицы. Если просмотрщик понимает HTML, впишите <br> в ячейку сами, и инструмент оставит его как есть.

Чего инструмент не делает

  • Генератор не разбирает CSV, поля в кавычках и запятые как разделители. Столбцы делятся только табуляцией.
  • Генератор не задаёт выравнивание столбцов: вариантов «влево», «по центру» и «вправо» нет.
  • Генератор не разбирает и не проверяет Markdown внутри ячеек. Ссылки, жирный текст и код проходят без изменений.
  • Генератор не показывает превью: в поле «Результат Markdown» виден только исходный текст.

Частые вопросы

Можно ли вставить CSV в генератор Markdown-таблиц?

Нет, столбцы делятся только по табуляции, а не по запятым. Строка CSV окажется одной ячейкой, поэтому сначала замените запятые табуляциями или вставьте данные из таблицы.

Что делает галочка «Использовать первую строку как заголовок»?

Она делает первую строку ввода шапкой таблицы. Галочка включена по умолчанию, а все остальные строки становятся строками данных.

Что будет, если снять галочку заголовка?

Инструмент запишет шапку из пустых ячеек и строку-разделитель, а все строки ввода оставит данными. Markdown-таблице нужен заголовок, а названия столбцов инструмент не придумывает.

Как генератор обрабатывает вертикальную черту внутри ячейки?

Он заменяет каждую черту на обратную косую черту и саму черту, поэтому символ остаётся внутри своей ячейки. Обратные косые черты не трогаются, так что уже экранированная черта получит вторую косую.

Может ли в ячейке быть перенос строки?

Через текстовое поле нет, потому что каждый перенос начинает новую строку таблицы. Если просмотрщик понимает HTML, впишите в ячейку тег br самостоятельно, и инструмент оставит его без изменений.

Почему все данные оказались в одном столбце?

Скорее всего, во вставленном тексте вместо настоящих табуляций стоят пробелы или запятые. Столбцы делит только табуляция, поэтому вставляйте данные из таблицы, а не набирайте разделители вручную.

Можно ли настроить выравнивание столбцов в готовой таблице?

Нет, строка-разделитель всегда состоит из --- в каждом столбце. Если нужно выравнивание влево, по центру или вправо, добавьте двоеточия в разделитель вручную.

Загружается ли введённый текст куда-нибудь?

Нет, преобразование выполняется в браузере, а скрипт инструмента не делает сетевых запросов. Кнопка «Копировать Markdown» только записывает текст в буфер обмена.

Связанные инструменты

Проверено: