検索結果キーワードをハイライトするPerlモジュール
2006-02-11-1
[Programming]
HTML::ColorKeywords
<http://ta2o.net/tools/pm/src/HTML-ColorKeywords-0.1.tar.gz>
<http://ta2o.net/tools/pm/src/> (←最新版を調べるときはこっち)
キーワード(複数)とマッチする箇所を span + background-color で
ハイライトするPerlモジュールを作ってみました。
そもそも、Yasazon や AsamasiBookSearch で使ってたやつなのです。
このたび練習がてらPerl Module化[2006-02-03-3]してみました。
↓こんな感じでハイライト。

なお、色はYahoo!のWeb検索結果のキーワードの色(10色)に準拠。
まあ、車輪の再発明でしたけどね!(いいんです、練習だから…)
こういう用途には HTML::Highlight を使うと良いでしょう。
(ref. HTML::Highlight - A module to highlight words or patterns
in HTML documents - search.cpan.org
<http://search.cpan.org/~tripie/HTML-Highlight-0.20/>)
HTML::Highlight の使い方:
ついでに、HTML::ColorKeywords の使い方 (SYNOPSIS):
<http://ta2o.net/tools/pm/src/HTML-ColorKeywords-0.1.tar.gz>
<http://ta2o.net/tools/pm/src/> (←最新版を調べるときはこっち)
キーワード(複数)とマッチする箇所を span + background-color で
ハイライトするPerlモジュールを作ってみました。
そもそも、Yasazon や AsamasiBookSearch で使ってたやつなのです。
このたび練習がてらPerl Module化[2006-02-03-3]してみました。
↓こんな感じでハイライト。

なお、色はYahoo!のWeb検索結果のキーワードの色(10色)に準拠。
まあ、車輪の再発明でしたけどね!(いいんです、練習だから…)
こういう用途には HTML::Highlight を使うと良いでしょう。
(ref. HTML::Highlight - A module to highlight words or patterns
in HTML documents - search.cpan.org
<http://search.cpan.org/~tripie/HTML-Highlight-0.20/>)
HTML::Highlight の使い方:
use HTML::Highlight;
my $doc = qq{<div><text tag="value">天気予報</text>
今日はいい天気でしょう。晴れでした。六本木ヒルズでランチ。</div>};
my $hl = new HTML::Highlight (
words => [ '六本木', '天気', 'ランチ'],
colors => [ 'red', 'green' ],
debug => 0
);
my $hldoc = $hl->highlight($doc);
print $hldoc;
Yahoo!検索結果カラー(10色)を使うには:
use HTML::Highlight;
my $doc = qq{ABCDEFGHIJKLMNOPQRSTUVWXYZ};
my $hl = new HTML::Highlight (
words => ['A','B','C','D','E','F','G','H','I','J','K','L'],
colors => ["#ffff66", "#A0ffff", "#99ff99", "#ff9999", "#ff66ff",
"#880000", "#00aa00", "#886800", "#004699", "#990099"],
);
print $hl->highlight($doc);
ついでに、HTML::ColorKeywords の使い方 (SYNOPSIS):
use HTML::ColorKeywords;
{
my $c = HTML::ColorKeywords->new(keys => ['abc','a','b']);
my $s = qq(_<a href="/">ac</a>_bc_<b>abc</b>_);
$c->do(string => \$s);
print "$s\n";
}
{
my $c = HTML::ColorKeywords->new();
my $s = "acebecddcbcaed";
my @k = ('ac', 'bc');
$c->do(keys => \@k, string => \$s);
print "$s\n";
}
{
my $c = HTML::ColorKeywords->new(colors => ['red', 'blue']);
my $s = "edhjbicopan";
$c->do(keys => ['a','b','c'], string => \$s);
print "$s\n";
}
デフォルトがYahoo!検索結果カラーってことくらいしか利点がないけどな。この記事に言及しているこのブログ内の記事
