Il y a ansifilter
plus quelques outils comme highlight
produira du code HTML colorisé à partir de texte brut, tel que des fichiers source.
Les deux sont disponibles ici.
Oui, vous devez diriger le résultat via un outil comme ansi2html.
Sans aucune jolie impression, la chose la plus simple que vous puissiez toujours faire est d'échapper à tout ce qui doit être échappé et d'envelopper un shell HTML de base (ce qui suit doit être du HTML5 minimal valide). Par exemple, récupérez fastesc :http://raa.ruby-lang.org/project/fastesc/, et encapsulez-le dans un shell HTML.
Si vous souhaitez conserver la magie ANSI, vous devez la convertir en HTML, peut-être avec http://ansi-sys.rubyforge.org/
Et puis faites 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