Slide 1

Slide 1 text

Code a Coding Book Publish a paperback with Node, Haskell, Vim, Markdown, ASTs, and lots of piping. JonathanLeeMartin.com/books

Slide 2

Slide 2 text

I’m Jonathan Lee Martin. @nybblr

Slide 3

Slide 3 text

I teach developers to craft exceptional software.

Slide 4

Slide 4 text

I’ve worked with over 300 developers — from career switchers to senior developers at Fortune 100 companies — through their journey into software development.

Slide 5

Slide 5 text

Functional React 3 days Practical TDD 5 days Full Stack JavaScript 8 week Express in a Hurry 1 day Remote Collaboration 5 days Functional Programming in JS 3 days

Slide 6

Slide 6 text

Let’s do something together. jonathanleemartin.com Functional React 3 days Practical TDD 5 days Full Stack JavaScript 8 week Express in a Hurry 1 day Remote Collaboration 5 days Functional Programming in JS 3 days

Slide 7

Slide 7 text

“The composition of vast books is a laborious and impoverishing extravagance.” — Jorge Luis Borges

Slide 8

Slide 8 text

To write a book, you must first invent the universe. (mostly with JavaScript)

Slide 9

Slide 9 text

Today, we’ll cover: 1. High-level timeline of writing the book 2. AST preprocessing for Web, ePub, MOBI, LaTeX, PDF 3. Tech behind online distribution 4. Unique challenges going from digital to print 5. Q + A

Slide 10

Slide 10 text

Timeline From concept to print

Slide 11

Slide 11 text

Timeline 1. Planning 2. Writing 3. Digital pipeline 4. Technical reviews 5. Editing 6. Officialese 7. Final digital layout tweaks 8. Digital distribution 9. Print pipeline 10. Print layout revisions 11. Prepress 12. Proofing, proofing, proofing 13. Proof hard copy 14. Submit to Amazon 15. Optimize marketing copy 16. Real work begins! 3–4 months

Slide 12

Slide 12 text

Preprocessing Markdown ASTs for

Slide 13

Slide 13 text

Preprocessing 1. Markdown to JSON AST 2. Image path transforms 3. Cached SVG rendering 4. AST concatenation 5. Figure numbering 6. Chapter numbering 7. Unique header IDs 8. Table of contents 9. Syntax highlighting 10. Diffing code blocks 11. Intraline diff hints 12. Term indexing

Slide 14

Slide 14 text

Output Preprocessing 1. Web (preview + debugging) 2. ePub (main eBook format) 3. MOBI (Kindle) 4. PDF via TeX (LaTeX + XeLaTeX)

Slide 15

Slide 15 text

Distribution Online eBook

Slide 16

Slide 16 text

github.com/nybblr/bookseller-api

Slide 17

Slide 17 text

Print From digital to

Slide 18

Slide 18 text

Q + A 1. How does that highlight-diff filter work? 2. Why pipes instead of Make or Gulp? 3. Why not use an off-the-shelf solution for writing / rendering / distribution? 4. What’s the book actually about?

Slide 19

Slide 19 text

Let’s do something together. jonathanleemartin.com