Библиотека для преобразования экранирования ANSI (форматирование терминала / цветовые коды) в HTML

Я ищу библиотеку кода, которая преобразует escape-последовательности ANSI в цвет HTML с помощью простых тегов или CSS. Например, кое-что, что преобразовало бы это:

ESC [00mESC [01; 34mbinESC [00m
ESC [01; 34mcodeESC [00m
ESC [01; 31mdropbox-lnx.x86-0.6.404.tar.gzESC [00m
ESC [00mfooESC [00m

В это:

<span style="color:blue">bin</span>
<span style="color:blue">code</span>
<span style="color:red">dropbox-lnx.x86-0.6.404.tar.gz</span>
foo

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

Существует ли такой инструмент (командная строка linux) или библиотека (предпочтительно perl, python или ruby)?

3 ответа

Решение

aha это программа на языке C, доступная в пакете Ubuntu, по адресу http://ziz.delphigl.com/tool_aha.php или на github https://github.com/theZiz/aha, которая принимает входные данные с терминальными цветами канал или файл и помещает (w3c-соответствие) HTML-файл в стандартный вывод. Пример:

ls --color=always | aha > ls-output.htm

или же

ls --color=always | aha --black > ls-output.htm

для терминального вида с черным фоном.

Скомпилируйте его с помощью команды "make" и поместите в любое удобное вам место.

Было бы здорово получить обратную связь.;-)

Зрелая библиотека Python и инструмент командной строки, который все еще поддерживается: https://github.com/ralphbean/ansi2html

В качестве альтернативы для оболочки Bourne: ansi2html.sh

Другие вопросы по тегам