[О блоге] [наверх] [пред] [2019-10-10 11:13:15+03:00] [f445f28611aafab4883fd15795498f45bf5ca239]
Темы: [tip]

Как сделать красивые текстовые таблицы?

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.

    [оставить комментарий]