20
Sphinxを使って 本を書こう 2012/9/16 PyCon JP 2012

Sphinxを使って本を書こう #pyconjp 2012

Embed Size (px)

DESCRIPTION

English version is here: https://www.slideshare.net/shimizukawa/writing-a-book-using-sphinx-sphinxconjp-2012 私の過去2冊の翻訳・執筆した本の経験から、Sphinxを活用して執筆環境を自動化したときの手順とそのメリットなどを紹介します。 発表時の動画はこちら: http://www.youtube.com/watch?v=7VOJpFHnPWg

Citation preview

Page 1: Sphinxを使って本を書こう #pyconjp 2012

Sphinxを使って

本を書こう

2012/9/16PyCon JP 2012

Page 2: Sphinxを使って本を書こう #pyconjp 2012

http://清水川.jp/ @shimizukawa

● 株式会社BeProud所属● エキスパートPythonプログラミング

の翻訳(4名で)● Sphinx-users.jp 副会長● PyConJP 2011,2012 副座長

おまえ誰よ (a.k.a. 自己紹介)

Page 3: Sphinxを使って本を書こう #pyconjp 2012

● 秀和システム刊● B5変(430ページ)● 2940円● 2012年3月27日(火)

#pypro

Pythonプロフェッショナル

プログラミング

Page 4: Sphinxを使って本を書こう #pyconjp 2012

担当編集さんがPyConJPに販売に来てくれましたが、みんな持ってたとか・・・

おかげさまで売れてるみたいです

Page 5: Sphinxを使って本を書こう #pyconjp 2012

● BPStyle:

BPが実践で培ってきた、仕事でのPythonの

ノウハウを伝える本

● BP新人向け:

新しい会社のメンバーに早く仕事に慣れてもらうための本

本のコンセプト

Page 6: Sphinxを使って本を書こう #pyconjp 2012

4部構成

1. Pythonで開発しよう2. チーム開発のサイクル3. サービス公開4. 開発を加速するテクニック

目次

Page 7: Sphinxを使って本を書こう #pyconjp 2012

第1章:Pythonを始めよう第2章:Webアプリケーションを作る

Appendix A: VirtualBoxのセットアップ

Appendix B: OS(Ubuntu)のセットアップ

第1部:Pythonで開発しよう

Page 8: Sphinxを使って本を書こう #pyconjp 2012

第3章:チームの開発環境を整える第4章:ドキュメントの基盤を整える第5章:課題管理とレビュー第6章:モジュール分割設計と単体テスト第7章:パッケージングと環境セットアップの自動化第8章:Mercurialによるソースコード管理第9章:Jenkinsで継続的インテグレーション

第2部:チーム開発のサイクル

Page 9: Sphinxを使って本を書こう #pyconjp 2012

第10章:環境構築とデプロイの自動化第11章:アプリケーションのパフォーマンス改善第12章:Google App Engine

第13章:テストを味方にする第14章:Djangoを便利に使う第15章:便利なPythonモジュールを使おう

第3部:サービス公開

第4部:開発を加速するテクニック

Page 10: Sphinxを使って本を書こう #pyconjp 2012

1. tell-k: 1章, 12章,

AppendiA,B2. 岡野: 2章, 8章, 11章,

15章3. aita: 3章

4. 清水川: 4章, 7章

5. 今川館: 5章, 9章

6. 東: 5章, 10章

執筆者一覧

7. 冨田: 5章

8. (あお): 6章

9. 文殊堂: 8章

10. cactusman: 9章

11. drillbits: 1章, 12章

12. ナツ: 13章

13. 池田: 14章

14. 畠: 14章

Page 11: Sphinxを使って本を書こう #pyconjp 2012

● Sphinx = ドキュメンテーションツールhttp://sphinx-users.jp/

この本の原稿はSphinxで書きました

Page 12: Sphinxを使って本を書こう #pyconjp 2012

初回:$ hg clone [bpbookのリポジトリ] bpbook

$ cd bpbook$ python bootstrap.py$ bin/buildout

HTML生成:

$ vim 04.rst$ make html

Sphinx執筆環境構築を自動構築

Page 13: Sphinxを使って本を書こう #pyconjp 2012

Sphinxの変換の仕組み

reST(reStrucutrdText)を用意

docutilsノードツリーに変換

HTML等に変換

Page 14: Sphinxを使って本を書こう #pyconjp 2012

● 執筆はreST● 社内レビューはHTML● 社外レビューはPDF

目的別に異なるフォーマットで閲覧。

見た目を変えると、気づかなかった誤記やおかしな表現などに気づけるようになる。

執筆とレビュー

Page 15: Sphinxを使って本を書こう #pyconjp 2012

● [編集さん -> 印刷]たぶんInDesignか何か

● [執筆者 -> 編集さん]秀和システムさんのフォーマット

原稿の提出フォーマット

■■■■■Chapter 1 Pythonをはじめよう

▽◆・Pythonのセットアップ・Mercurialのセットアップ△◆

■■■■01-01 Pythonのセットアップ

Page 16: Sphinxを使って本を書こう #pyconjp 2012

● 原稿はSphinx(reST)で書いた

● 提出用フォーマットは書式が違う

● 提出フォーマットで初めから書くのは厳しい

● どうする?

提出用に手動で書き直す?

Page 17: Sphinxを使って本を書こう #pyconjp 2012

● 秀和システムさんの原稿フォーマットを出力しました

Sphinxの秀和ビルダーを作った

Page 18: Sphinxを使って本を書こう #pyconjp 2012

秀和システム提出原稿生成:

$ make syuwa

これだけ。

$ ls _build/syuwa01.txt 02.txt 03.txt 04.txt ....

提出原稿をSphinxから生成

Page 19: Sphinxを使って本を書こう #pyconjp 2012

● ビルダー作成に時間がかかってしまった● でも、刺身たんぽぽ作業はツライ● 今後3,4回くらい提出するから元は取れる!

戻ってきた校正原稿差分をreSTに戻すのに、また2日かかってしまった(´;ω;` )

3回目以降は書籍PDFに注釈で提出(´;ω;` )

秀和ビルダー作るのに丸2日以上

Page 20: Sphinxを使って本を書こう #pyconjp 2012

うまくいかなかったこと● 提出原稿の自動生成は明確な仕様が必要● 戻り原稿の受け取り方も考えておこう

うまくいったこと● 編集と差分管理しやすいテキストで書く● レビューは別のビューで行う● (Sphinx等)環境用意は自動化しておく● いつでも最新のHTML, PDFを提供する

○ →リポジトリコミット→Jenkinsでmake

まとめ