俺の行動の半分は「勢い」で出来ています。と思います。そんな勢いを駆使して、今回も変なもん作ってみました。

先日のエントリーでJavaScript+DHTMLを使ったMT検索結果キーワードハイライト表示を紹介してみたんですが、これ、DHTML使ってるもんでMacじゃウマイこといかないんですな。(つか、元々動かないし。)
それに正規表現を利用した検索もせっかくできるのに、ハイライト箇所を探すのに単純文字列比較しかしてなかったもんだから、該当キーワードが見つけられないのでイマイチ面白みなかったっつーのもあって、「せっかくだからMTのプラグイン化でもしてみっか。」と作ってみました。
とりあえずダウンロードはこちら。
Search Keyword Highlight Plugin
(Highlight.zip 1.54KB)
まず最初に注意。このプラグイン、Movable Type のバージョン2.661でしか動作確認してません。文字コードもUTF-8環境でのみ確認です。というか、ハンチングでしか確認してないので他で動くかわかりません。バージョン3以降に適用した場合にメニューに表示される概要説明とか実装してますが、カッコ付けたかっただけで動くか確認してません。ごまんなさい。
バージョン3以降で動かして動いたりなんかしたら、「動くっぽいよ。」とか教えてもらえればシアワセです。
Zipファイルを解凍してplファイルを取り出します。プラグインのインストールは他のMTプラグインと同じようにMT設置ディレクトリ直下のpluginsディレクトリにぶっこんでおいてもらえればOKです。で、それが完了したら、検索画面テンプレートにハイライトフィルタの設定を行います。検索画面テンプレートはMT設置ディレクトリ直下のsearch_templatesディレクトリ内にあるdefault.tmplってファイルです。
このファイルをエディタなどで開いて、<MTSearchResults>コンテナタグで囲まれた中にある<$MTEntryTitle$>や<$MTEntryExcerpt$>にhighlightフィルタを設定します。
例)
<$MTEntryTitle$> → <$MTEntryTitle highlight="2"$>
のような感じです。highlightフィルタを効果的に、というか、検索該当箇所がある本文を直接見えるようにしたほうがハイライトさせる意味もあると思いますので、<$MTEntryExcerpt$>でエントリー概要を表示する代わりに、<$MTEntryBody$>や<$MTEntryMore$>タグを使って本文そのものを表示させてみるのもいいかもしれません。(ってか、おすすめです。)
それと、highlightフィルタパラメータには2種類あります。
highlight="1"
1はタグ内容テキストに対してハイライト加工(ハイライトタグの追加)のみを行います。
highlight="2"
2はタグ内容テキストに元々含まれるHTMLタグを全て取り除いた上で、ハイライト加工を行います。MT標準で用意されているグローバルフィルタのremove_htmlをハイライト加工前に処理するのと同じです。(注意:highlightフィルタを利用した場合、指定タグ内で同時にremove_htmlを指定することは出来ません。remove_htmlを指定するとハイライト加工が消去されてしまいます。) とりあえずよくわかんない場合はこっちを指定しておいたほうがいいと思います。なんとなく。
上記のフィルタ設定をテンプレートに反映させたらプラグインの導入、用意が完了です。
早速検索ページから任意のキーワードで検索を試してみてくださいな。Googleキャッシュ気分満載。
(仕様制限)
・大小文字を区別した検索の場合、検索結果は指定を反映していますが、フィルタは区別無くハイライトしてしまいます。
・<MTComment>コンテナタグを利用してコメント本文にhighlightフィルタを適用する場合は、<$MTCommentBody$>タグにフィルタ設定するのではなく、<MTComment>コンテナタグのほうにhighlightフィルタを設定してください。ハイライト背景色スタイルが反映されない現象がおきます。
(sanitizesの許可タグ制限が影響してるようなのでmt.cfgのGlobalSanitizeSpec設定で回避できそうですが別にコンテナタグに設定してても不自由無いのでこれで使ってみてください。)
お久しぶりでーす。
v.3.115(v.3.151?)での動作確認報告、ありがとうございます。
ってか、19740308TM、そんな最先端MTにバージョンアップされてたんですねえ。
2.6使ってる人、もうさすがに少なくなってきてるなあ。
v.3.151ですよ。失礼。
うちはHINAGATAさんを使ってるせいか、検索結果に本文概要が表示されないので、そこらへんも併せていじってみようと思うです。
2.6あたりは、スパムが酷くて止めちゃいました。
そうそう。デフォルトのテンプレートだと結果出力が概要のみになってるので、本文と続きも出力してあげるようにするといい感じですよ。
なかなか検索結果テンプレートっていじる機会無かったと思うのでこの機会にゼヒ。
俺もバージョン3にしてみようかなあ。
なんかプラグイン作るにもバージョン3用に作ったほうがいろいろできるみたいなんですよねえー。
(今回、プラグインについて調べてみてわかった説。)
検索結果ハイライトプラグインのご提供ありがとうございます。従来の検索結果で、googleのキャッシュ検索のようにハイライトできないかなと思っていたのでこれが実現できて嬉しいです。version3.11-jaで動作しました。
はじめまして、当サイトで貴サイトを紹介させてもらいました。
TBしたかったのですが、新規エントリーが最後まで保存再構築できず、コメントさせていただきました。
紹介内容に失礼がありましたら、コメントいただけると幸いです。
今後ともお世話になると思います。
よろしくお願い申し上げます。
ずいぶんご無沙汰しています。
3年ぶりくらいに私のサイトをリニューアルしました。
MT4.21jaでこのハイライトプラグインを試したところ使えました〜。
複数キーワードで検索できるようになっていろんな色が出てきて、グーグルっぽくなりました。
このプラグインは2008年9月現在健在でした。
報告まで〜。
せっかくバイト休んだので(何か違う)、自分のMTに色々手入れしてみる。テンプレ元... (2005/03/07 19:08)
(画像クリックするとひとまわり大きな画像で見れます。) おもしろいプラグイ発見... (2005/04/21 22:20)
Magic White さま 「検索結果をハイライトにするプラグイン」 を拝見し... (2005/04/22 00:27)
HuntingGirledCollective 検索結果ハイライトプラグインを参照して、検索画面で画面表示をハイライトにするプラグインを導入した。このプラグインはMT2.661でしか確認していないということだ... (2005/04/23 17:02)
こちらをご覧ください。これは、「ハガレン」をキーワードに指定した当サイトの検索結果画面です。 Googleのようにキーワードをハイライト表示しています。 これは... (2005/05/05 12:29)
ちょっと前からご覧頂いてる方にはおわかりかと思いますが、 私、結構カスタマイズ好... (2005/06/16 15:31)