2010-01-09 4 views
11

est-il un moyen de convertir la sortie bash en HTML? par exemple, si j'avais une sortie colorisée dans bash (quelque chose comme htop), comment puis-je le convertir en balises html ... (quelque chose comme: <p style="color: red">some text</p>)sortie shell linux à html

+1

À quoi ressembleraient les résultats de la conversion? Il n'y a pas de structure reconnaissable ici qui pourrait être convertie en balises HTML. Qu'essayez-vous exactement d'accomplir? –

+0

Vos données semblent être pleines de séquences de contrôle ANSI. Est-ce intentionnel? –

+2

Connexes: http://stackoverflow.com/questions/245121/a-library-to-convert-ansi-escapes-terminal-formatting-color-codes-to-html – Tobu

Répondre

19

Il y a ansifilter De plus, certains outils comme highlight produiront du code HTML colorisé à partir de texte brut tel que les fichiers sources. Les deux sont disponibles here.

+3

C'est exactement ce que je veux ... ansifilter -i fichier -H -o fichier.html – linker

9

Oui, vous avez besoin de canaliser le résultat à travers un outil comme ansi2html.

3

Sans aucune jolie impression, la chose la plus simple que vous pouvez toujours faire est d'échapper à tout ce qui doit s'échapper, et envelopper un shell HTML de base (ce qui suit devrait être valide au minimum HTML5). Par exemple, tenez-vous en contact avec fastesc: http://raa.ruby-lang.org/project/fastesc/ et enveloppez-le dans un shell HTML.

Si vous souhaitez conserver la magie ANSI, alors vous devez convertir en HTML, peut-être avec http://ansi-sys.rubyforge.org/

Et puis faire quelque chose comme ça, selon vos besoins:

require 'ansisys' 


def ansi_escape(string) 
    terminal = AnsiSys::Terminal.new 
    terminal.echo(string) 
    terminal.render 
end 

def to_html(string) 
    %Q{ <!DOCTYPE html> 
     <title>Converted to html</title> 
     <pre> 
     #{ansi_escape(string)} 
     </pre> 
    } 
end 
+0

+1 Ceci est ma réponse aussi ... – linker

+0

Cela nécessite probablement encore l'échappement HTML. – nes1983