SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Presentation detail is here




Writing a Book
Using Sphinx
    2012/9/16
SphinxCon JP 2012
Who am I?
http://清水川.jp/ @shimizukawa

●   BeProud Corp.
●   Expert Python Programming
    translator into Japanese
●   Sphinx-users.jp vice-chairman
●   PyConJP 2011,2012 vice-chairman
Python Professional Programming
●   Publisher: Shuwa System
●   Size: B5, 430 pages
●   2940 JPY
●   2012-3-27

call it #pypro
Fortunately, a lot of selling
Our editor has sold the #pypro on PyConJP.
However, many people had already
purchased.
Book's concept
● BPStyle (BeProud style):
  The book tell BP has been cultivated in
  the practice, the know-how of Python at
  work.

● for BP newbe:
  The book for work early to get accustomed
  to the new members of the company.
Table of Contents
4 parts, 15 chapters

1.   Let's develop with Python
2.   Cycle of team development
3.   Publish service
4.   Technique to accelerate the development
Part 1: Let's develop with Python
Chapter 1: Let's start Python
Chapter 2: Create a Web application


Appendix A: VirtualBox setup
Appendix B: OS(Ubuntu) setup
Part 2: Cycle of team development
Chapter 3: Create an environment of team
development
Chapter 4: Prepare the foundation for document
Chapter 5: Review and issue management
Chapter 6: Design of module division and unit
testing
Chapter 7: Automated packaging and environment
setup
Chapter 8: Source Code Management with
Mercurial
Chapter 9: Continuous Integration with Jenkins
Part 3: Publish service
Chapter 10: Automated environment to build and deploy
Chapter 11: Improve the performance of applications
Chapter 12: Google App Engine


Part 4: Technique to accelerate the
development
Chapter 13: Test is our friend
Chapter 14: Use Django to conveniently
Chapter 15: To use the handy Python module
Authors
1. tell-k: Chap 1,12,
   Appendix A, B
2. Okano: Chap 2,8,11,15
3. aita: Chap 3             8. (aodag): Chap 6
4. Shimizukawa: Chap 4,7    9. monjudoh: Chap 8
5. Imagawa Yakata: Chap
                           10. cactusman: Chap
   5,9
                               9
6. Azuma: Chap 5,10
                           11. drillbits: Chap 1,12
7. Tomita: Chap 5
                           12. natsu: Chap 13
                           13. Ikeda: Chap 14
                           14. Hata: Chap 14
PyPro book was written by Sphinx
● Sphinx = Documentation tool
  http://sphinx-users.jp/
Build a writing environment
automatically using Sphinx
First:
   $ hg clone [repos-of-pypro] pypro
   $ cd pypro
   $ python bootstrap.py
   $ bin/buildout

build HTML:
  $ vim 04.rst #chapter 04
  $ make html
Convert process of Sphinx

        reST(reStrucutrdText)

                     Docutils parser


          docutils node tree

                     Sphinx HTML writer



               HTML
Writing and Review
● Write by reST
● HTML Review by office-member
● PDF Review by outer-geeks

Provide different formats for different
purposes.

If you change the look, we now notice that
such wrong or strange expression that was
not noticed until then.
Submission format for Editor
process: Writer -> Editor -> Print
● [Editor -> Print]
   maybe 'InDesign' or else.

● [Writer -> Editor]
   the Shuwa-System format.
      5 wide square charactors ->    ■■■■■Chapter 1 Let's start Python

             2 wide charactors ->    ▽◆
        1 wide bullet charactor ->   ・Python setup
        1 wide bullet charactor ->   ・Mercurial setup
             2 wide charactors ->    △◆

      4 wide square charactors ->    ■■■■01-01 Python setup
Rewrite manually for submission?
● We wrote draft with Sphinx(reST)

● Submission format is different

● But, we can't write submission format. It's
  difficult for us :(

● Then, ...how?
I created Shuwa-Builder for Sphinx
● Shuwa-builder generate shuwa-system
  submission format from sphinx.




       Shuwa-System
Generate manuscript for Shuwa
Generate submission formatted manuscript
for Shuwa-System:

   $ make shuwa

That's all.

   $ ls _build/shuwa
   01.txt 02.txt 03.txt 04.txt ....
Spent over 2 days to create the
Shuwa-builder
● I took a lot of time to create the bulider.
● But monotonous repetitive work is painful
  to me.
● I will submit several times until publication.
  I will get a return on that investment.

shortly afterward, I applying proved
difference to original reST draft :(

3rd proof paper was PDF format. How do I
check diff?
Conclusion
What went wrong
● auto-generation of submission manuscript needs
  explicit spec.
● consider how to diff-incorporation

What worked
● Written in text that easy to writing and manage
  differential
● Review need differencial look
● To automate the preparation of environmental
● At any time to provide the latest HTML and PDF
  ○ that is provided by Jenkins at commit&push to the
      repository.

Weitere ähnliche Inhalte

Mehr von Takayuki Shimizukawa

【修正版】Django + SQLAlchemy: シンプルWay
【修正版】Django + SQLAlchemy: シンプルWay【修正版】Django + SQLAlchemy: シンプルWay
【修正版】Django + SQLAlchemy: シンプルWay
Takayuki Shimizukawa
 
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
Sphinxで作る貢献しやすいドキュメント翻訳の仕組みSphinxで作る貢献しやすいドキュメント翻訳の仕組み
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
Takayuki Shimizukawa
 
Sphinx autodoc - automated API documentation (PyCon APAC 2015 in Taiwan)
Sphinx autodoc - automated API documentation (PyCon APAC 2015 in Taiwan)Sphinx autodoc - automated API documentation (PyCon APAC 2015 in Taiwan)
Sphinx autodoc - automated API documentation (PyCon APAC 2015 in Taiwan)
Takayuki Shimizukawa
 

Mehr von Takayuki Shimizukawa (20)

エキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころエキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころ
 
RLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for Django
 
独学プログラマーのその後
独学プログラマーのその後独学プログラマーのその後
独学プログラマーのその後
 
【修正版】Django + SQLAlchemy: シンプルWay
【修正版】Django + SQLAlchemy: シンプルWay【修正版】Django + SQLAlchemy: シンプルWay
【修正版】Django + SQLAlchemy: シンプルWay
 
Sphinx customization for OGP support at SphinxCon JP 2018
Sphinx customization for OGP support at SphinxCon JP 2018Sphinx customization for OGP support at SphinxCon JP 2018
Sphinx customization for OGP support at SphinxCon JP 2018
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
 
仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016
 
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
 
素振りのススメ at Python入門者の集い
素振りのススメ at Python入門者の集い素振りのススメ at Python入門者の集い
素振りのススメ at Python入門者の集い
 
世界のSphinx事情 @ SphinxCon JP 2015
世界のSphinx事情 @ SphinxCon JP 2015世界のSphinx事情 @ SphinxCon JP 2015
世界のSphinx事情 @ SphinxCon JP 2015
 
JUS関西 Sphinxワークショップ@関西 Sphinx紹介
JUS関西 Sphinxワークショップ@関西 Sphinx紹介JUS関西 Sphinxワークショップ@関西 Sphinx紹介
JUS関西 Sphinxワークショップ@関西 Sphinx紹介
 
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
Sphinxで作る貢献しやすいドキュメント翻訳の仕組みSphinxで作る貢献しやすいドキュメント翻訳の仕組み
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
 
Sphinx autodoc - automated api documentation - PyCon.KR 2015
Sphinx autodoc - automated api documentation - PyCon.KR 2015Sphinx autodoc - automated api documentation - PyCon.KR 2015
Sphinx autodoc - automated api documentation - PyCon.KR 2015
 
Easy contributable internationalization process with Sphinx @ pyconmy2015
Easy contributable internationalization process with Sphinx @ pyconmy2015Easy contributable internationalization process with Sphinx @ pyconmy2015
Easy contributable internationalization process with Sphinx @ pyconmy2015
 
Sphinx autodoc - automated api documentation - PyCon.MY 2015
Sphinx autodoc - automated api documentation - PyCon.MY 2015Sphinx autodoc - automated api documentation - PyCon.MY 2015
Sphinx autodoc - automated api documentation - PyCon.MY 2015
 
Sphinx autodoc - automated API documentation (EuroPython 2015 in Bilbao)
Sphinx autodoc - automated API documentation (EuroPython 2015 in Bilbao)Sphinx autodoc - automated API documentation (EuroPython 2015 in Bilbao)
Sphinx autodoc - automated API documentation (EuroPython 2015 in Bilbao)
 
Easy contributable internationalization process with Sphinx @ pyconsg2015
Easy contributable internationalization process with Sphinx @ pyconsg2015Easy contributable internationalization process with Sphinx @ pyconsg2015
Easy contributable internationalization process with Sphinx @ pyconsg2015
 
Sphinx autodoc - automated API documentation (PyCon APAC 2015 in Taiwan)
Sphinx autodoc - automated API documentation (PyCon APAC 2015 in Taiwan)Sphinx autodoc - automated API documentation (PyCon APAC 2015 in Taiwan)
Sphinx autodoc - automated API documentation (PyCon APAC 2015 in Taiwan)
 
Easy contributable internationalization process with Sphinx (PyCon APAC 2015 ...
Easy contributable internationalization process with Sphinx (PyCon APAC 2015 ...Easy contributable internationalization process with Sphinx (PyCon APAC 2015 ...
Easy contributable internationalization process with Sphinx (PyCon APAC 2015 ...
 
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Kürzlich hochgeladen (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

Writing a book using sphinx #sphinxconjp 2012

  • 1. Presentation detail is here Writing a Book Using Sphinx 2012/9/16 SphinxCon JP 2012
  • 2. Who am I? http://清水川.jp/ @shimizukawa ● BeProud Corp. ● Expert Python Programming translator into Japanese ● Sphinx-users.jp vice-chairman ● PyConJP 2011,2012 vice-chairman
  • 3. Python Professional Programming ● Publisher: Shuwa System ● Size: B5, 430 pages ● 2940 JPY ● 2012-3-27 call it #pypro
  • 4. Fortunately, a lot of selling Our editor has sold the #pypro on PyConJP. However, many people had already purchased.
  • 5. Book's concept ● BPStyle (BeProud style): The book tell BP has been cultivated in the practice, the know-how of Python at work. ● for BP newbe: The book for work early to get accustomed to the new members of the company.
  • 6. Table of Contents 4 parts, 15 chapters 1. Let's develop with Python 2. Cycle of team development 3. Publish service 4. Technique to accelerate the development
  • 7. Part 1: Let's develop with Python Chapter 1: Let's start Python Chapter 2: Create a Web application Appendix A: VirtualBox setup Appendix B: OS(Ubuntu) setup
  • 8. Part 2: Cycle of team development Chapter 3: Create an environment of team development Chapter 4: Prepare the foundation for document Chapter 5: Review and issue management Chapter 6: Design of module division and unit testing Chapter 7: Automated packaging and environment setup Chapter 8: Source Code Management with Mercurial Chapter 9: Continuous Integration with Jenkins
  • 9. Part 3: Publish service Chapter 10: Automated environment to build and deploy Chapter 11: Improve the performance of applications Chapter 12: Google App Engine Part 4: Technique to accelerate the development Chapter 13: Test is our friend Chapter 14: Use Django to conveniently Chapter 15: To use the handy Python module
  • 10. Authors 1. tell-k: Chap 1,12, Appendix A, B 2. Okano: Chap 2,8,11,15 3. aita: Chap 3 8. (aodag): Chap 6 4. Shimizukawa: Chap 4,7 9. monjudoh: Chap 8 5. Imagawa Yakata: Chap 10. cactusman: Chap 5,9 9 6. Azuma: Chap 5,10 11. drillbits: Chap 1,12 7. Tomita: Chap 5 12. natsu: Chap 13 13. Ikeda: Chap 14 14. Hata: Chap 14
  • 11. PyPro book was written by Sphinx ● Sphinx = Documentation tool http://sphinx-users.jp/
  • 12. Build a writing environment automatically using Sphinx First: $ hg clone [repos-of-pypro] pypro $ cd pypro $ python bootstrap.py $ bin/buildout build HTML: $ vim 04.rst #chapter 04 $ make html
  • 13. Convert process of Sphinx reST(reStrucutrdText) Docutils parser docutils node tree Sphinx HTML writer HTML
  • 14. Writing and Review ● Write by reST ● HTML Review by office-member ● PDF Review by outer-geeks Provide different formats for different purposes. If you change the look, we now notice that such wrong or strange expression that was not noticed until then.
  • 15. Submission format for Editor process: Writer -> Editor -> Print ● [Editor -> Print] maybe 'InDesign' or else. ● [Writer -> Editor] the Shuwa-System format. 5 wide square charactors -> ■■■■■Chapter 1 Let's start Python 2 wide charactors -> ▽◆ 1 wide bullet charactor -> ・Python setup 1 wide bullet charactor -> ・Mercurial setup 2 wide charactors -> △◆ 4 wide square charactors -> ■■■■01-01 Python setup
  • 16. Rewrite manually for submission? ● We wrote draft with Sphinx(reST) ● Submission format is different ● But, we can't write submission format. It's difficult for us :( ● Then, ...how?
  • 17. I created Shuwa-Builder for Sphinx ● Shuwa-builder generate shuwa-system submission format from sphinx. Shuwa-System
  • 18. Generate manuscript for Shuwa Generate submission formatted manuscript for Shuwa-System: $ make shuwa That's all. $ ls _build/shuwa 01.txt 02.txt 03.txt 04.txt ....
  • 19. Spent over 2 days to create the Shuwa-builder ● I took a lot of time to create the bulider. ● But monotonous repetitive work is painful to me. ● I will submit several times until publication. I will get a return on that investment. shortly afterward, I applying proved difference to original reST draft :( 3rd proof paper was PDF format. How do I check diff?
  • 20. Conclusion What went wrong ● auto-generation of submission manuscript needs explicit spec. ● consider how to diff-incorporation What worked ● Written in text that easy to writing and manage differential ● Review need differencial look ● To automate the preparation of environmental ● At any time to provide the latest HTML and PDF ○ that is provided by Jenkins at commit&push to the repository.