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

エキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころエキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころTakayuki Shimizukawa
 
RLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoTakayuki Shimizukawa
 
独学プログラマーのその後
独学プログラマーのその後独学プログラマーのその後
独学プログラマーのその後Takayuki Shimizukawa
 
【修正版】Django + SQLAlchemy: シンプルWay
【修正版】Django + SQLAlchemy: シンプルWay【修正版】Django + SQLAlchemy: シンプルWay
【修正版】Django + SQLAlchemy: シンプルWayTakayuki Shimizukawa
 
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 2018Takayuki Shimizukawa
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Takayuki Shimizukawa
 
仕事で使うちょっとしたコードを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 2016Takayuki Shimizukawa
 
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 2016Takayuki Shimizukawa
 
素振りのススメ at Python入門者の集い
素振りのススメ at Python入門者の集い素振りのススメ at Python入門者の集い
素振りのススメ at Python入門者の集いTakayuki Shimizukawa
 
世界のSphinx事情 @ SphinxCon JP 2015
世界のSphinx事情 @ SphinxCon JP 2015世界のSphinx事情 @ SphinxCon JP 2015
世界のSphinx事情 @ SphinxCon JP 2015Takayuki Shimizukawa
 
JUS関西 Sphinxワークショップ@関西 Sphinx紹介
JUS関西 Sphinxワークショップ@関西 Sphinx紹介JUS関西 Sphinxワークショップ@関西 Sphinx紹介
JUS関西 Sphinxワークショップ@関西 Sphinx紹介Takayuki Shimizukawa
 
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
Sphinxで作る貢献しやすいドキュメント翻訳の仕組みSphinxで作る貢献しやすいドキュメント翻訳の仕組み
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組みTakayuki Shimizukawa
 
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 2015Takayuki Shimizukawa
 
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 @ pyconmy2015Takayuki Shimizukawa
 
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 2015Takayuki Shimizukawa
 
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)Takayuki Shimizukawa
 
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 @ pyconsg2015Takayuki 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
 
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 ...Takayuki Shimizukawa
 
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93
PyPro2の読みどころ紹介:Python開発の過去と現在 - BPStudy93Takayuki 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

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Kürzlich hochgeladen (20)

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

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.