ブログ移行しました。
Sphinxでスペルチェックをさせてみた。(sphinxcontrib.spelling)
「sphinxcontrib.spelling」というSphinx拡張でreSTファイルのスペルチェックができるようなので調べてみました。
インストール
Sphinxでインストールされている前提で、pip installコマンドを実行します。
$ pip install sphinxcontrib-spelling $ pip install pyenchant
セットアップ
Sphinxプロジェクトを作成後、conf.pyにextensionの設定とsphinxcontrib.spellingの設定を記述します。
# Extensionsを追加 extensions = [] ↓ extensions = ['sphinxcontrib.spelling'] ... # 以下2行を追加 spelling_lang='en_US' spelling_word_list_filename='spelling_wordlist.txt'
'spelling_lang'は、スペルチェックを行う言語。pyEnchantによると、以下の4種類の言語がサポートされているみたいです。
- en_GB: British English
- en_US: American English
- de_DE: German
- fr_FR: French
'spelling_word_list_filename'は、辞書ファイル名。ここに単語を記入しておくと、スペルチェック対象から外れます。
$ cat spelling_wordlist.txt Indices
スペルチェックをさせてみる。
「Shpinx」でエラーが検出されるのを期待するために、index.rstに以下のような記述を行ってみます。
Correct string. Sphinx Wrong string. Shpinx
コマンドの基本的な使い方は、以下のとおり
sphinx-build -b spelling <source_path> <output_path>
パラメータ名 | 説明 |
---|---|
source_path | スペルチェックを行うファイルのrootパス |
spell_check_result_path | スペルチェックの結果を保存するパス |
実行してみます。
$ sphinx-build -b spelling -d _build/doctrees . _build/spelling Running Sphinx v1.2.3 Initializing Spelling Checker loading pickled environment... done building [spelling]: all documents updating environment: 0 added, 0 changed, 0 removed looking for now-outdated files... none found preparing documents... done index.rst:20:Shpinx:00%] index Spelling checker messages written to ./doc/_build/spelling/output.txt build finished with problems.
検出されました。
また、<output_path>で指定した場所に、'output.txt'というファイルが作成され、チェック結果が格納されます。
$ cat _build/spelling/output.txt index.rst:20: (Shpinx)
おまけ
ちなみに、Sphinxプロジェクト作成時に自動生成されるMakefileを以下のように編集することで、ドキュメント生成前に、スペルチェックを行うことができます。もし、スペルミスがある場合は異常終了しドキュメントは生成されません。なので、これを通すことで、一定の品質のドキュメントができるのではないかと思います。
html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." ↓ html: $(SPHINXBUILD) -b spelling $(ALLSPHINXOPTS) $(BUILDDIR)/spelling $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
サンプルコード
サンプルのプロジェクトをGIthubに上げました。参考にしてみてください。
動作環境
参考
VirtualBoxに、OSX Yosemite入れてみた。
Yosemiteをインストールしたのですが、私的には微妙だったんで、Mavericksに戻しました。とは言え、Yosemiteは触りたいので、Yosemite on Mavericksに挑戦してみました。
実行環境
- ホストOS
- OSX Mavericks 10.9.5
- VirtualBox 4.3.18 r96516
- ゲストOS
ViatualBoxのインストール
Oraclaのサイトにインストーラが用意されています。dmgファイル展開後、pkgファイルをダブルクリックしてください。
- Oracle VM VirtualBox - Downloads | Oracle Technology Network | Oracle
- 上記サイトから、「VirtualBox-<version>-OSX.dmg」をダウンロード。
Yosemite用仮想マシンの作成・インストール
仮想マシンの作成については、下記リンクを参考になりました。
上記サイトの通りに仮想マシンを設定し、起動を開始すると、ブートログが表示されますが、以下のメッセージが表示され、処理が途中で止まってしまいました。
missing bluetooth controller transport
調べてみると、ホストOSのターミナルから、別途下記コマンドを入れる必要があるみたいです。
$ VBoxManage modifyvm '<VirtualBoxの仮想マシンの名前>' --cpuidset 1 000206a7 02100800 1fbae3bf bfebfbff
ブートに成功すると、OSXのインストーラが起動するので、指示に従ってインストールを進めると、デスクトップが表示されます。
感想は...
4CPU/8GB Memを割いているにも関わらず、動きは非常もっさりです。OSが悪いのか、VirtualBoxが悪いのか...OSの挙動を楽しむには十分ですが、プログラミングなど作業するには非常に厳しいと思います。無料でここまで遊べるので、Yosemiteに興味があるけど、インストールに躊躇している人は挑戦してみるといいかもしれません。
Head Firstオブジェクト指向分析設計
Head Firstオブジェクト指向分析設計 ―頭とからだで覚えるオブジェクト指向の基本
- 作者: Brett McLaughlin,Gary Pollice,長瀬嘉秀,永田渉,株式会社テクノロジックアート
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2007/12/04
- メディア: 単行本
- 購入: 4人 クリック: 77回
- この商品を含むブログ (26件) を見る
以前、「Head First デザインパターン」を読んでいて、オブジェクト指向をマスターしたぜーと思っていましたが、実はそうではなかったようです。
この本ってどんなの?
- 顧客の要望は、常に変化していくため、コードは再利用・拡張可能な柔軟な設計をする必要があり、そのためには、どのような設計をすべきかについて書かれています。
- 要望→コードへ落としこむために、「フィーチャ分析」→「ユースケース分析」→「テキスト分析」→「オブジェクト指向の適応」といったツールの使い方を学んでいきます。
- 最終的には、コード・テストに落としこむため、オブジェクト指向プログラミング言語の知識が必要です。この本は、Javaで実装しています。
この本がおすすめな人
- 良い設計(再利用可能なソフトウェア)について知りたい人。
良かった点
- 現実と設計を比較し、「本質」としてどうあるべきかという考え方を知ることができた。
- 要望に対するコードは、如何様にも実装することはできるが、本質をとらえた実装をしなければ、後々の変更に耐えられなくなる。
- 「オブジェクト指向 = デザインパターン」ではないということを気づかせてくれた。
この本を読んだあとは...
「Head First デザインパターン」
Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本
- 作者: Eric Freeman,Elisabeth Freeman,Kathy Sierra,Bert Bates,佐藤直生,木下哲也,有限会社福龍興業
- 出版社/メーカー: オライリージャパン
- 発売日: 2005/12/02
- メディア: 大型本
- 購入: 14人 クリック: 362回
- この商品を含むブログ (92件) を見る
エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)
- 作者: エリック・エヴァンス,今関剛,和智右桂,牧野祐子
- 出版社/メーカー: 翔泳社
- 発売日: 2011/04/09
- メディア: 大型本
- 購入: 19人 クリック: 1,360回
- この商品を含むブログ (132件) を見る
あたりがおすすめかと思います。
参考
Alfredで、カレンダーを表示するだけのWorkflowsプラグイン「alc」をリリースしました。
Pythonの勉強がてら、作ってみました。今回の目標として、テストとドキュメンテーションをしっかりしようということで、noseの自動テストとSphinxでのドキュメント自動生成にも挑戦してみました。
iCalを起動せずに、さっとカレンダーを確認できるので便利です。
ソースは、Githubプロジェクトから
詳細の説明は、別途紹介ページを作ったので、そちらを見てください。