How I build Open Textbooks

I am often asked how I build textbooks. I am a little weird in that I am radically open and refuse to use a commercial service or any non-open software. I prefer a line-oriented format in github,using open software and a process that I run myself.

The best example of how I write open books is here:

https://github.com/csev/net-intro/blob/master/book/README.md

I write my books in Pandoc Markdown

https://github.com/csev/net-intro/blob/master/book/01-packets.mkd

I do pay for and use OmniGraffle for figures (InkScape is free – but super hard to use):

https://github.com/csev/net-intro/tree/master/figures

I export the figures export them to SVG and EPS:

https://github.com/csev/net-intro/tree/master/images

Then I use pandoc (which uses LaTeX) to produce PDF and epub

https://github.com/csev/net-intro/blob/master/book/book.sh

Then I upload the PDF to CreateSpace and the epub to Amazon and it is auto-converted to mobi:

http://www.net-intro.com/

This is perhaps a more complex process that using Word, pressbooks or gitbook but I prefer a pipeline that I completely own and control and can adjust. Other methods are easier – I prefer control ownership and introspection over ease of use.