Imagine I wanted to write a book about Web development in the year 1812. Which tools would I need? I’d need an ink, a quill pen, and a stack of paper. To make multiple copies of the book, a publisher would hire a bunch of people who’d use ink, quill pens, and a stack of paper.
Quill pens are gone. My colleagues and I were writing another book for O’Reilly. The process was not as simple as in 1812: we used MS Word with the publisher’s template. When the draft of a chapter was ready I’d upload it to the publisher server and send an email to the editor. It’s not too bad is it?
First, we’re happy to say that O’Reilly Publishing has accepted our new book proposal “Enterprise Web Development: From Desktop to Mobile“. The book will have four authors and let me tell you how we are going to write it.
The chapters should be submitted into O’Reilly’s SVN code repository in XML-based markup called DocBook so the publisher can eventually convert the text into multiple formats for the multi-channel distribution.
Just had a meeting with my co-authors to decide on the work flow for the book writing. First, my hat off to O’Reilly for allowing use to make the manuscript available for everyone (as we add content) online for free. This is really cool – we’ll be building community around the book while writing it and, I’m sure, we’ll be getting lots of good feedback, which will definitely improve the quality of the final version of the book.
But let me explain you the work flow and the environment we’re planning to create and use for the book writing.
0. Create an account with a mind-mapping service (we use MindMeister ) so the co-authors can easily store and exchange the ideas related to this project.
1. Create a repository in Github where we’ll store all the book content – the text and the code samples.
2. Create a Web site on Github where people can read the book (under Creative Commons license) as HTML document.
3. The text editor of choice is Sublime Text 2, where we’ll write the text not in DocBook, but in a more simple to read format – John Gruber’s Markdown.
4. Write a shell script that will do the following:
a) Convert Markdown into DocBook using Pandoc
b) Submit Markdown to Github with an option for automatic conversion into
HTML and publishing it online.
5. Install and configure Jenkins Continuous Integration Server to run the items in Step 4 automatically
6. Make sure that Jenkins automatically submits the generated DocBook to O’Reilly’s Subversion server.
7. Create a small proof of concept to test all of the above and get the confirmation from O’Reilly that all this automatic generation-conversion-submission works an the the resulting data format is acceptable.
Do you like this quill pen, circa 2012? We do and are looking forward to working with O’Reilly!