C'è ansifilter
più alcuni strumenti come highlight
produrrà html colorato da testo semplice come i file sorgente.
Entrambi disponibili qui.
Sì, devi reindirizzare il risultato attraverso uno strumento come ansi2html.
Senza alcuna bella stampa, la cosa più semplice che puoi sempre fare è sfuggire a tutto ciò che deve essere sfuggito e avvolgere una shell HTML di base (il seguente dovrebbe essere HTML5 minimo valido). Ad esempio, procurati fastesc:http://raa.ruby-lang.org/project/fastesc/ e questo lo avvolge in una shell HTML.
Se vuoi preservare la magia ANSI, devi convertirla in HTML, magari con http://ansi-sys.rubyforge.org/
E poi fai qualcosa del genere, a seconda delle tue esigenze:
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