gist

2012年1月19日木曜日

XCode4でAppleDocを使ってみる

AppleDocは、Apple公式リファレンス風のリファレンスを作成してくれるドキュメント生成ツールです。

これはカッコいい。インストールも簡単にできるようになりました。

インストールはgitでappledocのソースコードを取得して、付属のシェルスクリプトを実行するだけです。

$ git clone git://github.com/tomaz/appledoc.git
Cloning into appledoc...
remote: Counting objects: 6017, done.
remote: Compressing objects: 100% (1628/1628), done.
remote: Total 6017 (delta 4504), reused 5830 (delta 4345)
Receiving objects: 100% (6017/6017), 2.61 MiB | 196 KiB/s, done.
Resolving deltas: 100% (4504/4504), done.
$ sudo sh install-appledoc.sh -b /usr/local/bin -t ~/Library/Application\ Support/appledoc
Password:
Building...
=== BUILD NATIVE TARGET appledoc OF PROJECT appledoc WITH CONFIGURATION Release ===
Check dependencies

...

** BUILD SUCCEEDED **

Installing binary to /usr/local/bin
Copying templates to /Users/inouetomoyuki/Library/Application Support/appledoc

$ appledoc --version
appledoc version: 2.0.5 (build 752)

$

前のエントリーで書いたコードにAppleDoc用のコメントを追加してみます。

LHParser.h

//
//  LHParser.h
//  LibXML2Test
//
//  Created by 井上 智敬 on 12/01/05.
//  Copyright (c) 2012年 Lucky and Happy Company. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <libxml/tree.h>
#import "NSMutableArray+StackAdditions.h"

/** LHParserクラスは、libxmlライブラリを使用してSOAP形式の文字列をJSON形式に変換するクラスです。
 */
@interface LHParser : NSObject {
    NSDictionary *_openers;
    NSDictionary *_closures;
    NSMutableArray *_closuresStack;
    NSDictionary *_charactersFoundTable;
    BOOL _isCharactersFound;
    
    xmlParserCtxtPtr _ctxt;
    NSMutableString *_json;
}
/** パースを開始します。
 */
-(void)parse;

/** パースが終了すると呼び出されます。
 */
-(void)didParse;

/** 開始タグを検出すると呼び出されます。
 
 @param localname 開始タグ名
 @param type SOAPスキーマでの型名。http://www.w3.org/2001/XMLSchema で定義されています。
 */
-(void)startElement:(NSString*)localname type:(NSString*)type;

/** 終了タグを検出すると呼び出されます。
 
 @param localname 終了タグ名
 */
-(void)endElement:(NSString*)localname;

/** パーサーが文字列を検出すると呼び出されます。
 
 @param characters 検出した文字列
 */
-(void)foundCharacter:(NSString*)characters;

@end


static void startElementSAX(void *context,
                            const xmlChar *localname,
                            const xmlChar *prefix,
                            const xmlChar *URI,
                            int nb_namespaces,
                            const xmlChar **namespaces,
                            int nb_attributes,
                            int nb_defaulted,
                            const xmlChar **atrributes);

static void endElementSAX(void *context,
                          const xmlChar *localname,
                          const xmlChar *prefix,
                          const xmlChar *URI);

static void charactersFoundSAX(void *context,
                               const xmlChar *characters,
                               int lenght);



ターミナルでappledocを実行します。


$ appledoc --project-name LibXML2Test \
> --project-company Lucky\ And\ Happy\ Company \
> --company-id com.luckyandhappy \
> --create-html --output ./Documents \
> .
appledoc version: 2.0.5 (build 752)

$

完了したらXCodeに戻って、こんな感じでクイックヘルプが出ていればOK。

オーガナイザを起動して、Documentationタブを選択すると、新しいドキュメントが増えています。

詳しいコメントの書き方は公式サイト

0 件のコメント: