Date: 2015-02-14
Tags: sphinx, docker, fig

Docker/figでSphinxのWebSupportを起動する

今日は Python mini Hack-a-thon 51回目 でこのblogを書きました。

Sphinx WebSupportとは

SphinxにはWebSupportというAPI群があります。これを使うと、Sphinxでビルドしたドキュメントにコメントを残したり、サーバーサイドで検索できたりするWebアプリケーションを作れます。

../../_images/sphinx-websupport-sample.png

Sphinx WebSupport で議事録にコメントする例

しかし、WebSuportはSphinxのAPIでしかなく、実際のWeb画面として動作させるWebアプリケーションはSphinx標準では提供されていません。Flaskで実装されたサンプルアプリケーション Sphinx demo WebApp がbitbucketにあるのですが、2010年に作られたものなので最新のFlaskでは動作しませんでした。そういったこともあり、自分でWebSupportを起動するのはハードルがたくさんあってちょっとつらい感じです。

fig-sphinxwebapp-nginx

ということで、Docker/figを使ってSphinxのWebSupportを起動出来るようにしてみました。Vagrant環境があれば、数コマンドでSphinx WebSupportを起動できるようにしてあります。

figで用意した環境はNginxが含まれています。Nginxとか不要、ということであれば、 shimizukawa/sphinxwebapp Dockerコンテナを直接使って下さい。

以下は、Dockerインストール済み環境でSphinx WebSupportを起動している様子です。

これでVagrantのIPアドレスにアクセスすれば、最初に紹介したようなWebSupportの画面にアクセスできます。

今後

現状では、まだDocker/figで起動出来るようにしただけなので、これからいくつかの機能を載せて行ければ、執筆レビューや翻訳などに使えるかなーと思っています。

欲しい機能:

  • 用語チェック拡張 の組み込み

  • HTML自動ビルド(ビルドボタン? ファイル変更検出? WebHook?)

  • PDF自動ビルド

  • 利用者アカウントの追加・管理

  • REST API (ビルドのWebHook等)

  • アーカイブ機能: ボタン押下でreSTソースとビルド結果をzipアーカイブ

  • コメントのexport

  • Github, Bitbucket, Twitter, Facebook ソーシャル認証

おまけ

今日は Python mini Hack-a-thon 51回目 でこのblogを書きました。

../../_images/chocolate.jpg

参加していたPyLadiesTokyoのみなさんからチョコの差し入れ。ありがとうございます~

../../_images/attendees2.jpg

会場の様子