Una biblioteca para convertir los escapes ANSI (formato de terminal / códigos de color) a HTML [cerrado]

80

Estoy buscando una biblioteca de códigos que convierta secuencias de escape ANSI en color HTML, mediante etiquetas simples o CSS. Por ejemplo, algo que convertiría esto:

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

Dentro de esto:

<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

No es necesario convertir las rupturas en <br/>, son solo los códigos de escape que no conozco. Podría hackearlo yo mismo, pero probablemente me perdería algo importante como subrayados o estropearía el funcionamiento de los colores de fondo. Prefiero sentarme encima del código de otra persona.

¿Existe tal herramienta (línea de comando linux) o biblioteca (perl, python o ruby ​​preferiblemente)?

Myrddin Emrys
fuente
¡Gran pregunta y un valioso conjunto de respuestas!
cxw

Respuestas:

17

Parece haber un módulo HTML :: FromANSI Perl .

Pistos
fuente
9
este módulo instala ansi2html que puede canalizar la entrada. ls --color | ansi2html -p > my_web_page.html ls --color | ansi2html > my_snpipet_code-no_header-footer.html PERO prefiero la salida predeterminada de ansi2html.sh de pixelbeat
Pablo Marin-Garcia
96

ahaes un programa en lenguaje C, disponible en un paquete de Ubuntu, en http://ziz.delphigl.com/tool_aha.php o en github https://github.com/theZiz/aha , que toma una entrada con colores de terminal por pipe o archivo y coloca un archivo HTML (conforme a w3c) en stdout. Ejemplo:

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

o

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

para una apariencia de terminal con fondo negro.

Compílelo por "make" y póngalo donde quiera.

Sería genial recibir comentarios. ;-)

Alexander Matthes
fuente
2
IcanDivideBy0 perdió algo: el "enlace alemán" en la publicación de Alexander Matthes sigue siendo válido. La publicación original tiene un error '' antes de "ziz" en él; use ziz.delphigl.com/tool_aha.php Además, el enlace de Alexander apunta a: - fuente en ziz.delphigl.com/data/aha-src-0.4.4.tar.gz , y - otros paquetes debian en http: // packages.debian.org/search?keywords=aha (elimine el espacio ('') agregado después de ':', ya que no tengo privilegios para incluir más de 2 enlaces por publicación.)
Der Schley
7
Hay un paquete de ubuntu para aha
grep
1
Solo quería señalar para otros que el repositorio de github para esta aplicación se compila y se ejecuta sin problemas en os x. :)
masukomi
3
Acabo de agregar una solicitud de extracción de Homebrew para aha . Si se acepta, instalar aha será muy sencillo brew update && brew install ahaen Mac.
Paisaje nocturno
2
Parece manejar solo 16 colores, por lo que puedo decir.
Gringo Suave
19

Biblioteca de Python madura y herramienta de línea de comandos que aún se mantiene: ralphbean / ansi2html

Alternativamente, para el shell Bourne: ansi2html.sh

Janus Troelsen
fuente
2
"Inspirado y desarrollado a partir del trabajo de pixelbeat y blackjack". Me gusta más este, y la opción -i es genial :)
DavidG
¡Excelente! Ambos manejan 256 colores también. Voto a favor.
jamadagni
¡El pixelbeat ansi2html.sh funcionó muy bien para mí!
cxw
No se limita a Bourne más y deb, yum, paquetes apt disponibles: pypi.python.org/pypi/ansi2html/1.0.7
Placas