日記はScrapboxに移動しました。

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> &gt; 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);

こんな感じになります。

f:id:antipop:20090302025944p:image

boldがちょっとわかりにくいですが、ちゃんど太字になってます。

Leave a Reply

Your email address will not be published. Required fields are marked *