scaladocからdash用のdocsetを出力する

2013-11-08 追記: 手順が一部抜けていました。

背景

macで開発してる割にmacをあまり使いこなせてない感があったので、最近dashalfredを入れてみました。

で、最近scalazでちょくちょく遊んでるのでscalazのドキュメントが検索できたら幸せだよなーということで、scalazのdocsetを出力してみようと思います。

docsetの生成の仕方はdashの開発者のページにまとまってます。 書いてある通り、scaladocからの生成にはmkScalaDocsetというツールを利用します。

mkScalaDocsetの使い方

ダウンロード

(自分の環境にhgが入ってないので…)

mkScalaDocsetのダウンロードページのブランチタブから、現行バージョンをダウンロードして適当な場所に展開します。以下~/src/mkscaladoc/として展開することにします。

scaladocの準備

以下はscalazのscaladocを生成する手順です。 ~/src/scalaz/typelevel/target/scala-2.10/apiがscaladocのルートディレクトリになります。

また下記手順ではscalazに含まれているsbtでうまく生成できなかったので、homebrewで入れたsbt(0.13.0)を使っています。

cd ~/src
git clone git@github.com:scalaz/scalaz.git

cd scalaz
sbt doc

docsetの生成

mkScalaDocsetはGenDBCommandsというclassファイルを利用しているのですが、このファイルへのclasspath相対パスで指定されているため、mkScalaDocsetの実行は~/src/mkscaladocsetで行う必要があります。

あと、オプションで指定するindexはトップで表示するhtmlファイルを指定するのですが、デフォルトで用意されてるscalaやplayscalaのdocsetに倣うとたいていpackage.htmlを指定することになると思います。

cd ~/src/mkscaladocset

brew install coreutils # greadlinkのインストール

make # GenDBCommands.scalaのコンパイル

# mkScalaDocset name docdir [icon=iconfile] [index=indexfile]
./mkScalaDocset scalaz ~/src/scalaz/typelevel/target/scala-2.10/api index=package.html

dashへの登録

open scalaz.docset

これで快適なscalazライフを送れるはず!