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

80

Я ищу библиотеку кода, которая преобразует 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

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

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

Мирддин Эмрис
источник
Отличный вопрос и ценный набор ответов!
cxw

Ответы:

17

Кажется, есть модуль HTML :: FromANSI Perl .

Пистос
источник
9
этот модуль устанавливает ansi2html, который можно вводить по конвейеру. ls --color | ansi2html -p > my_web_page.html ls --color | ansi2html > my_snpipet_code-no_header-footer.html НО я предпочитаю вывод по умолчанию из ansi2html.sh из pixelbeat
Пабло Марин-Гарсия
96

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

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

или же

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

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

Скомпилируйте его "make" и поместите куда хотите.

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

Александр Маттес
источник
2
IcanDivideBy0 что-то упустил: «немецкая ссылка» в посте Александра Маттеса остается в силе. В оригинальном посте есть ошибочное "" перед "ziz"; используйте ziz.delphigl.com/tool_aha.php Далее ссылка Александра указывает на: - источник на ziz.delphigl.com/data/aha-src-0.4.4.tar.gz и - другие пакеты debian на http: // packages.debian.org/search?keywords=aha (удалите пробел (''), добавленный после ':', поскольку у меня нет привилегий включать более двух ссылок в сообщение.)
Der Schley,
7
Есть пакет ubuntu для aha
grep
1
Просто хотел отметить для других, что репозиторий github для этого приложения компилируется и запускается без проблем на os x. :)
masukomi 09
3
Я только что добавил запрос на вытягивание Homebrew для ага . Если он будет принят, установка aha brew update && brew install ahaна Mac будет простой задачей.
Nightscape
2
Насколько я могу судить, обрабатывает только 16 цветов.
Gringo Suave
19

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

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

Янус Троельсен
источник
2
«Вдохновленный и разработанный на основе работы пиксельбита и блэкджека». Мне этот больше нравится, и опция -i великолепна :)
DavidG
Большой! Оба поддерживают 256 цветов. Проголосовали.
jamadagni
Pixelbeat ansi2html.sh у меня отлично сработал!
cxw
Не ограничиваясь Борна больше и Деб, ням, APT пакеты доступны: pypi.python.org/pypi/ansi2html/1.0.7
варочные панели