bookshop 0.0.18 → 0.0.19
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +8 -0
- data/README.rdoc +110 -35
- data/lib/bookshop/commands/build.rb +3 -2
- data/lib/bookshop/generators/bookshop/app/templates/README.rdoc +111 -36
- data/lib/bookshop/generators/bookshop/app/templates/book/images/draft.png +0 -0
- data/lib/bookshop/generators/bookshop/app/templates/script/bookshop +1 -3
- data/lib/bookshop/version.rb +1 -1
- metadata +59 -20
- data/.gitignore +0 -4
- data/Gemfile +0 -4
- data/MIT-LICENSE +0 -19
- data/Rakefile +0 -2
- data/bookshop.gemspec +0 -33
data/CHANGELOG
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
0.0.19:
|
2
|
+
Testing
|
3
|
+
This release incorporates a new testing suite.
|
4
|
+
I've added Aruba and Cucumber to create acceptance tests for the basic features
|
5
|
+
of bookshop. This does not currently include any unit testing. I will be adding
|
6
|
+
unit tests in a future release. Hopefully these basic acceptance tests will provide
|
7
|
+
some essence of stability considering my recent cowboy coding. :-)
|
8
|
+
|
1
9
|
0.0.18:
|
2
10
|
Features
|
3
11
|
Added @output variable for use in ERB source files so conditionals can be used to
|
data/README.rdoc
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
== Welcome to bookshop
|
2
2
|
|
3
|
-
bookShop is a publishing framework for html-to-pdf/(e)book toolchain happiness and sustainable productivity. The framework is optimized to help developers quickly ramp-up, allowing them to more rapidly jump in and develop their html-to-(e)book (print-pdf, epub, mobi, etc.) flows, by favoring convention over configuration, setting them up with best practices, standards and tools from the start.
|
3
|
+
bookShop is a publishing framework for html-to-pdf/(e)book toolchain happiness and sustainable productivity. The framework is optimized to help developers quickly ramp-up, allowing them to more rapidly jump in and develop their html-to-pdf/(e)book (print-pdf, epub, mobi, etc.) flows, by favoring convention over configuration, setting them up with best practices, standards and tools from the start.
|
4
4
|
|
5
5
|
bookshop hopes to simplify the process by:
|
6
|
-
* using common
|
6
|
+
* using common tools like HTML, CSS, etc. to make the creation of your book comfortable and familiar, greatly reducing the learning curve for your developers, authors, agents, and other team members
|
7
7
|
* providing a Ruby Gem to make building a book from HTML as easy as 'gem install bookshop'
|
8
|
-
* pulling all the html-to-(e)book tools together into one place (wkhtmltopdf, kindlegen, epubcheck)
|
8
|
+
* pulling all the html-to-pdf/(e)book tools together into one place (wkhtmltopdf, kindlegen, epubcheck)
|
9
9
|
* sticking with open-source tools
|
10
10
|
* giving the developer a set of scripts to automate the redundant stuff
|
11
11
|
* providing an architecture/structure that follows best-practices and simplification (DRY... Don't Repeat Yourself)
|
12
|
-
* providing an extendable framework for other developers to add their own custom templates (and hopefully provide them for the community)
|
13
12
|
|
14
13
|
== Getting Started
|
15
14
|
|
@@ -28,7 +27,7 @@ bookshop hopes to simplify the process by:
|
|
28
27
|
|
29
28
|
1. Install by hand (recommended):
|
30
29
|
|
31
|
-
|
30
|
+
https://github.com/blueheadpublishing/bookshop/wiki/Installing-wkhtmltopdf
|
32
31
|
|
33
32
|
2. Try using the wkhtmltopdf-binary gem (mac + linux i386)
|
34
33
|
|
@@ -52,10 +51,13 @@ bookshop hopes to simplify the process by:
|
|
52
51
|
export PATH
|
53
52
|
|
54
53
|
=== Editing Your New Book
|
54
|
+
==== Where does my Book really live?
|
55
55
|
|
56
|
-
All of the source documents and assets for your book are stored in the +book/+ folder.
|
56
|
+
All of the source documents and assets for your book are stored in the +book/+ folder. So your stylesheets, images, text - everything used for building your book - lives here. Ideally, you should only every edit files in your +book/+ folder (with the exception of your config/book.yml file).
|
57
57
|
|
58
|
-
|
58
|
+
==== Why do the Source files end with +.erb+?
|
59
|
+
|
60
|
+
The source files are all in ERB. ERB is a templating language for the Ruby programming language. Why is this cool? Because it means that you can use HTML _and_ you can embed Ruby code in your source files. In other words, you can do all kinds of cool programmy things. Like embed ruby functions and calls:
|
59
61
|
|
60
62
|
<p>Today is <%= Time.now.strftime('%A') %>.</p>
|
61
63
|
|
@@ -68,58 +70,123 @@ All of the source documents and assets for your book are stored in the +book/+ f
|
|
68
70
|
<li><%= item %></li>
|
69
71
|
<% end %>
|
70
72
|
</ul>
|
71
|
-
|
72
|
-
* include other files or template structures
|
73
73
|
|
74
|
-
|
74
|
+
==== One File to Rule Them All!
|
75
|
+
|
76
|
+
Your master file (which is used to build everything) is the +book.html.erb+ file (remember that we are in the +book/+ folder). You could of course just use this file and put all of your book contents here, making one enormous file, but we don't recommend it...
|
77
|
+
|
78
|
+
==== The Magic of include()
|
79
|
+
|
80
|
+
Are you writing another "War and Peace"? We've created a nice way to make your epic book easier to manage. Rather than putting everything in the +book.html.erb+ file, you can +import+ files. This allows you to break your book up into smaller, more manageable pieces. This makes it soooooo much easier to manage your book. And others will thank you for it..
|
81
|
+
|
82
|
+
You can import a file by using the import() function, for example:
|
83
|
+
|
84
|
+
<%= import('a_whole_chapter.html.erb') %>
|
85
|
+
|
86
|
+
This would import the file +book/a_whole_chapter.html+
|
87
|
+
|
88
|
+
You can also create sub-folders and group your files there. For example, in your book.html.erb file you could import:
|
89
|
+
|
90
|
+
<%= import('ch1/my_first_section.html.erb') %>
|
91
|
+
|
92
|
+
This would import the file +book/ch1/my_first_section.html.erb+
|
93
|
+
|
94
|
+
Note that you can also nest import files into imported files.
|
95
|
+
|
96
|
+
So in your +book/book.html.erb+
|
75
97
|
|
76
|
-
|
98
|
+
<%= import('ch01/ch01.html.erb') %>
|
77
99
|
|
78
|
-
|
100
|
+
and in the +ch01/ch01.html.erb+ you could import more files
|
101
|
+
|
102
|
+
<%= import('first_section.html.erb') %>
|
103
|
+
<%= import('second_section.html.erb') %>
|
104
|
+
|
105
|
+
==== Output-based Content
|
106
|
+
|
107
|
+
So what if you want to create content for certain builds only? Let's say you want to have a different title for the pdf then you do for the epub version of the book.
|
108
|
+
|
109
|
+
No worries. We've created the handy Output Variable (@output) for you to use in this case... aren't we special?
|
110
|
+
|
111
|
+
Currently we have three attributes you can call with @output - :html, :pdf, and :epub.
|
112
|
+
|
113
|
+
Let's generate titles that change depending on the build, using a conditional statement (remember, everything is ERB, so we can use Ruby):
|
79
114
|
|
80
|
-
<p>
|
115
|
+
<p>
|
81
116
|
<% if @output == :html %>
|
82
|
-
|
117
|
+
HTML Title
|
83
118
|
<% elsif @output == :pdf %>
|
84
|
-
|
119
|
+
PDF Title
|
120
|
+
<% elsif @output == :epub %>
|
121
|
+
EPUB Title
|
85
122
|
<% end %>
|
86
123
|
</p>
|
87
|
-
|
88
|
-
# did you notice the book.html.title? Look below at the book.yml for explanation
|
89
124
|
|
125
|
+
==== Book Variables - The +config/book.yml+ file
|
90
126
|
|
91
|
-
|
92
|
-
|
93
|
-
http://www.ruby-doc.org/stdlib-1.9.3/libdoc/erb/rdoc/ERB.html
|
94
|
-
|
95
|
-
When the book is built, your master +book/book.html.erb+ file will be compiled into the final HTML which will be used to build the book types.
|
127
|
+
Gosh, wouldn't it be cool to have a way to store bits of information that we use repeatedly throughout the book, like the ISBN, or the title? And then it would be great to be able to reference them from within the book source. That way we can change them once, in one place, rather than having to go looking for them throughout the entire book.
|
96
128
|
|
97
|
-
|
129
|
+
We've provided a data structure for your book (in YAML) so you can store these pieces of data in variables that you can call within your source files.
|
98
130
|
|
99
|
-
|
100
|
-
|
101
|
-
We've provided a data structure for your book (in YAML) so you can store pieces of data or variables that you can call within your source files.
|
131
|
+
Here's an example +config/book.yml+ file with some Book Variables:
|
102
132
|
|
103
133
|
# book.yml
|
104
134
|
|
105
|
-
|
106
|
-
|
135
|
+
isbn: 1234567891011
|
136
|
+
|
137
|
+
html:
|
138
|
+
title: An HTML Title
|
139
|
+
|
140
|
+
pdf:
|
141
|
+
title: A PDF Title
|
142
|
+
pub_date: 12/13/2012
|
107
143
|
|
108
144
|
epub:
|
109
145
|
title: A EPUB Title
|
146
|
+
pub_date: 11/13/2012
|
110
147
|
|
111
|
-
|
148
|
+
You can then use these Book Variables in your book source file:
|
149
|
+
|
150
|
+
<p>The book isbn is <%= book.isbn %></p>
|
151
|
+
<p>The html title is <%= book.html.title %></p>
|
152
|
+
<p>The epub pub_date is <%= book.epub.pub_date %></p>
|
112
153
|
|
113
|
-
|
154
|
+
Note that you can construct and/or nest variables however you want to:
|
155
|
+
|
156
|
+
# book.yml
|
114
157
|
|
115
|
-
|
116
|
-
|
117
|
-
|
158
|
+
my:
|
159
|
+
madeup:
|
160
|
+
friend:
|
161
|
+
name: dave
|
162
|
+
|
163
|
+
Then call it in your source file with the variable:
|
164
|
+
|
165
|
+
<p>My made up friend's name is <%= book.my.madeup.friend.name %>
|
118
166
|
|
119
167
|
More info about YAML:
|
120
168
|
|
121
169
|
http://en.wikipedia.org/wiki/YAML
|
122
170
|
|
171
|
+
==== Mixing it up
|
172
|
+
|
173
|
+
So, do you want to see something cool? Now that we have the Output Variable and Book Variables, we can combine them to do nifty things, like:
|
174
|
+
|
175
|
+
<p>The ISBN is <%= book.isbn %></p>
|
176
|
+
<p>Title:
|
177
|
+
<% if @output == :html %>
|
178
|
+
<%= book.html.title %>
|
179
|
+
<% elsif @output == :pdf %>
|
180
|
+
<%= book.pdf.title %>
|
181
|
+
<% elsif @output == :epub %>
|
182
|
+
<%= book.epub.title %>
|
183
|
+
<% end %>
|
184
|
+
</p>
|
185
|
+
|
186
|
+
Please explore other creative ways to structure and enhance your book (we'd love to see how you are doing it).
|
187
|
+
|
188
|
+
http://www.ruby-doc.org/stdlib-1.9.3/libdoc/erb/rdoc/ERB.html
|
189
|
+
|
123
190
|
=== Building Your First Book
|
124
191
|
|
125
192
|
To build a pdf format of your book from the ERB source:
|
@@ -130,9 +197,17 @@ To build an HTML format of your book from the ERB source:
|
|
130
197
|
|
131
198
|
$ bookshop build html # -> find the output in builds/html/book_(date).html
|
132
199
|
|
133
|
-
==
|
200
|
+
== Example Book
|
201
|
+
|
202
|
+
We've provided an example book for you already in the +book/+ folder. You can use this as an example of how to structure your book and to use ERB, Book Variables, and Output Variables.
|
203
|
+
|
204
|
+
Simply create a new book:
|
205
|
+
|
206
|
+
bookshop new name_of_book
|
207
|
+
|
208
|
+
Then take a look at the example book in the +book/+ folder.
|
134
209
|
|
135
|
-
|
210
|
+
You can then build the book into whatever format you like.
|
136
211
|
|
137
212
|
== Description of bookshop app contents
|
138
213
|
|
@@ -24,6 +24,7 @@ module Bookshop
|
|
24
24
|
|
25
25
|
# Define arguments and options
|
26
26
|
argument :type
|
27
|
+
class_option :test_framework, :default => :test_unit
|
27
28
|
|
28
29
|
# Define source root of application
|
29
30
|
def self.source_root
|
@@ -57,7 +58,7 @@ module Bookshop
|
|
57
58
|
@output = :html
|
58
59
|
erb = import('book.html.erb')
|
59
60
|
puts "Generating new html from erb"
|
60
|
-
File.open("builds/html/
|
61
|
+
File.open("builds/html/book.html", 'a') do |f|
|
61
62
|
f << erb
|
62
63
|
end
|
63
64
|
|
@@ -86,7 +87,7 @@ module Bookshop
|
|
86
87
|
|
87
88
|
# Builds the pdf from builds/html/book.html
|
88
89
|
puts "Building new pdf at builds/pdf/book.pdf from new html build"
|
89
|
-
cmd = %x[wkhtmltopdf builds/html/book.html builds/pdf/
|
90
|
+
cmd = %x[wkhtmltopdf builds/html/book.html builds/pdf/book.pdf]
|
90
91
|
|
91
92
|
else
|
92
93
|
puts "Error: Command not recognized" unless %w(-h --help).include?(build)
|
@@ -1,15 +1,14 @@
|
|
1
1
|
== Welcome to bookshop
|
2
2
|
|
3
|
-
bookShop is a publishing framework for html-to-pdf/(e)book toolchain happiness and sustainable productivity. The framework is optimized to help developers quickly ramp-up, allowing them to more rapidly jump in and develop their html-to-(e)book (print-pdf, epub, mobi, etc.) flows, by favoring convention over configuration, setting them up with best practices, standards and tools from the start.
|
3
|
+
bookShop is a publishing framework for html-to-pdf/(e)book toolchain happiness and sustainable productivity. The framework is optimized to help developers quickly ramp-up, allowing them to more rapidly jump in and develop their html-to-pdf/(e)book (print-pdf, epub, mobi, etc.) flows, by favoring convention over configuration, setting them up with best practices, standards and tools from the start.
|
4
4
|
|
5
5
|
bookshop hopes to simplify the process by:
|
6
|
-
* using common
|
7
|
-
* providing a Ruby Gem to make building a
|
8
|
-
* pulling all the html-to-(e)book tools together into one place (wkhtmltopdf, kindlegen, epubcheck)
|
6
|
+
* using common tools like HTML, CSS, etc. to make the creation of your book comfortable and familiar, greatly reducing the learning curve for your developers, authors, agents, and other team members
|
7
|
+
* providing a Ruby Gem to make building a book from HTML as easy as 'gem install bookshop'
|
8
|
+
* pulling all the html-to-pdf/(e)book tools together into one place (wkhtmltopdf, kindlegen, epubcheck)
|
9
9
|
* sticking with open-source tools
|
10
10
|
* giving the developer a set of scripts to automate the redundant stuff
|
11
11
|
* providing an architecture/structure that follows best-practices and simplification (DRY... Don't Repeat Yourself)
|
12
|
-
* providing an extendable framework for other developers to add their own custom templates (and hopefully provide them for the community)
|
13
12
|
|
14
13
|
== Getting Started
|
15
14
|
|
@@ -28,7 +27,7 @@ bookshop hopes to simplify the process by:
|
|
28
27
|
|
29
28
|
1. Install by hand (recommended):
|
30
29
|
|
31
|
-
|
30
|
+
https://github.com/blueheadpublishing/bookshop/wiki/Installing-wkhtmltopdf
|
32
31
|
|
33
32
|
2. Try using the wkhtmltopdf-binary gem (mac + linux i386)
|
34
33
|
|
@@ -52,10 +51,13 @@ bookshop hopes to simplify the process by:
|
|
52
51
|
export PATH
|
53
52
|
|
54
53
|
=== Editing Your New Book
|
54
|
+
==== Where does my Book really live?
|
55
55
|
|
56
|
-
All of the source documents and assets for your book are stored in the +book/+ folder.
|
56
|
+
All of the source documents and assets for your book are stored in the +book/+ folder. So your stylesheets, images, text - everything used for building your book - lives here. Ideally, you should only every edit files in your +book/+ folder (with the exception of your config/book.yml file).
|
57
57
|
|
58
|
-
|
58
|
+
==== Why do the Source files end with +.erb+?
|
59
|
+
|
60
|
+
The source files are all in ERB. ERB is a templating language for the Ruby programming language. Why is this cool? Because it means that you can use HTML _and_ you can embed Ruby code in your source files. In other words, you can do all kinds of cool programmy things. Like embed ruby functions and calls:
|
59
61
|
|
60
62
|
<p>Today is <%= Time.now.strftime('%A') %>.</p>
|
61
63
|
|
@@ -68,58 +70,123 @@ All of the source documents and assets for your book are stored in the +book/+ f
|
|
68
70
|
<li><%= item %></li>
|
69
71
|
<% end %>
|
70
72
|
</ul>
|
71
|
-
|
72
|
-
* include other files or template structures
|
73
73
|
|
74
|
-
|
74
|
+
==== One File to Rule Them All!
|
75
|
+
|
76
|
+
Your master file (which is used to build everything) is the +book.html.erb+ file (remember that we are in the +book/+ folder). You could of course just use this file and put all of your book contents here, making one enormous file, but we don't recommend it...
|
77
|
+
|
78
|
+
==== The Magic of include()
|
79
|
+
|
80
|
+
Are you writing another "War and Peace"? We've created a nice way to make your epic book easier to manage. Rather than putting everything in the +book.html.erb+ file, you can +import+ files. This allows you to break your book up into smaller, more manageable pieces. This makes it soooooo much easier to manage your book. And others will thank you for it..
|
81
|
+
|
82
|
+
You can import a file by using the import() function, for example:
|
83
|
+
|
84
|
+
<%= import('a_whole_chapter.html.erb') %>
|
85
|
+
|
86
|
+
This would import the file +book/a_whole_chapter.html+
|
87
|
+
|
88
|
+
You can also create sub-folders and group your files there. For example, in your book.html.erb file you could import:
|
89
|
+
|
90
|
+
<%= import('ch1/my_first_section.html.erb') %>
|
91
|
+
|
92
|
+
This would import the file +book/ch1/my_first_section.html.erb+
|
93
|
+
|
94
|
+
Note that you can also nest import files into imported files.
|
95
|
+
|
96
|
+
So in your +book/book.html.erb+
|
75
97
|
|
76
|
-
|
98
|
+
<%= import('ch01/ch01.html.erb') %>
|
77
99
|
|
78
|
-
|
100
|
+
and in the +ch01/ch01.html.erb+ you could import more files
|
101
|
+
|
102
|
+
<%= import('first_section.html.erb') %>
|
103
|
+
<%= import('second_section.html.erb') %>
|
104
|
+
|
105
|
+
==== Output-based Content
|
106
|
+
|
107
|
+
So what if you want to create content for certain builds only? Let's say you want to have a different title for the pdf then you do for the epub version of the book.
|
108
|
+
|
109
|
+
No worries. We've created the handy Output Variable (@output) for you to use in this case... aren't we special?
|
110
|
+
|
111
|
+
Currently we have three attributes you can call with @output - :html, :pdf, and :epub.
|
112
|
+
|
113
|
+
Let's generate titles that change depending on the build, using a conditional statement (remember, everything is ERB, so we can use Ruby):
|
79
114
|
|
80
|
-
<p>
|
115
|
+
<p>
|
81
116
|
<% if @output == :html %>
|
82
|
-
|
117
|
+
HTML Title
|
83
118
|
<% elsif @output == :pdf %>
|
84
|
-
|
119
|
+
PDF Title
|
120
|
+
<% elsif @output == :epub %>
|
121
|
+
EPUB Title
|
85
122
|
<% end %>
|
86
123
|
</p>
|
87
|
-
|
88
|
-
# did you notice the book.html.title? Look below at the book.yml for explanation
|
89
124
|
|
125
|
+
==== Book Variables - The +config/book.yml+ file
|
90
126
|
|
91
|
-
|
92
|
-
|
93
|
-
http://www.ruby-doc.org/stdlib-1.9.3/libdoc/erb/rdoc/ERB.html
|
94
|
-
|
95
|
-
When the book is built, your master +book/book.html.erb+ file will be compiled into the final HTML which will be used to build the book types.
|
127
|
+
Gosh, wouldn't it be cool to have a way to store bits of information that we use repeatedly throughout the book, like the ISBN, or the title? And then it would be great to be able to reference them from within the book source. That way we can change them once, in one place, rather than having to go looking for them throughout the entire book.
|
96
128
|
|
97
|
-
|
129
|
+
We've provided a data structure for your book (in YAML) so you can store these pieces of data in variables that you can call within your source files.
|
98
130
|
|
99
|
-
|
100
|
-
|
101
|
-
We've provided a data structure for your book (in YAML) so you can store pieces of data or variables that you can call within your source files.
|
131
|
+
Here's an example +config/book.yml+ file with some Book Variables:
|
102
132
|
|
103
133
|
# book.yml
|
104
134
|
|
105
|
-
|
106
|
-
|
135
|
+
isbn: 1234567891011
|
136
|
+
|
137
|
+
html:
|
138
|
+
title: An HTML Title
|
139
|
+
|
140
|
+
pdf:
|
141
|
+
title: A PDF Title
|
142
|
+
pub_date: 12/13/2012
|
107
143
|
|
108
144
|
epub:
|
109
145
|
title: A EPUB Title
|
146
|
+
pub_date: 11/13/2012
|
110
147
|
|
111
|
-
|
148
|
+
You can then use these Book Variables in your book source file:
|
149
|
+
|
150
|
+
<p>The book isbn is <%= book.isbn %></p>
|
151
|
+
<p>The html title is <%= book.html.title %></p>
|
152
|
+
<p>The epub pub_date is <%= book.epub.pub_date %></p>
|
112
153
|
|
113
|
-
|
154
|
+
Note that you can construct and/or nest variables however you want to:
|
155
|
+
|
156
|
+
# book.yml
|
114
157
|
|
115
|
-
|
116
|
-
|
117
|
-
|
158
|
+
my:
|
159
|
+
madeup:
|
160
|
+
friend:
|
161
|
+
name: dave
|
162
|
+
|
163
|
+
Then call it in your source file with the variable:
|
164
|
+
|
165
|
+
<p>My made up friend's name is <%= book.my.madeup.friend.name %>
|
118
166
|
|
119
167
|
More info about YAML:
|
120
168
|
|
121
169
|
http://en.wikipedia.org/wiki/YAML
|
122
170
|
|
171
|
+
==== Mixing it up
|
172
|
+
|
173
|
+
So, do you want to see something cool? Now that we have the Output Variable and Book Variables, we can combine them to do nifty things, like:
|
174
|
+
|
175
|
+
<p>The ISBN is <%= book.isbn %></p>
|
176
|
+
<p>Title:
|
177
|
+
<% if @output == :html %>
|
178
|
+
<%= book.html.title %>
|
179
|
+
<% elsif @output == :pdf %>
|
180
|
+
<%= book.pdf.title %>
|
181
|
+
<% elsif @output == :epub %>
|
182
|
+
<%= book.epub.title %>
|
183
|
+
<% end %>
|
184
|
+
</p>
|
185
|
+
|
186
|
+
Please explore other creative ways to structure and enhance your book (we'd love to see how you are doing it).
|
187
|
+
|
188
|
+
http://www.ruby-doc.org/stdlib-1.9.3/libdoc/erb/rdoc/ERB.html
|
189
|
+
|
123
190
|
=== Building Your First Book
|
124
191
|
|
125
192
|
To build a pdf format of your book from the ERB source:
|
@@ -130,9 +197,17 @@ To build an HTML format of your book from the ERB source:
|
|
130
197
|
|
131
198
|
$ bookshop build html # -> find the output in builds/html/book_(date).html
|
132
199
|
|
133
|
-
==
|
200
|
+
== Example Book
|
201
|
+
|
202
|
+
We've provided an example book for you already in the +book/+ folder. You can use this as an example of how to structure your book and to use ERB, Book Variables, and Output Variables.
|
203
|
+
|
204
|
+
Simply create a new book:
|
205
|
+
|
206
|
+
bookshop new name_of_book
|
207
|
+
|
208
|
+
Then take a look at the example book in the +book/+ folder.
|
134
209
|
|
135
|
-
|
210
|
+
You can then build the book into whatever format you like.
|
136
211
|
|
137
212
|
== Description of bookshop app contents
|
138
213
|
|
data/lib/bookshop/version.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: bookshop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.19
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- D.a. Thompson
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-12-
|
13
|
+
date: 2011-12-27 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: thor
|
@@ -35,7 +35,7 @@ dependencies:
|
|
35
35
|
type: :development
|
36
36
|
version_requirements: *id002
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
38
|
+
name: rake
|
39
39
|
prerelease: false
|
40
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
@@ -45,13 +45,56 @@ dependencies:
|
|
45
45
|
version: "0"
|
46
46
|
type: :development
|
47
47
|
version_requirements: *id003
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: minitest
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: "0"
|
57
|
+
type: :development
|
58
|
+
version_requirements: *id004
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: aruba
|
61
|
+
prerelease: false
|
62
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: "0"
|
68
|
+
type: :development
|
69
|
+
version_requirements: *id005
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rdoc
|
72
|
+
prerelease: false
|
73
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: "0"
|
79
|
+
type: :development
|
80
|
+
version_requirements: *id006
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: wkhtmltopdf-binary
|
83
|
+
prerelease: false
|
84
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: "0"
|
90
|
+
type: :development
|
91
|
+
version_requirements: *id007
|
48
92
|
description: |-
|
49
93
|
bookShop is a publishing framework for html-to-pdf/(e)book toolchain happiness and sustainable productivity.
|
50
94
|
The framework is optimized to help developers quickly ramp-up, allowing them to more rapidly
|
51
95
|
jump in and develop their html-to-pdf/(e)book (print-pdf, epub, mobi, etc.) flows, by favoring convention over
|
52
96
|
configuration, setting them up with best practices, standards and tools from the start.
|
53
|
-
email:
|
54
|
-
- da@blueheadpublishing.com
|
97
|
+
email: da@blueheadpublishing.com
|
55
98
|
executables:
|
56
99
|
- bookshop
|
57
100
|
extensions: []
|
@@ -59,23 +102,14 @@ extensions: []
|
|
59
102
|
extra_rdoc_files: []
|
60
103
|
|
61
104
|
files:
|
62
|
-
- .gitignore
|
63
105
|
- CHANGELOG
|
64
|
-
- Gemfile
|
65
|
-
- MIT-LICENSE
|
66
106
|
- README.rdoc
|
67
|
-
- Rakefile
|
68
107
|
- bin/bookshop
|
69
|
-
- bookshop.gemspec
|
70
|
-
- lib/bookshop.rb
|
71
|
-
- lib/bookshop/commands.rb
|
72
108
|
- lib/bookshop/commands/application.rb
|
73
109
|
- lib/bookshop/commands/build.rb
|
74
110
|
- lib/bookshop/commands/yaml/book.rb
|
75
|
-
- lib/bookshop/
|
111
|
+
- lib/bookshop/commands.rb
|
76
112
|
- lib/bookshop/generators/bookshop/app/app_generator.rb
|
77
|
-
- lib/bookshop/generators/bookshop/app/templates/CHANGELOG
|
78
|
-
- lib/bookshop/generators/bookshop/app/templates/README.rdoc
|
79
113
|
- lib/bookshop/generators/bookshop/app/templates/book/book.html.erb
|
80
114
|
- lib/bookshop/generators/bookshop/app/templates/book/ch01/adding_images.html.erb
|
81
115
|
- lib/bookshop/generators/bookshop/app/templates/book/ch01/ch01.html.erb
|
@@ -86,19 +120,24 @@ files:
|
|
86
120
|
- lib/bookshop/generators/bookshop/app/templates/book/cover.html.erb
|
87
121
|
- lib/bookshop/generators/bookshop/app/templates/book/css/stylesheet.css
|
88
122
|
- lib/bookshop/generators/bookshop/app/templates/book/images/canvas.jpg
|
123
|
+
- lib/bookshop/generators/bookshop/app/templates/book/images/draft.png
|
89
124
|
- lib/bookshop/generators/bookshop/app/templates/book/images/html-18.png
|
90
125
|
- lib/bookshop/generators/bookshop/app/templates/book/preface.html.erb
|
91
126
|
- lib/bookshop/generators/bookshop/app/templates/book/toc.html.erb
|
92
|
-
- lib/bookshop/generators/bookshop/app/templates/
|
93
|
-
- lib/bookshop/generators/bookshop/app/templates/builds/html/.empty_directory
|
94
|
-
- lib/bookshop/generators/bookshop/app/templates/builds/mobi/.empty_directory
|
95
|
-
- lib/bookshop/generators/bookshop/app/templates/builds/pdf/.empty_directory
|
127
|
+
- lib/bookshop/generators/bookshop/app/templates/CHANGELOG
|
96
128
|
- lib/bookshop/generators/bookshop/app/templates/config/book.yml
|
129
|
+
- lib/bookshop/generators/bookshop/app/templates/README.rdoc
|
97
130
|
- lib/bookshop/generators/bookshop/app/templates/script/bookshop
|
131
|
+
- lib/bookshop/generators/bookshop/app/USAGE
|
98
132
|
- lib/bookshop/post_install.rb
|
99
133
|
- lib/bookshop/ruby_version_check.rb
|
100
134
|
- lib/bookshop/script_bookshop_loader.rb
|
101
135
|
- lib/bookshop/version.rb
|
136
|
+
- lib/bookshop.rb
|
137
|
+
- lib/bookshop/generators/bookshop/app/templates/builds/epub/.empty_directory
|
138
|
+
- lib/bookshop/generators/bookshop/app/templates/builds/html/.empty_directory
|
139
|
+
- lib/bookshop/generators/bookshop/app/templates/builds/mobi/.empty_directory
|
140
|
+
- lib/bookshop/generators/bookshop/app/templates/builds/pdf/.empty_directory
|
102
141
|
homepage: http://rubygems.org/gems/bookshop
|
103
142
|
licenses:
|
104
143
|
- MIT
|
@@ -122,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
122
161
|
requirements: []
|
123
162
|
|
124
163
|
rubyforge_project: bookshop
|
125
|
-
rubygems_version: 1.8.
|
164
|
+
rubygems_version: 1.8.13
|
126
165
|
signing_key:
|
127
166
|
specification_version: 3
|
128
167
|
summary: A publishing framework for html-to-pdf/(e)book toolchain happiness and sustainable productivity.
|
data/.gitignore
DELETED
data/Gemfile
DELETED
data/MIT-LICENSE
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
Copyright (C) 2010, 2011 by BlueHead Publishing (http://blueheadpublishing.com)
|
2
|
-
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
of this software and associated documentation files (the "Software"), to deal
|
5
|
-
in the Software without restriction, including without limitation the rights
|
6
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
copies of the Software, and to permit persons to whom the Software is
|
8
|
-
furnished to do so, subject to the following conditions:
|
9
|
-
|
10
|
-
The above copyright notice and this permission notice shall be included in
|
11
|
-
all copies or substantial portions of the Software.
|
12
|
-
|
13
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
THE SOFTWARE.
|
data/Rakefile
DELETED
data/bookshop.gemspec
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
require File.expand_path("../lib/bookshop/version", __FILE__)
|
3
|
-
require File.expand_path("../lib/bookshop/post_install", __FILE__)
|
4
|
-
|
5
|
-
Gem::Specification.new do |s|
|
6
|
-
s.name = "bookshop"
|
7
|
-
s.version = Bookshop::VERSION
|
8
|
-
s.platform = Gem::Platform::RUBY
|
9
|
-
s.authors = ['D.a. Thompson']
|
10
|
-
s.email = ['da@blueheadpublishing.com']
|
11
|
-
s.homepage = "http://rubygems.org/gems/bookshop"
|
12
|
-
s.summary = "A publishing framework for html-to-pdf/(e)book toolchain happiness and sustainable productivity."
|
13
|
-
s.description = "bookShop is a publishing framework for html-to-pdf/(e)book toolchain happiness and sustainable productivity.
|
14
|
-
The framework is optimized to help developers quickly ramp-up, allowing them to more rapidly
|
15
|
-
jump in and develop their html-to-pdf/(e)book (print-pdf, epub, mobi, etc.) flows, by favoring convention over
|
16
|
-
configuration, setting them up with best practices, standards and tools from the start."
|
17
|
-
s.license = "MIT"
|
18
|
-
|
19
|
-
s.required_rubygems_version = ">= 1.3.6"
|
20
|
-
s.rubyforge_project = "bookshop"
|
21
|
-
s.has_rdoc = true
|
22
|
-
|
23
|
-
|
24
|
-
s.add_dependency "thor", ">= 0.14.6"
|
25
|
-
s.add_development_dependency "bundler", ">= 1.0.0"
|
26
|
-
s.add_development_dependency "rspec"
|
27
|
-
|
28
|
-
s.files = `git ls-files`.split("\n")
|
29
|
-
s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
30
|
-
s.require_path = 'lib'
|
31
|
-
|
32
|
-
s.post_install_message = Bookshop::POST_INSTALL
|
33
|
-
end
|