2005年02月04日 (金)

CommonLib.js を自動拡張するスクリプト

iblogPatcher を利用していない人にもエントリからタイトルを取得する手段を JavaScript で提供する拡張された CommonLib.js をダブルクリック一つで作成するスクリプト extCommonLibs を配布します。

経緯

以前から會澤さんがコメントのページに元エントリのタイトルを表示させたり、前後のエントリへのリンクにタイトルを付けたりするために、by hand で CommonLib.js を拡張してデータを追加しているのを見て、その苦労をなんとかして軽減させたいと思っていました。というのはシェルすなわちターミナルの知識があればその作業の重要な部分は自動化できるからです。

少し前に使用なさっている JavaScript ファイルが壊れてしまってもお忙しいためなかなか復旧が進みません。僕も少し見て直ぐに原因がわかるという範囲ではないため何の力にもなれずにもんもんとしていました。だいたい 會澤さん のレベルなら僕が見て直ぐにわかることはご自分でもわかっちゃいますから。

そこである日思い立ちました。手作業部分があるとどうしてもいつかミスをしてしまいます。それが運の悪いミスだと原因がなかなかわからず無駄な時間を費やしてしまうものです。だったら手作業部分を補うスクリプトを作ってプレゼントすれば、もっと 會澤さん の創意工夫が際立つだろうし復旧の一助にもなるんじゃないかと。

なにしろ 會澤さんKHOOさん 同様、僕が .Mac の会員専用の Disucussion Boards を活動の場としていた頃から、お書きになる文章に接してきた方です。たまには親近感を形にしてみたいです。

特徴

extCommonLibs には次の特徴があります。
  • エントリの ID からタイトルを効率よく取得することができる。
  • エントリの ID からカテゴリの ID を取得する関数 getCategoryUUIDForEntry が iBlog オリジナルよりも効率的になる。
  • CommonLib.js 自体は変更せず、代替の MyCommonLib.js を作成する。

    MyCommonLib.js は CommonLib.js から生成され CommonLib.js 互換の JavaScript ファイルです。元の CommonLib.js が残っているのでいつでも一時撤退ができます。

  • プレビュー後に extCommonLibs を一回実行する必要があるので、手数が一つ増えてしまいます。

ダウンロード

extCommonLibs は次のリンクから取得してください。
extCommonLibs.dmg.gz

ダウンロードした圧縮ファイルを解凍すると dmg ファイルすなわちディスクイメージのファイルになります。これをマウントしたボリュームにある extCommonLibs がスクリプトです。これをそのまま使用してもよいですし、好きなところへコピーして使っても OK です。

このスクリプトは JEdit のような改行の自動変換があるエディタで開くと、何もせずに保存しただけで壊れてしまうとてもデリケートな内容になっています。開いて見ても元々書いてある内容と若干違うものになってしまいます。改造したりするときはそれ相当の覚悟を持ってやってください。

extCommonLibs の使い方

extCommonLibs のアイコンを Finder からダブルクリックするだけで、ご自分の iBlog による各ブログサイトのプレビューフォルダに MyCommonLib.js が作成されます。

MyCommonLib.js の使い方

まず、iBlog の各テンプレートファイルで CommonLib.js と書いてあるところを MyCommonLib.js と書き換えます。そうすると今までできていたことはそのままできます。

MyCommonLib.js には EntryUUID2Title という対応表が JavaScript の配列として用意されています。これはその名のとおりエントリの ID からそのエントリのタイトルを取得するためのものです。JavaScript コードの中で EntryUUID2Title['E12345678'] というように添字にエントリの ID を与えるとエントリのタイトルが得られます。

お断り

これはあくまでも素材です。これを活かしてどんな機能をサイトに付加するかは各自の創意と工夫でお願いします。そのうち會澤さんがエントリしてくれるかもしれません。私自身は iblogPatcher を使用しているのでこれ相当のものは既に持っていて、そちらを活用しています。ですから私自身はこのスクリプトを使用しませんし、十分な動作確認をするだけの動機がありません。

iblogPatcher は自分が欲しくて作っり、もったいないからシェアしているというスタンスです。それでも自分にとって合理的な範囲でサポートや相談に応じていますが、extCommonLibs は更に自分は使わないのでそこまで手厚くはしたくてもなかなか難しいということを予め了承してください。

とは言っても iBlog ユーザの方はどなたも礼儀正しく一度も不快な思いをしたことはありませんので、変に遠慮はする必要はありません。


Posted: 12:19    | Comment | Trackback


以下、類似エントリです。