at_yasu's blog

ロード的なことを

Headerdoc のメモ書き

Headerdoc でリファレンスを作っているのですが、どうも Headerdoc 自体は保守されて色々拡張はされているみたいです。ただ気になるのは、 Apple が配布している SDK に含まれているヘッダーファイルには、なかなか Headerdoc の記述がない件…I/O Kit のファイルには思っきりあったし…orz ただ、Foundation や NSView などには見当たりません…

いろいろやってて気づいたことがあるので、メモ書き。なお、Headerdocのバージョンは8以上の話です。SnowLeopardではどうなんだっけね…

HeaderDocの基礎的なことは、 コマンドラインで作るAPIリファレンスの作成方法 - at_yasuの日記もといメモ書き に書いています。


新しいタグ

Headerdoc7 には無かったけど、Headerdoc8にて新実装したタグ。意訳なので注意。原文は、 Documentation Archive の Appendix A の new Tag です。

@classdesign
クラスのデザインを記述します
@coclass
連動する、関連するクラスを記述します
@dependency
強く依存しているクラスを記述します
@exception
function/method/class から出る例外を記述します
@throw
@exception と同様です
@functiongroup
function や method のグループタグです。 @group タグの function/method 版です。
@methodgroup
@functiongroup と同じです
@group
データや関数などをグループ化し、そして、テーブルコンテンツにグループ化した状態で表示します
@helper
ヘルパークラスを表します?
@helps
ヘルパークラスで補助するクラス一覧?
@instancesize
クラスインスタンスのサイズ
@ownership
String describing what class instantiates the current class (for example, I/O Kit nubs) *1
@performance
クラスのパフォーマンスを記述します。「例:“This class is not appropriate for use in high-performance environments”」
@security
このクラスについてのセキュリティ関連のことを記述します
@superclass
親クラスを記述して下さい。サブクラスと同期し、表示します

gatherheaderdoc

headerdoc で出力したHTMLを解釈し、インデックスページを作成したり親子関係のリンクをはってくれたりします。ただし、初期のテンプレートだと日本語は文字化けてしまうので、テンプレートをいじくる必要有り。

gatherheaderdoc は、config ファイル内の「TOCTemplateFile」の値を見て読み込んでいます。

どこにも存在していない場合、「/Library/Preferences/com.apple.headerdoc.exampletocteplate.html」を読み込みます。

*1:I/O Kit の中枢部分とか〜、とか言ってるけど、何言ってるかよくわからん。クラスがフレームワーク内での存在位置を指してるのか?