flexibleSearch.js で読み込む JSON を Movable Type で出力する
2010-12-23
2分で読了
更新: 2025-12-14
目次
「flexibleSearch.js - ページ送りに対応した高速 Ajax 検索が可能な jQuery プラグイン」の検索対象となる JSON を、Movable Type で出力する方法を紹介します。
インデックステンプレートの作成
MT でインデックステンプレートを作成します。作成するテンプレートの情報は次のようにします。
- テンプレート名
- 検索用JSON(自由に設定してください)
- 出力ファイル名
- search_data.js(変更しても構いません)
- テンプレートの種類
- カスタムインデックステンプレート
- 公開
- スタティック(既定)
テンプレートの内容は、いくつかパターンを用意しました。
その前に少し解説
remove_html="1"
HTMLタグは検索には不要なので削除しておきます。
regex_replace="/\n|\t/g",""
これは、改行やタブを残しておくと、出力するときに \n や \t に変換されてしまい、無駄にファイルサイズが大きくなってしまうので、あらかじめ削除しておくためです。
to_json="1"
これを指定すると、ハッシュ(連想配列)をきれいに JSON の形で出力してくれます。encode_js="1"だとうまくいきませんでしたので、この方法がオススメです。
なお、実際のテンプレートは、ファイルサイズを少しでも小さくするために改行を入れない方が良いと思います。
ブログ記事のみの場合
{"item":[
, ,
,
]}
ブログ記事+ウェブページの場合
{"item":[
, ,
,
, ,
,
]}
ブログ記事+ウェブページで並び順を公開日時順にする場合
, ,
, ,
{"item":[
]}
カスタムフィールドも入れたい場合
カスタムフィールドを入れたい場合も、普通のフィールドと同様にして追加してください。item{キー}のキー部分は、カスタムフィールドの basename にしておくと良いでしょう。
以上です。