web-dev-qa-db-fra.com

Une bibliothèque pour convertir les échappements ANSI (formatage terminal / codes couleurs) en HTML

Je recherche une bibliothèque de code qui convertit les séquences d'échappement ANSI en couleur HTML, via des balises simples ou CSS. Par exemple, quelque chose qui convertirait ceci:

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

En cela:

<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

La conversion des pauses en <br/> n'est pas nécessaire, c'est juste les codes d'échappement que je ne connais pas. Je pourrais le pirater moi-même, mais je manquerais probablement quelque chose d'important comme les soulignements ou gâcher le fonctionnement des couleurs d'arrière-plan. Je préfère m'asseoir sur le code de quelqu'un d'autre.

Existe-t-il un tel outil (ligne de commande linux) ou bibliothèque (Perl, python ou Ruby de préférence))?

70
Myrddin Emrys

Il semble y avoir n module Perl HTML :: FromANSI .

15
Pistos

aha est un programme en langage C, disponible dans un package Ubuntu, sur http://ziz.delphigl.com/tool_aha.php ou sur github https://github.com/theZiz/aha , qui prend une entrée avec les couleurs des terminaux par pipe ou fichier et place un fichier HTML (conforme au w3c) dans stdout. Exemple:

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

ou

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

pour un look de terminal avec un fond noir.

Compilez-le par "make" et placez-le où vous voulez.

Ce serait formidable d'obtenir des commentaires. ;-)

84

Mature Python bibliothèque et outil de ligne de commande qui est toujours maintenu: ralphbean/ansi2html

Alternativement, pour le Bourne Shell: ansi2html.sh

16
Janus Troelsen