興味深いことに、Ruby には組み込みの ansi エスケープ コードがあります。
gemからのより強力なバージョンもあります。
残念ながら、これらのログはコンソールに出力されます。テキストがページに表示されるので、テキストを囲む HTML タグが必要です。
どうすればいいのか分かりますか?
興味深いことに、Ruby には組み込みの ansi エスケープ コードがあります。
gemからのより強力なバージョンもあります。
残念ながら、これらのログはコンソールに出力されます。テキストがページに表示されるので、テキストを囲む HTML タグが必要です。
どうすればいいのか分かりますか?
あなたが望むのは、エスケープ文字から HTML に変換することだと思います。
エスケープ文字の次のコード/カラー ハッシュを想定して、一度実行しました。
{ :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}
私がしたことは、次の変換でした(とにかく最適化されるとはほど遠い):
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
さて、私が考慮していない色や背景のギャップを埋める必要があります. しかし、私はあなたがアイデアを得ることができると思います。
それが役に立てば幸い
私が見たことのないクールな宝石へのリンクをありがとう。しかし、あなたが探しているのは Cascading Style Sheets (CSS) と呼ばれるものだと思います。その Google 検索では、インターネット上にキャッシュされている他のすべてのページが表示されるため、ここにいくつかのリンクを示します。
* SASSは、Ruby/Rails で非常に頻繁に使用される CSS を ruby 化した抽象化です。