Term::ANSIColor::Markupというモジュールを作成した
追記: Term::ANSIColor::Tagという名前が微妙だなーと思ったので、Term::ANSIColor::Markupに変更しました。
System.Exit - TermColor - コンソールへの出力を HTML っぽく色付け♪にて公開されているtermcolorというライブラリが素敵だなと思ったので、Perlでも似たような感じで使えるようなものを作ってみた。
Term::ANSIColorは便利だけどインタフェイスがなんかちょっと難しい。Term::ANSIColor::Tagを使うと、HTMLっぽいタグでマークアップしたテキストをわたしてやるだけで、term向けに色付けされた文字列を簡単に得ることができます。使い方は以下の通り。簡単〜。
use Term::ANSIColor::Markup; my $text = qq{aaa<red>bbb<bold>ccc</bold>ddd<black><on_yellow>eee</on_yellow></black>fff</red> > ggg}; my $parser = Term::ANSIColor::Markup->new; $parser->parse($text); print $parser->text; # or just call colorize method this way: print Term::ANSIColor::Markup->colorize($text);
こんな感じになります。
boldがちょっとわかりにくいですが、ちゃんど太字になってます。