Date: 2017-07-15
Tags: python, sphinx, heroku, hosting

SphinxドキュメントをHerokuに数クリックでホスティングしたい

Python mini hack-a-thon 夏山合宿 に参加しています。

先日、 SphinxドキュメントをHerokuにBasic認証付きでホスティングする というBlogを書きました。今日は、これをもうちょっと楽に使えるようにカスタマイズしました。

動作するけど、まだ実用にはならない感じです。

先日作成した版

先日のBlog に書いた方法だと、いくつか面倒な部分がありました。

短所

  • GitLab(またはHerokuのgitリポジトリ)を使う必要がある

  • ドキュメントのリポジトリ内にHerokuのための設定ファイルを置く必要がある

  • Herokuのインスタンス起動時にbuildする場合、大きいドキュメントだと120秒の時間制限で終わらない

  • 環境変数設定など、手順が多い

手間が多くて大変なのと、制約が多いので、もっと楽にできるようにしてみました。

今日作成した版

Herokuのテンプレートを使って、数クリックでHerokuアプリを立てて使えるようにしてみました。

作ったヤツはこちら: https://github.com/shimizukawa/heroku-sphinxbuild-template

長所

  • ドキュメントのリポジトリに手を加える必要がない

  • Herokuの設定が楽。アカウントがあれば、2クリックとパラメータ入力のみ。

  • ドキュメントのビルドは起動時にやらないので起動が速い

  • (今回も)アプリはBASIC認証を提供する(設定次第)

  • (今回も)Herokuの無料枠時間内( 全アプリで1,000時間 )なら無料

短所

使い方

  1. ボタンをクリックする

    https://github.com/shimizukawa/heroku-sphinxbuild-template

  2. Herokuの起動画面にアプリ名や、Githubのリポジトリ等の必要情報を入力する

  3. Herokuにアプリが作られる

  4. アプリが起動してビルドされたSphinxドキュメントが見れる

../../_images/heroku-button.png
../../_images/sphinx-heroku-deploy.png

今後実装したいこと

とりあえず、夢だけ書いときます。

基本機能

  • リポジトリからのpush通知て、ドキュメントを再ビルドする

  • OAuthログイン認証を提供する(最初の設定次第、要DB)

追加機能

  • ドキュメントへのコメント機能(レビューに使いたい)

  • 飜訳機能(ビルドされたHTMLの画面で飜訳したい)

Sphinxドキュメントにテンプレ注入

  • 文字数情報の表示(ある)

  • 書籍で何ページに相当するか情報(コードブロック等の面積を考慮したい)

  • 飜訳率の表示(日本語・英語比率でいいかなあ)

  • 文面からgithubの当該行へのリンク

技術メモ

ここから調べたときの技術メモです。


Herokuのアプリテンプレート

GithubのToken / Deploy key

HerokuでSphinxドキュメントビルドするときの課題

Herokuの再buildをやる方法

別の方法を考える

  • ビルドした静的ファイルを全てredisかrdbに格納する

  • うーん、他にあるかなあ

注釈

【急募】 良い解決方法