コーディングを伴う拡張

Thousandはプラグインによる拡張を前提に設計されている。現在のところ拡張可能なポイントは:

  • リスト読み込み。2ちゃんねる」「履歴」など、掲示板やカテゴリや板を読み込む。
  • スレッド読み込み。datなどのデータを読み込み、スレッドを表すオブジェクトに変換する。
  • レッドリストのソート項目。速度や状態など。
  • レスの投稿。
  • スレッド前処理。読み込まれたスレッドを処理する。レスアンカー解析やID辞書作成など。
  • レス抜き出し。スレッドから特定のレスを抜き出す。IDや逆参照など、ポップアップはこれに頼っている。
  • HTML書き出し。抜き出されたレスやスレッドを基本的なHTMLに変換し出力する。
  • HTML処理。出力されたHTMLに対し、リンク付加等を行う。

これらのポイントに対応したプラグインを作ることが出来る。またプラグイン独自の環境設定GUIや、設定の保存を行うために、次のようなユーティリティが用意された。
-ディクショナリーコンバート。プラグインは自身の保存したいプロパティを、KVCのプロパティ名として提示する。ThousandはそれをもとにKVCを使い、プラグインオブジェクトをNSDictionaryに変換し、設定によってThousandの初期設定ファイル、またはプラグインの初期設定ファイル用のディレクトリに保存する。
-環境設定項目。プラグインは自身が、GUIに対応させたいプロパティを提示する。Thousandはそのタイプに応じて、ポップアップメニューやチェックボックス、テキストフィールド等のGUIを生成し、Cocoa Bindingを使ってプラグインと接続する。プラグインは独自のnibファイルやウィンドウ、メニューを持たなくても、簡易に設定項目のGUIを持つことが出来る。

ちなみに、BathyScapheはプレビュープラグインというのがあるのだが、Thousandには今のところない。