プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

Dash.appにSphinxベースのドキュメントを追加する方法(日本語ドキュメントでもOKだよ)

Dash_-_Documentation

タイトルと上に貼ったスクリーンショットでだいたい言いたいことは言い終わっていますが、Dash.appというMac用のドキュメンテーションブラウザアプリにSphinxベースのドキュメントを追加できますよー、という話しです。

Dash.appって何ぞ?という方は下のid:naoyaさんのエントリを見れば一発で理解できると思います。

一言で言えば「オフラインで使えるプログラミング系ドキュメント詰め合わせアプリ」で、私も重宝して使っています。

で、このアプリ、実は自分でドキュメントを追加することが出来ます。

詳しくは調べてないので分かりませんが、基本はドキュメントをDocsets形式にして突っ込めば良いみたいです。以下、公式のページより。

で、上記リンクを読むと、Sphinxベースのやつもどうやら入れられるみたいじゃないですか!

読めば、doc2dashというpythonモジュールをインストールすることが必要とのことなので、お決まりのごとく以下のコマンドをやるわけですね。

pip install doc2dash

easy_installでもいいはず。私がどっちで入れたかは忘れました。

で、具体的な手順ですが、以下のリンク先(英語)に書いてあります。というか私はそれを見てやりました。

Dash.app - Documentation Browser for Mac | Christoph Heer's thoughts and notes

上のリンク先からコマンドを引用します。自分で実行したコマンドを再現するのが面倒なので。

$ doc2dash -n Flask -i _static/flask.png -a -d ~/Library/Application\ Support/Dash/DocSets/Flask _build/html/

しっかり理解してるわけではないですが、オプション-nで"DOCUMENTATION"で表示される名前を指定、-iでアイコン指定、などなど。

プログラマの方なら、数回試行すれば成功すると思いますので、やってみて下さい。

一つやってみて残念というか、解決方法が分からない問題として、「ドキュメントの作られ方によっては横断検索できない」というのがありますかね。

下の写真を見てもらえれば分かると思うのですが、デフォルトで入っているPython2.xのドキュメントと私が入れた日本語のPython2.7のドキュメントでは"DOCUMENTATION"に表示される目次?にかなりの差があります。

Dash_-_Documentation-2

何回かやってみましたが、ClassesやModulesというものが設定されていないと検索時に対象範囲に入らないようなので残念ですね。

おそらくDocsets生成時に必要な情報が揃ってないから起こるのだと思います。

これ、Sphinx本家(英語の方)のドキュメントだとちゃんとClassesやModulesなど全て生成されているようなので、Sphinxに詳しい方なら原因が分かるのでしょうね。もし分かったら教えて欲しいです。

横断検索に支障があるとはいえ、日本語ドキュメントがオフラインで簡単に見ることができるので重宝してます。

私は環境設定からショートカットで"command + shift + ,(comma)"でDash.appを呼び出せるように設定して使ってます。私の環境ではこの組み合わせでバッティングしないので。

Dash.app、オススメです。