Конвертировать вывод консоли в HTML код – это задача, которая может пригодиться при составлении документации, для вывода результатов облачных вычислений на страницы сайта и т.д. При этом если удастся сохранить цвета в том виде, как они есть в стандартном выводе – это значительно увеличит информативность текста.
Если перед вами стоит именно эта задача – сохранить цветной вывод консоли в HTML код и при этом сохранить исходные цвета, то вам очень пригодиться готовое решение – программа aha.
aha – это Ansi HTML адаптер.
aha принимает SGR-раскрашенный ввод и печатает W3C соответствующий HTML-код.
aha читает ввод из файла или стандартного ввода и записывает HTML-код в стандартный вывод.
Исходный код программы: https://github.com/theZiz/aha
Установка программы очень проста:
git clone https://github.com/theZiz/aha.git
cd aha/
make
sudo make install
использование:
aha <опции> [-f файл]
Справка по aha:
aha (--help|-h|-?)
--pink, -p: Розовый фон
--stylesheet, -s: Использовать таблицу стилей вместо встроенных стилей
--iso X, -i X: Использовать ISO 8859-X вместо of utf-8. X должна быть 1..16
--title X, -t X: Дать html выводу заголовок "X" вместо
"stdin" или имени файла
--line-fix, -l: Использовать фикс для ввода, использующего контролирующие последовательности
для изменения позиции курсора вроде htop. Это горячее исправление,
оно может не работать со программами вроде htop. Пример:
echo q | htop | aha -l > htop.htm
--word-wrap, -w: Заворачивать длинные строки в html файле. Это работает с
Браузерами поддерживающими CSS3 а также со многими старыми.
--no-header, -n: Не включать заголовок в генерируемый HTML,
полезно для вставки в полные HTML файлы.
Примеры:
aha --help | aha --black > aha-help.htm
Записывает текст этой справки в файл aha-help.htm
colordiff oldfile.c newfile.c | aha > colordiff.htm
Создаёт HTML файл с раскрашенным diff-выводом двух файлов "oldfile.c" и "newfile.c" с белым фоном.
ls --color=always | aha --pink > ls.htm
Создаёт HTML файл с раскрашенным ls-выводом и розовым фоном.
echo q | htop | aha --black --line-fix > htop.htm
Создаёт HTML файл с выводом htop. Вы должны использовать --line-fix поскольку htop использует другую команду новой строки.