jazzyとは
さて、本日はjazzyについて書こうと思います。
jazzyはSwiftで書いたプロジェクトのリファレンスを自動で生成できるツールです。
最近、熱いMobile DatabaseであるRealmと同じチームが開発しているようです。
今のところ、他に良さそうなツールはないんじゃないでしょうか?
兎にも角にも、早速使ってみることにします。
jazzyのインストール
jazzyのインストールは簡単です。
下記コマンドを実行してください。
sudo gem install jazzy
jazzyのコマンド
jazzy -h
を実行してコマンドを確認してみましょう。
下記のような結果が得られるはずです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
| Usage: jazzy
Options
-o, --output FOLDER Folder to output the HTML docs to
-c, --[no-]clean Delete contents of output directory before running.
WARNING: If --output is set to ~/Desktop, this will delete the ~/Desktop directory.
--[no-]objc Generate docs for Objective-C.
--umbrella-header PATH Umbrella header for your Objective-C framework.
--framework-root PATH The root path to your Objective-C framework.
--sdk [iphone|watch|appletv][os|simulator]|macosx
The SDK for which your code should be built.
--config PATH Configuration file (.yaml or .json)
Default: .jazzy.yaml in source directory or ancestor
-x arg1,arg2,…argN, Arguments to forward to xcodebuild
--xcodebuild-arguments
-s FILEPATH, File generated from sourcekitten output to parse
--sourcekitten-sourcefile
--source-directory DIRPATH The directory that contains the source to be documented
-e, --exclude file1,file2,…fileN Files to be excluded from documentation
--swift-version VERSION
-a, --author AUTHOR_NAME Name of author to attribute in docs (e.g. Realm)
-u, --author_url URL Author URL of this project (e.g. http://realm.io)
-m, --module MODULE_NAME Name of module being documented. (e.g. RealmSwift)
--module-version VERSION module version. will be used when generating docset
--copyright COPYRIGHT_MARKDOWN
copyright markdown rendered at the bottom of the docs pages
--readme FILEPATH The path to a markdown README file
--podspec FILEPATH
--docset-icon FILEPATH
--docset-path DIRPATH The relative path for the generated docset
-r, --root-url URL Absolute URL root where these docs will be stored
-d, --dash_url URL Location of the dash XML feed e.g. http://realm.io/docsets/realm.xml)
-g, --github_url URL GitHub URL of this project (e.g. https://github.com/realm/realm-cocoa)
--github-file-prefix PREFIX GitHub URL file prefix of this project (e.g. https://github.com/realm/realm-cocoa/tree/v0.87.1)
--min-acl [private | internal | public]
minimum access control level to document
--[no-]skip-undocumented Don't document declarations that have no documentation comments.
--[no-]hide-documentation-coverage
Hide "(X% documented)" from the generated documents
--head HTML Custom HTML to inject into <head></head>.
--theme [apple | fullwidth | DIRPATH]
Which theme to use. Specify either 'apple' (default), 'fullwidth' or the path to your mustache templates and other assets for a custom theme.
-t, --template-directory DIRPATH DEPRECATED: Use --theme instead.
--assets-directory DIRPATH DEPRECATED: Use --theme instead.
-v, --version Print version number
-h, --help [TOPIC] Available topics:
usage Command line options (this help message)
config Configuration file options
...or an option keyword, e.g. "dash"
|
ヘルプを見て頂ければ、なんとなく概要をつかめると思いますが、特に重要なものを説明します。
-o FOLDER
リファレンスの出力場所を指定するコマンドです
--min-acl [private | internal | public]
リファレンスに出力するプロパティおよびメソッドの最低アクセス権限
例えば、--min-acl public
を指定した場合、private
やinternal
指定されたプロパティやメソッドはリファレンスに出力されません。
--skip-undocumented
ドキュメントコメントが書かれていないプロパティやメソッドはリファレンスに出力しません。
--author AUTHOR_NAME
リファレンスに開発者を明記します。
--author_url URL
リファレンス上に表記される開発者名にURlリンクを付与します。
Swift2.0以降でのドキュメントコメントの書き方について
Swift2.0以降でのドキュメントコメントの書き方を見ていきます。
jazzy を使うことを前提にした書き方のみ記述します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| import UIKit
/**
UIViewControllerを継承したViewControllerクラス
*/
class ViewController: UIViewController {
// MARK: Properties
/// 文字列を格納するためのサンプル変数
var sampleParam1:String?
/// 数値を格納するためのサンプル定数
let sampleParam2:Int = 0
<省略>
// MARK: Method
/**
ログを出力するメソッド
- parameter message: ログ出力したいメッセージ
*/
func sampleMethod(message: String) {
print(message)
}
/**
trueフラグを返すメソッド
- returns: trueフラグ
*/
func sampleMethod2() -> Bool {
return true
}
/**
メッセージを生成するメソッド
- parameter message: 生成したいメッセージの一部分
- returns: 生成したメッセージ
*/
func sampleMethod3(message:String) -> String {
return "生成したメッセージ: \(message)"
}
}
|
ポイントは、
- クラス名にドキュメントコメントを必ずつけること
- メソッドのDescriptionとParameterもしくはReturnとの間に1行をあけること
:param:
や:returns:
といった古い書き方をしないこと
です。
上記ポイントを踏まえた上で、
jazzy --min-acl internal --skip-undocumented -o jazzy_doc --author Takahiro --author_url https://grandbig.github.io/
を実行してみましょう。
オプションは必要に応じてつけてください。
結果、下図のようなリファレンスが作成されます。
こちらはトップページです。
続いて、クラスを選択した際に表示されるクラスの説明ページ
各プロパティを選択すれば、その説明が表示されます。
各メソッドを選択すれば、その説明が表示されます。
いかがだったでしょうか?
リファレンスは第三者にソースコードを説明する上でも非常に重要なものです。
初めから書式ルールに沿ってコードを書いておけば、自動生成ツールで速攻リファレンスを作れますので、ぜひぜひ把握しておきましょう。
と言ったところで本日はここまで。