From: Sergey Matveev Date: Thu, 10 Oct 2019 08:13:15 +0000 (+0300) Subject: Как сделать красивые текстовые таблицы? X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=f445f28611aafab4883fd15795498f45bf5ca239;p=stargrave-blog.git Как сделать красивые текстовые таблицы? http://www.snake.net/software/troffcvt/tbl.html Годами я задавался вопросом о том, как бы уметь делать таблички текстовые красивые. Иногда я делал HTML с table и рендерил текстовым броузером. Но держать для этого links (lynx таблицы там себе кажет) не особо хочется. Когда-то я помнил про Vim плагины которые могут создавать их красиво и в real-time править, но когда нужно объединять ячейки, то начинаются проблемы. Нашёл Python и Go библиотеки которые позволяют рендерить то, что вы им задали. То есть, можно было бы таблицу желаемую оформить в виде кода, дальше рендерить. Но как-то сложно выглядит, плюс, опять же, с объединением ячеек не всегда выйдет. Вспомнил тут что в старой книге 1990-х годов по Unix SysV я видел roff программу tbl. Решил вспомнить а трудно ли её использовать и каковы её возможности. Вообще через пару минут чтения man-а уже достаточно информации чтобы делать более сложные таблицы чем большинство библиотек предлагает. Из коробки в системе tbl ставится вместе с groff/troff всяким, что у меня будет всегда. Какая-нибудь вот такая штука: .TS tab(;) allbox; l l l ld r ^ l rd. 0000;foobar T{ 1111 .br 2222 T};foo r; T{ 3333 .br 4444 T};bar \^;\^ .TE красиво отобразится в виде: ┌─────┬────────┐ │0000 │ foobar │ ├─────┼────────┤ │1111 │ │ │2222 │ │ ├─────┤ │ │ r │ foo │ ├─────┼────────┤ │3333 │ │ │4444 │ bar │ └─────┴────────┘ Нужно только не забывать что для отображения кириллицы надо явно говорить про UTF-8: tbl ... | groff -Tutf8 -Dutf8. ---