2008-10-28 18 views
61

Estoy buscando una biblioteca de código que convierta secuencias de escape ANSI en color HTML, mediante etiquetas simples o CSS. Por ejemplo, algo que podría convertir esto:Una biblioteca para convertir escapes ANSI (formato de terminal/códigos de color) a HTML

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

En 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 

Conversión rompe en < br/> no es necesario, es sólo los códigos de escape que yo no conozco. Podría hackearlo yo mismo, pero probablemente me perdería algo importante como los subrayados o estropearía el funcionamiento de los colores de fondo. Prefiero simplemente sentarme encima del código de otra persona.

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

+5

Cualquier cosa en Python? – sorin

+0

¡Gran pregunta y un valioso conjunto de respuestas! – cxw

Respuesta

14
+6

este módulo instala ansi2html que puede canalizar 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 desde pixelbeat] (http://www.pixelbeat.org/scripts/ansi2html.sh) –

76

aha es 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 tiene una entrada con colores terminales mediante tubo o archivo y pone un (W3C conforman) HTML-Archivo en la salida estándar. Ejemplo:

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

o

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

para una apariencia similar a la terminal con el fondo negro.

Compilarlo por "hacer" y ponerlo donde quieras.

Sería grandioso recibir comentarios. ;-)

+0

el enlace está roto – IcanDivideBy0

+1

@ IcanDivideBy0: enlace fijo. – smokris

+2

IcanDivideBy0 se perdió algo: el "enlace alemán" en la publicación de Alexander Matthes sigue siendo válido. La publicación orig tiene un '' antes '' ziz erróneo en ella; use http://ziz.delphigl.com/tool_aha.php Además, el enlace de Alexander apunta a: - fuente en http://ziz.delphigl.com/data/aha-src-0.4.4.tar.gz, y - otros paquetes de 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.) * –

13

Python maduro biblioteca y línea de comando herramienta que todavía se mantiene: ralphbean/ansi2html

Alternativamente, para el shell Bourne: ansi2html.sh

+2

"Inspirado y desarrollado a partir del trabajo de pixelbeat y blackjack". Me gusta más esta, y la opción -i es genial :) – DavidG

+0

¡Genial! Ambos manejan 256 colores también. Upvoted. – jamadagni

+0

¡El pixelbeat [ansi2html.sh] (https://github.com/pixelb/scripts/blob/master/scripts/ansi2html.sh) funcionó muy bien para mí! – cxw

Cuestiones relacionadas