Библиотека для преобразования экранирования 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