検索結果キーワードをハイライトする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 の使い方:
Yahoo!検索結果カラー(10色)を使うには: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;
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):
デフォルトがYahoo!検索結果カラーってことくらいしか利点がないけどな。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"; }
この記事に言及しているこのブログ内の記事