UNPKG

11.7 kBMarkdownView Raw
1# Bookiza
2
3Beautiful responsive books. On web.
4
5Bookiza is a book *baking tool* for web. It is a lightweight JavaScript (node LTS+) framework with a browser shim that lets you publish books, magazines or comics online.
6
7<!-- [![Travis](https://img.shields.io/travis/bookiza/bookiza.svg?maxAge=2592000)](https://travis-ci.org/bookiza/bookiza) -->
8[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](https://commitizen.github.io/cz-cli/)
9[![npm](https://img.shields.io/npm/dt/bookiza.svg?maxAge=2592000)](https://www.npmjs.com/package/bookiza)
10![alt tag](https://raw.githubusercontent.com/bookiza/bookiza/master/assets/images/bookiza.png)
11
12
13# Advantage
14Bookiza cuts your book writing & publishing time down by half. By _half_, no less! Porting some of the best design and development techniques from the world of rapid app development, Bookiza will let you develop your story (novel, comics, magazine or textbook) into a timeless product, an eternal journey for readers to share an enjoy… no wait, an 'offline-first' + 'iPad-first' codex book app called [Superbook](https://bubblin.io/docs/format).
15
16Now you can get your developer & designer friends to collaborate on your book for a proper layout and [referential accessibility](https://bubblin.io/blog/referential-accessibility).
17
18Produce delightful books that work [everywhere](https://bubblin.io/support) and for everyone!
19
20> Visit the [Bookiza Website](https://bookiza.io) for more details.
21
22
23### Support
24
25Books written using Bookiza are [supported](https://bubblin.io/support) on every major device, tablet and desktop out there. All it needs is a modern browser and an Internet connection to load the first time.
26
27Here are some [demo books](https://bubblin.io/) with varying implementations of layout, line-tracking and responsive effects.
28
29Despite ubiquity our effort with superbooks points mostly to yielding best reading experiences on tablets i.e. iPads(iOS 7+), Kindle 3 (Silk) and Android 5.0+ phablets. Because, well, even though it's great to support desktops, smartphones, TVs and whatnot, the most ideal situation and surface for reading books is the tablet.
30
31### Documentation
32
33Full documentation is available [here](https://bubblin.io/bookiza/docs/) and [here](https://bubblin.io/cover/official-handbook-by-marvin-danig) and [here](https://bubblin.io/cover/bookiza-framework-by-marvin-danig).
34
35A quick primer on how Superbooks work is [here](https://bubblin.io/docs/concept).
36
37
38### What you'll need
39
40node > 8.1.3, git-scm, an `api_key` from `https://bubblin.io` and a unixy-style shell environment.
41
42### Setup
43
44```bash
45$ npm install -g bookiza
46```
47
48> You'll need to install bookiza and shelljs as global.
49
50Check installation with:
51
52```bash
53$ bookiza --version
54```
55
56> `bookiza` is shortened to alphabet `b` on your terminal as CLI invoker. This is useful when you're creating a relatively longer body of text and it becomes increasingly painful to type full form commands into the abyss.
57
58
59Next, register Bookiza client with:
60
61```bash
62$ bookiza register or $ b z
63```
64
65Provide your Bubblin credentials to connect to its sweet POST API. You're all set!
66
67To check:
68
69```bash
70$ bookiza whoami or $ b w
71```
72
73
74### Getting started
75To bootstrap new project, run:
76
77```bash
78$ bookiza new my-awesome-new-book --leafs 40 --template novella # Creates a project with 40 fresh leafs (80 pages) inside the `manuscript/` folder and applies a responsive `novella` template on it.
79```
80
81`cd` into the project and:
82
83```bash
84$ bookiza server # Opens https://localhost:4567 on your browser!
85```
86
87Open the project on your favorite text editor (VSC Sublime Atom or any other) and write away! Once you're ready (or even if you're not) hit:
88
89```bash
90$ bookiza publish
91```
92
93Your book will be *POST'ed / PATCH'ed* over Bubblin instantly, in real time. Keep updating with reader feedback!
94
95
96To see full CLI documentation with:
97
98```bash
99$ bookiza --help
100```
101
102That's it.
103
104### Templates
105
106Bookiza comes along with several FREE, responsive and scalable [templates](https://github.com/bookiza/templates) so that you don’t have to do the layouts yourself.
107
108Feel free to use templates to kickstart your book/magazine in a best possible way and ensure that your work is responsive and [scalable](https://bubblin.io/support) on as many devices as possible.
109
110> We’re accepting new templates for all kinds of longform. Feel free to [fork](https://github.com/bookiza/templates#fork-destination-box) and submit pull requests per following [rules](https://github.com/bookiza/templates#rules) for any kind of book that you may have worked on.
111
112
113### Configuration
114
115Bookiza and Bubblin default to only the building blocks of web i.e. HTML, CSS & JavaScript. Infact Bubblin accepts only clean and compiled HTML, CSS & JS to render books.
116
117> No preprocessor jugglery is allowed on live books that're meant for the readers!
118
119Bookiza lets you compose your manuscript with any preprocessor or engine you like. There are two ways to configure Bookiza so as to cater to your most general writing needs and at times, needs that are specific to a particular book.
120
121
122#### `.bookizarc`
123
124When you register bookiza (`$ bookiza register` or `$ b z` ) it will automatically set up the following global runcom (.rc) file at the root. Bookiza will pick up the mode for its generators from this `arc` file.
125
126```
127# $ vi .bookizarc
128
129{
130 "token": "",
131 "username": "",
132 "email": "",
133
134 "mode": {
135 "HTML": "html", # markdown, haml, pug etc.
136 "CSS": "css",
137 "JS": "js",
138 "HEAD": "html"
139 },
140
141 "urls": {
142 "registrationURL": "https://bubblin.io/api/register",
143 "baseURL": "https://bubblin.io/api/books/"
144 }
145}
146
147```
148
149As you can see, configuring bookiza is as simple as setting the `mode` to use preprocessors of your liking. See full list of templating engines & preprocessors that are currently available.
150
151#### `.bookrc`
152
153Similarly, editing mode can also be set on per book basis with the following `rc` configuration inside the root of your project:
154
155```
156# $ vi .bookrc
157
158{
159 "mode": {
160 "HTML": "html",
161 "CSS": "css",
162 "JS": "js",
163 "HEAD": "html"
164 }
165}
166
167```
168In case of conflict of modes between `.bookrc` and `.bookizarc` the book_level configuration i.e. `.bookrc` shall prevail.
169
170### What is Bookiza?
171
172Bookiza is an open source book writing framework that makes your life easy. Be up and running with a manuscript in seconds and publish some of the best most crazy beautiful books that ever existed.
173
174Books baked with Bookiza use building-blocks of web i.e. HTML, CSS and JavaScript (Yeah, we got JS inside e-books!) so now you can spice up your story with underlying code, dynamic illustrations, data visualizations, interactive graphs, visual explanations and what not.
175
176Get the whole web inside your book!
177
178Check out our [demo book](https://bubblin.io/cover/the-solar-system-by-marvin-danig) on your iPad, for example.
179
180
181### Why a framework & not wordprocessor?
182We wanted to be able to write any kind of book — comics, scientific journals, magazines, novels, schoolbooks, textbooks - using the awesomeness of web.
183
184Wordprocessors trump the flexibility that is required for books, comics & magazines that artists all over the world can create. That's not surprising because wordprocessors originally were meant for enterprise documentation (bureaucracy?) only. For things like purchase orders, contracts or legalese which has nothing to do with nice and creative books.
185
186We also wanted books to feel native on the new web -- not like websites that pretend to be books. Be one that handles long form correctly and scales across all the devices and desktops out there, *ala* - responsive, adaptive and scalable (with or without touch capability).
187
188:metal::point_right: A framework with a powerful CL interface also ensures that we can use our existing developer toolchain to mint and print books.
189
190
191#### What it is not.
192
193:book: Bookiza is not yet another javascript framework (thankfully) for mobile or app development. It doesn't prescribed a pattern or emphasizes MVC or anything like that. Bookiza is also not a blogging solution. If you wish to write short-form essays or blogposts of upto 3-4 pages (or so) we recommend you to go for a blog instead.
194
195At the moment bookiza will bake manuscripts that are at least 4 pages long. Read more about Superbooks on [Bubblin](https://bubblin.io).
196
197
198### Obsession
199
200Bookiza is *obsessive* about live book editions and quick manuscript turnarounds. Using instant edit2publish state of web to the maximum. Our goal is to optimize books on the web, make it friendlier for people to read, write and connect. Provide a flexibility that book writers haven't had for the last twenty years. A framework that decidely leaves behind the old-school idea of downloading-a-lifeless-artifact called ebook that is nothing but a dull file sponsored by an even older lobby group that wants physical books to thrive and remain on top!.
201
202We want to focus on a future where web and books are unified, in a single resource that is both accessible and available everywhere.
203
204
205#### Features
206
207* [x] Responsive container by default
208* [x] Cover on all major devices and browsers
209* [x] Support beautiful typography with @font-faces
210* [x] Allow CDN resources for quick load
211* [x] Open once, offline forever without needing to download any artifact
212* [x] Modular pages that follow web standards
213* [x] Visual explanations with in-page JavaScript
214* [x] Full-bleed imagery for fashion/lifestyle journals
215* [x] Support for WebGL, CSS3 or other HTML5 experiments.
216* [x] Searchable & indexable content
217* [x] Simplicity of `git`
218* [x] Push2Deploy with real-time editions
219
220
221## The library
222Books created via Bookiza can be published directly to [bubblin](https://bubblin.io) - our substrate marketplace for books or you can host the book on your own website too!
223
224Find a selection of *exclusive* and [handpicked books](https://bubblin.io/books) by our community of writers.
225
226## The community
227
228* Follow [@bookiza on Twitter](https://twitter.com/bookiza)
229* Have a feature request or find a bug? [Submit an issue](https://github.com/bookiza/bookiza/issues)
230* Have a question that's not a feature request or bug report? [Ask on Bookiza Bubblin forum](https://bubblin.uservoice.com/forums/228504-general)
231* Read the [Bubblin Blog](https://medium.com/)
232
233
234## Authors
235
236Created & maintained by [Marvin Danig](https://twitter.com/marvindanig).
237
238Pull requests, [issues](https://github.com/bookiza/bookiza/issues), contribution and [donations](https://bubblin.io/donations/new) are very welcome. Feedback is welcome from both developers & designers!
239
240See the list of [contributors](https://github.com/bookiza/bookiza/graphs/contributors).
241
242## Further development
243
244Our motto: "Books should be a first class citizen of the web" -- let web & books be together, like a single unified resource -- both accessible and *open*!
245
246We're also working on a draft proposal for [spine_url](https://bubblin.github.io/) to bring native support of books on the web -- like single page apps.
247
248### Dependencies
249
250async, superagent, progress, co-prompt, co, path, fs, chalk, commander, string, dateformat, shelljs, os-homedir
251
252
253### Bookiza Commit Conventions
254
255* [x] PR branches must work everywhere: i.e. should have been tested on all browsers on OSX, Windows & Linux.
256* [x] Commit messages must explain whys & whats. Please lint your JS before submitting your features.
257* [x] Provide system related information of the dev machine(OS/Browser/Screen).
258
259### Up next
260
261* Introduce preprocessors inside page generators
262* TODO: Consider introducing cover attributes within ambit of JSON. Or not.
263
264### LICENSE
265
266TBD. *UNLICENSED*