tooling/book-of-modern-frontend-tooling — pull request #31 by rowoot (2014-02-02 07:11:31+00:00)
Title: Build system 0.0.1

[Dependencies: Pandoc and TeXLive|MacTex]
Quick heads up: I used gulp instead of grunt to play with it. I am willing to change back to grunt if required.

This PR adds a primitive build system to generate the book in pdf and html formats. Thanks to the use pandoc, this book can be exported to various formats with the addition of simple gulp tasks. I have also listed the requirements, constraints I assumed for my proposed solution. Refer to README.md for instructions on how to use the gulp tasks to build the book. Happy to iterate based on feedback

#### Requirements
1. Ability to add and set order for topics and chapters easily.
2. Ability to export the book to various file types.

#### Constraints:
1. Ability to add a new adhoc directory structure for new chapters or topics. The build system must cater to these as well.

#### Proposed solution:
1. Centralized file (chapters/toc.md) which lists the order of how the content is structured in the book (granularity: individual topics)

This could have been a simple JSON file as well since the main purpose is to define how the content should be exported (as pdf,html or any other file format), but I chose markdown to be consistent with the content. I also felt having a toc.md would be flexibile to generate a (well linked) toc portion of the book easily.

I used pandoc since I felt that it addressed the need to export to various file types as required.

##### Pros
+ Easy to
+ Easy to add/remove chapters (and/or topics)

##### Cons
- Can grow to be large (and could potentially be hard to maintain)
- May limit flexibility in terms of how the book can be generated. For example, How can I generate a rich HTML site with custom design?