Draws an .ans file into a grid the way an ANSI-BBS terminal would (cursor moves, the wrap at the SAUCE width, iCE colours) and writes it out as UTF-8: in colour, --plain, or --mono with coloured areas shaded by brightness. info prints the SAUCE record. One C99 file with no dependencies.
1.3 KiB
ansi
Show ANSI art in a modern terminal, or turn it into plain text.
An .ans file is CP437 text with ANSI colour and cursor codes, laid out for an
80-column BBS terminal that wraps it. Converting it with iconv gets the
characters right but not the layout: a lot of art has no line breaks at all, and
much of it moves the cursor around. ansi draws the file into a grid the way a
BBS terminal would, then writes the grid out as UTF-8 lines.
$ ansi piece.ans | less -R # in colour
$ ansi --mono piece.ans > piece.txt # no colour, coloured areas as shading
$ ansi --plain piece.ans # the characters only
$ ansi info piece.ans # title, artist, group, date and size
$ curl -s https://16colo.rs/pack/dd26/raw/dd-cola.ans | ansi
--mono is for places that show no colour, like newsgroups and mail. Each
coloured area is redrawn by how bright its colour looks, so art built from
coloured spaces keeps its shape instead of going blank.
It follows the SAUCE record for the width, shows blinking backgrounds bright
(iCE colour), and reads standard input when given no file or -.
Install
One C99 file, no dependencies.
$ make
$ make install # into ~/bin and ~/share/man/man1
$ make install PREFIX=/usr/local
Licence
GPL-2.0. See LICENSE.