CSSとスキンについて

まともな使い方も説明せずに出してしまったので、いろいろ思い出したら書いていきますね。
Thousandの出力するhtmlは、スキンに指定したhtmlを前半・レス・後半に分け、それぞれの@(なんとか)部分をレスやスレッドのプロパティに置換して結合したものです。

その際レス部分はdivタグで囲まれ、このdivタグのclass要素に追加することで「スタイル」機能を実現しています。さらに、標準で追加されるclassとして、ポップアップ表示時には「popUp」、新着レスには「new」があります。

余談ですが、スタイル変更の際にはDOMをObj-Cで操っています。これは応用すれば面白いかも。

さらに、文中のhttp://やttp://にはリンクが付加されますが、この際aタグには、サーバー名固有のclassが付加されます。www.apple.comだったら、www_apple_comという風に。これはbeforeなんかを使って、iTMSへのリンクにはiTMSアイコンをつけるような用途を想定しています。

書き忘れましたが、CSS、スキンともUTF-16エンコーディングでないと多分読み込んでくれません。

プラグインによる拡張との連携も想定しています。スキンファイルの仕様「@(プロパティ名)」はそのまま、T2Resというクラスの実装するメソッド名です。要するに、スキンで指定したプロパティ名によってKVCを叩き、文字列を得ています。
プラグインは、T2Resにカテゴリでメソッドを付加するか、またはスレッド前処理プラグインによってT2ResにsetValue:forKey:メッセージを送る(T2ResはNSMutableDictionaryをインスタンス変数に持ち、自身にないプロパティ名に対してはこれに処理を任せます)ことでプロパティを追加できます。スキンのほうでこの追加したプロパティ名を指定することが出来るわけです。

なんか凝りすぎたかもw