HaloScanComments.js


HaloScanComments.js とは

2009 年でコメントサービスの HaloScan が終了しました。JS-Kit ECHO に移行しなかった人は、取り敢えず HaloScan からコメントデータのエクスポートをしたことと思います。しかし、エクスポートしてできた XML ファイルをインポートできる別なコメントサービスが見つからず困っていませんか? インポートしなくてよいのならサービスは直ぐに見つかると思います。でもそれでは過去のコメントは無くなってしまったも同然です。

そこで iBlogThingamablog のようなサーバサイドに何も要求しないブログアプリケーションでも JavaScript で過去のコメントを表示しようというのが HaloScanComments.js です。

特徴

ポップアップとインライン表示

HaloScanComments.js は二種類の表示形式をサポートしています。一つはポップアップ表示でもう一つはインライン表示です。

ポップアップ表示

HaloScan の昔ながらの取り付け方でコメントページへのリンクを付与した場合を再現する表示方法です。Comments(4) のような文言でリンクを表示し、それをクリックするとコメントページがポップアップウィンドウで表示されるものです。

インライン表示

比較的後になってから可能になったインラインでコメントを表示する場合を再現する表示方法です。寄せられたコメントがそのページ内に展開されます。

アバター表示のサポート

HaloScan がサポートしていた Gravatar によるアバターを表示できます。HaloScan の設定にあったアバター画像のサイズやレート指定もできます。

一般用と管理者用

HaloScan からダウンロードしたデータには各コメントの投稿者のメールアドレスと IP アドレスが記載されています。しかしこれらを公開状態にするのはよくありません。そこで、投稿者のメールアドレスと IP アドレスが全く含まれない一般用と、それらが含まれている管理者用の二種類を使い分けられるようになっています。

コメントスレッドが多くても重くならない

iBlog の JavaScript はエントリ数が多くなるとそれだけサイトのページが重くなりますが、HaloScanComments.js はエントリに相当するコメントスレッドの数がどんなに多くても重くなりません。それは各コメントスレッドのデータがファイルとして独立していて、HaloScanComments.js は必要なファイルしかロードしないからです。このため閲覧者のブラウザだけでなくサーバにも必要最小限の負荷しかかけません。

一つのコメントスレッドに大量のコメントが入っているとさすがに重くなりますが、200 コメントでもアバター画像の表示も含めて私の手許のブラウザでは 1 秒程度です。

必要なもの

準備に必要なもの

HaloScanComments.js を使用して過去のコメントを表示するサイトを作るための準備に以下のものが必要です。

  • HaloScan からエクスポートした xml ファイル。

    あるいは「HaloScan コメントを一気にダウンロードするコマンド(β版)」によって HaloScan 互換の形式で出力した xml ファイルでもよいです。

  • Perl モジュール XML::Parser が使用できる Perl 実行環境。

    上の xml ファイルを HaloScanComments.js が使用する json ファイルに変換するために必要です。もちろん変換するコマンドは用意してあります。

web サーバに必要なもの

web サーバにあなたがファイルをアップロードできること以外特に必要なものはありません。web サーバではなくローカルに置いても動作します。

web ブラウザに必要なもの

JavaScript をサポートしている以外は web ブラウザに必要なものはありません。

更新履歴

2010-02-01
comments/HaloScanComments.js

JSON U+2028, U+2029 問題回避方法」を jQuery のバージョンに依存しない方法で反映するための条件を整理した。バグがあったわけではない。

jQuery のバージョン判定を二回していたのを一回にまとめた。

2010-01-30
comments/HaloScanComments.js

JSON U+2028, U+2029 問題回避方法」を jQuery のバージョンに依存しない方法で反映した。

jQuery のバージョンに応じて動作するようにし、最新の jQuery と古い jQuery の両方をサポートするようにした。

comments/index.html

jQuery 1.4.1 を使用するようにした。これに合わせてドキュメントの記載も更新した。

2010-01-15
caif2json.html

caif2json.pl の修正に伴い、当ページへのリンクが間違っていたのを修正。

caif2json.pl

POD に記載された当ページへのリンクが間違っていたのを修正。

comments/index.html

index.css に対する link 要素で type 属性によって MIME タイプを明示。

comments/index.js

Query String の id パラメータが %-escape されていた場合に対応。

広告

目次