Da ist ansifilter
plus einige Tools wie highlight
erzeugt farbiges HTML aus einfachem Text wie Quelldateien.
Beide hier erhältlich.
Ja, Sie müssen das Ergebnis durch ein Tool wie ansi2html leiten.
Ohne hübsches Drucken ist das Einfachste, was Sie immer tun können, alles zu maskieren, was maskiert werden muss, und eine einfache HTML-Shell darum zu wickeln (das Folgende sollte gültiges minimales HTML5 sein). Holen Sie sich zum Beispiel fastesc:http://raa.ruby-lang.org/project/fastesc/, und packen Sie es in eine HTML-Shell.
Wenn Sie die ANSI-Magie bewahren wollen, müssen Sie diese in HTML umwandeln, vielleicht mit http://ansi-sys.rubyforge.org/
Und dann machen Sie je nach Bedarf so etwas:
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