hgweb.cgiとsphinxによる自動ビルド環境
Posted on 2012/06/20(Wed) 22:30 in technical
- バージョン管理にmercurial
- ドキュメント作成にsphinx
- 手元でrst書いて、HTTPSでhgweb.cgiにhg pushして、裏でsphinxが自動的にビルドして、Webが更新される。
そういうことをしたいなぁ、という話。
OSはUbuntu 10.04 server amd64を使ったsphinx環境の導入については、ダイジェスト。
Ubuntu 10.04のリポジトリにあるsphinxは古いので、aptで入れるのはpipのみ。
# apt-get install pip # pip install sphinx # pip install sphinxcontrib-blockdiag # pip install sphinxcontrib-nwdiag # pip install sphinxjp.themecore # pip install rst2pdf # pip install sphinxjp.themes.dotted
場合によっては、apt-get purge docutilのようなことをしなければならないかもしれない。
正直virtualenvを使うべきだったと反省している。
hgweb.cgiの設定はこの辺りに書いたので、別途参照。
https://www.ainoniwa.net/doku/programming/python/mercurial/web/start
で、hgweb.cgiが動いてるサーバで、
# cd /var/tmp # sudo -u www-data hg clone /var/www/mercurial/doc # vi /var/www/mercurial/doc/.hg/hgrc [hooks] changegroup.build = /var/tmp/auto_build.sh # vi /var/tmp/auto_build.sh hg --repository /var/tmp/doc pull --update /var/www/mercurial/doc && sphinx-build -b html -d /var/tmp/doc/build/doctrees /var/tmp/doc/source /var/www/doc
のように書いてやる。
手元のrstをエディタで編集して、
# hg --repository /home/user/doc push https://www.example.net/mercurial/doc
すると、裏でpullとsphinx-buildが走って http://www.example.net/doc (があると仮定)が更新される。
そういうわけで、dokuwikiの内容をsphinxに移動中。
https://www.ainoniwa.net/pdoc/
変換スクリプトなんて無いから暇な時に書いてるんだけど、既に心が折れそうだよ!