I assume that you want to convert from escape characters to HTML.
I did this once, assuming the following code / color hash for escape characters:
{ :reset => 0, :bright => 1, :dark => 2, :underline => 4, :blink => 5, :negative => 7, :black => 30, :red => 31, :green => 32, :yellow => 33, :blue => 34, :magenta => 35, :cyan => 36, :white => 37, :back_black => 40, :back_red => 41, :back_green => 42, :back_yellow => 43, :back_blue => 44, :back_magenta => 45, :back_cyan => 46, :back_white => 47}
I did the following conversion (far from being so optimized):
def escape_to_html(data) { 1 => :nothing, 2 => :nothing, 4 => :nothing, 5 => :nothing, 7 => :nothing, 30 => :black, 31 => :red, 32 => :green, 33 => :yellow, 34 => :blue, 35 => :magenta, 36 => :cyan, 37 => :white, 40 => :nothing, 41 => :nothing, 43 => :nothing, 44 => :nothing, 45 => :nothing, 46 => :nothing, 47 => :nothing, }.each do |key, value| if value != :nothing data.gsub!(/\e\[#{key}m/,"<span style=\"color:#{value}\">") else data.gsub!(/\e\[#{key}m/,"<span>") end end data.gsub!(/\e\[0m/,'</span>') return data end
Well, you will need to fill in the blanks of the colors that I am not considering, or the background. But I think you can get this idea.
Hope this helps