kindlerb 1.0.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4cab5c3ffc932e8c475b229d29b77fcd403cedc0
4
- data.tar.gz: 55c0bceb12bb7e190b65ce1a2450229c5fb2ff55
3
+ metadata.gz: 7872bdac9ee05ae678f5f72db48eb93b2f5f2bd3
4
+ data.tar.gz: d43ca635386f873ff1fed340329645e688a453cd
5
5
  SHA512:
6
- metadata.gz: 45f6cad989b027854eaa0f788f3290f2749ec206bd785917cc1c79c77d1a58499a9d6727fcd4236801573ef83ee8cb8b8e021aee3b3c258fe6fa733476a3bc0f
7
- data.tar.gz: a2124e7d8f7ebc1dcb2765ecd95addfa6b0b64bd52ca830a66e528001c306d91cadc90faf0390c6ae2aca0b520235c1520332ea0bd4c5aff58a28b97d5635e05
6
+ metadata.gz: 2a5151a4feb6ec18eb8bde6aaf2a8e3d3eb38e7b30d6680d2d37fd7ac37ef5ebf53e314586a5c4724a29eb26d8f6d45cf72305c7c4d862698de6578710c677a5
7
+ data.tar.gz: 0c2da123b0fddf1a10f2670ab7170fc1788b6d718f8c65a6deaaeec19c3a5298dac513d81b64e529104b4afd0e4378838bf2c6f50f1090a960d87cb1faee0ac4
data/.gitignore CHANGED
@@ -1 +1 @@
1
- testtree/
1
+ testtree/
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
-
2
- gem 'nokogiri'
3
- gem 'mustache'
1
+
2
+ gem 'nokogiri'
3
+ gem 'mustache'
@@ -1,21 +1,21 @@
1
- Copyright (c) 2010 Daniel Choi, http://danielchoi.com/software/
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
-
1
+ Copyright (c) 2010 Daniel Choi, http://danielchoi.com/software/
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
data/README.md CHANGED
@@ -1,139 +1,139 @@
1
- # kindlerb
2
-
3
- kindlerb is a Ruby Kindle periodical-format ebook generator. This tool was initially extracted from
4
- [kindlefeeder.com][kf1]. [Kindlefodder][kf2] was also built on
5
- top of kindlerb.
6
-
7
- [kf1]:http://kindlefeeder.com
8
- [kf2]:https://github.com/danchoi/kindlefodder
9
-
10
- kindlerb converts a file tree of sections, articles, images, and metadata into
11
- a MOBI periodical-formatted document for the Kindle. It is a wrapper around the
12
- `kindlegen` program from Amazon that hides the details for templating OPF and NCX
13
- files.
14
-
15
- ## Requirements
16
-
17
- * Ruby 1.9.x.
18
-
19
- ## Installation and Setup
20
-
21
- Add `gem 'kindlerb', github: 'danchoi/kindlerb'` to your Gemfile then run
22
- ```
23
- bundle install
24
- bundle binstubs kindlerb
25
- ```
26
- Then **cd** into your app root and then run the below command - this will install the required Kindlegen package:
27
- `./bin/setupkindlerb`
28
-
29
- You're good to go!
30
-
31
- **OR**
32
-
33
- run `gem install kindlerb`
34
-
35
- Then **cd** into your app root and then run the below command - this will install the required Kindlegen package:
36
- `setupkindlerb`
37
-
38
- You're good to go!
39
-
40
- ## How to use it
41
-
42
- Require kindlerb in your project.
43
-
44
- require 'kindlerb'
45
-
46
- ### Kindlerb.run(target_dir, verbose, compression_method)
47
-
48
- Only the first argument is mandatory, everything else will use default values if no arguments are provided.
49
-
50
- **target_dir** = Put the directory that contains your ebook files
51
-
52
- **verbose** = true or false. Default is false.
53
-
54
- **compression_method** = 'c0' (no compression) OR 'c1' (standard DOC compression) OR 'c2' (Kindle huffdic compression). Default is 'c2'.
55
-
56
- The output will be a mobi document.
57
-
58
- **target_dir** should include the below files and structure:
59
-
60
- _document.yml
61
- sections/
62
- 000/
63
- _section.txt # contains section title
64
- 000.html # an article
65
- 001.html
66
- 001/
67
- _section.txt
68
- 000.html
69
- 001.html
70
- 002.html
71
-
72
- kindlerb will extract article titles from the `<title>` (in `<head>`) tag in
73
- the *.html files .
74
-
75
- The _document.yml is a YAML document. It should look like something like this:
76
-
77
- ---
78
- doc_uuid: kindlerb.21395-2011-12-19
79
- title: my-ebook
80
- author: my-ebook
81
- publisher: me
82
- subject: News
83
- date: "2011-12-19"
84
- masthead: /home/choi/Desktop/masthead.gif
85
- cover: /home/choi/Desktop/cover.gif
86
- mobi_outfile: my-ebook.mobi
87
-
88
- kindlerb uses the the file tree and _document.yml to construct these additional
89
- resource required by Amazon's `kindlegen` program:
90
-
91
- * nav-contents.ncx
92
- * contents.html
93
- * kindlerb.opf
94
-
95
- After that, kindlerb will exec the kindlegen program to generate your mobi
96
- document. The filename the output document is specified by the 'mobi_outfile'
97
- value in _document.yml.
98
-
99
- ### Kindlerb.executable
100
- Will return the full path to the Kindlegen executable file.
101
-
102
- ### Kindlerb.download
103
- This is called when you first install the gem and call `setupkindlerb` executable. It downloads the appropriate Kindlegen version for the host OS. There should be no need to call this after initial set up.
104
-
105
- ## Images
106
-
107
- kindlerb will incorporate images into the generated ebook by parsing all the
108
- `src` attributes of all the `<img>` tags in your *.html files.
109
-
110
- The `src` attributes must point to image files on the local filesystem. If the
111
- paths are relative, they should be relative to the target file tree root.
112
-
113
-
114
- ## Encoding
115
-
116
- Make sure all your textual source files are encoded in UTF-8.
117
-
118
-
119
- ## Authors
120
-
121
- **Daniel Choi**
122
- * email: dhchoi@gmail.com
123
- * github: [danchoi][github]
124
- * twitter: @danchoi
125
- [github]:http://github.com/danchoi
126
-
127
- **Emir Aydin**
128
- * email: emir@emiraydin.com
129
- * github: [emiraydin][github]
130
- * twitter: @emiraydin
131
- [github]:http://github.com/emiraydin
132
-
133
-
134
- Indebted to [mhl][mhl] for writing the
135
- [guardian-for-kindle][guardian-for-kindle] MOBI generator in Python. kindlerb
136
- ported a bunch of ideas from that project over to Ruby.
137
-
138
- [mhl]:https://github.com/mhl
139
- [guardian-for-kindle]:https://github.com/mhl/guardian-for-kindle
1
+ # kindlerb
2
+
3
+ kindlerb is a Ruby Kindle periodical-format ebook generator. This tool was initially extracted from
4
+ [kindlefeeder.com][kf1]. [Kindlefodder][kf2] was also built on
5
+ top of kindlerb.
6
+
7
+ [kf1]:http://kindlefeeder.com
8
+ [kf2]:https://github.com/danchoi/kindlefodder
9
+
10
+ kindlerb converts a file tree of sections, articles, images, and metadata into
11
+ a MOBI periodical-formatted document for the Kindle. It is a wrapper around the
12
+ `kindlegen` program from Amazon that hides the details for templating OPF and NCX
13
+ files.
14
+
15
+ ## Requirements
16
+
17
+ * Ruby >= 2.0.0
18
+
19
+ ## Installation and Setup
20
+
21
+ Add `gem 'kindlerb', github: 'danchoi/kindlerb'` to your Gemfile then run
22
+ ```
23
+ bundle install
24
+ bundle binstubs kindlerb
25
+ ```
26
+ Then **cd** into your app root and then run the below command - this will install the required Kindlegen package:
27
+ `./bin/setupkindlerb`
28
+
29
+ You're good to go!
30
+
31
+ **OR**
32
+
33
+ run `gem install kindlerb`
34
+
35
+ Then **cd** into your app root and then run the below command - this will install the required Kindlegen package:
36
+ `setupkindlerb`
37
+
38
+ You're good to go!
39
+
40
+ ## How to use it
41
+
42
+ Require kindlerb in your project.
43
+
44
+ require 'kindlerb'
45
+
46
+ ### Kindlerb.run(target_dir, verbose, compression_method)
47
+
48
+ Only the first argument is mandatory, everything else will use default values if no arguments are provided.
49
+
50
+ **target_dir** = Put the directory that contains your ebook files
51
+
52
+ **verbose** = true or false. Default is false.
53
+
54
+ **compression_method** = 'c0' (no compression) OR 'c1' (standard DOC compression) OR 'c2' (Kindle huffdic compression). Default is 'c2'.
55
+
56
+ The output will be a mobi document.
57
+
58
+ **target_dir** should include the below files and structure:
59
+
60
+ _document.yml
61
+ sections/
62
+ 000/
63
+ _section.txt # contains section title
64
+ 000.html # an article
65
+ 001.html
66
+ 001/
67
+ _section.txt
68
+ 000.html
69
+ 001.html
70
+ 002.html
71
+
72
+ kindlerb will extract article titles from the `<title>` (in `<head>`) tag in
73
+ the *.html files .
74
+
75
+ The _document.yml is a YAML document. It should look like something like this:
76
+
77
+ ---
78
+ doc_uuid: kindlerb.21395-2011-12-19
79
+ title: my-ebook
80
+ author: my-ebook
81
+ publisher: me
82
+ subject: News
83
+ date: "2011-12-19"
84
+ masthead: /home/choi/Desktop/masthead.gif
85
+ cover: /home/choi/Desktop/cover.gif
86
+ mobi_outfile: my-ebook.mobi
87
+
88
+ kindlerb uses the the file tree and _document.yml to construct these additional
89
+ resource required by Amazon's `kindlegen` program:
90
+
91
+ * nav-contents.ncx
92
+ * contents.html
93
+ * kindlerb.opf
94
+
95
+ After that, kindlerb will exec the kindlegen program to generate your mobi
96
+ document. The filename the output document is specified by the 'mobi_outfile'
97
+ value in _document.yml.
98
+
99
+ ### Kindlerb.executable
100
+ Will return the full path to the Kindlegen executable file.
101
+
102
+ ### Kindlerb.download
103
+ This is called when you first install the gem and call `setupkindlerb` executable. It downloads the appropriate Kindlegen version for the host OS. There should be no need to call this after initial set up.
104
+
105
+ ## Images
106
+
107
+ kindlerb will incorporate images into the generated ebook by parsing all the
108
+ `src` attributes of all the `<img>` tags in your *.html files.
109
+
110
+ The `src` attributes must point to image files on the local filesystem. If the
111
+ paths are relative, they should be relative to the target file tree root.
112
+
113
+
114
+ ## Encoding
115
+
116
+ Make sure all your textual source files are encoded in UTF-8.
117
+
118
+
119
+ ## Authors
120
+
121
+ **Daniel Choi**
122
+ * email: dhchoi@gmail.com
123
+ * github: [danchoi][github]
124
+ * twitter: @danchoi
125
+ [github]:http://github.com/danchoi
126
+
127
+ **Emir Aydin**
128
+ * email: emir@emiraydin.com
129
+ * github: [emiraydin][github]
130
+ * twitter: @emiraydin
131
+ [github]:http://github.com/emiraydin
132
+
133
+
134
+ Indebted to [mhl][mhl] for writing the
135
+ [guardian-for-kindle][guardian-for-kindle] MOBI generator in Python. kindlerb
136
+ ported a bunch of ideas from that project over to Ruby.
137
+
138
+ [mhl]:https://github.com/mhl
139
+ [guardian-for-kindle]:https://github.com/mhl/guardian-for-kindle
data/Rakefile CHANGED
@@ -1,71 +1,71 @@
1
- require 'rake'
2
- require 'rake/testtask'
3
- require 'bundler'
4
- Bundler::GemHelper.install_tasks
5
-
6
- $LOAD_PATH.unshift File.join(File.dirname(__FILE__), 'lib')
7
-
8
- desc "release and build and push new website"
9
- task :push => [:release, :web]
10
-
11
- desc "Bumps version number up one and git commits"
12
- task :bump do
13
- basefile = "lib/vmail/version.rb"
14
- file = File.read(basefile)
15
- oldver = file[/VERSION = '(\d.\d.\d)'/, 1]
16
- newver_i = oldver.gsub(".", '').to_i + 1
17
- newver = ("%.3d" % newver_i).split(//).join('.')
18
- puts oldver
19
- puts newver
20
- puts "Bumping version: #{oldver} => #{newver}"
21
- newfile = file.gsub("VERSION = '#{oldver}'", "VERSION = '#{newver}'")
22
- File.open(basefile, 'w') {|f| f.write newfile}
23
- `git commit -am 'Bump'`
24
- end
25
-
26
-
27
- desc "build and push website"
28
- task :web => :build_webpage do
29
- puts "Building and pushing website"
30
- Dir.chdir "../project-webpages" do
31
- `scp out/vmail.html zoe2@instantwatcher.com:~/danielchoi.com/public/software/`
32
- `rsync -avz out/images-vmail zoe2@instantwatcher.com:~/danielchoi.com/public/software/`
33
- `rsync -avz out/stylesheets zoe2@instantwatcher.com:~/danielchoi.com/public/software/`
34
- `rsync -avz out/lightbox2 zoe2@instantwatcher.com:~/danielchoi.com/public/software/`
35
- end
36
- `open http://danielchoi.com/software/vmail.html`
37
- end
38
-
39
- desc "build webpage"
40
- task :build_webpage do
41
- `cp README.markdown ../project-webpages/src/vmail.README.markdown`
42
- `cp coverage.markdown ../project-webpages/src/vmail.coverage.markdown`
43
- Dir.chdir "../project-webpages" do
44
- puts `ruby gen.rb vmail #{Vmail::VERSION}`
45
- #`open out/vmail.html`
46
- end
47
- end
48
-
49
-
50
- desc "git push and rake release bumped version"
51
- task :bumped do
52
- puts `git push && rake release`
53
- Rake::Task["web"].execute
54
- end
55
-
56
- desc "Run tests"
57
- task :test do
58
- $:.unshift File.expand_path("test")
59
- require 'test_helper'
60
- Dir.chdir("test") do
61
- Dir['*_test.rb'].each do |x|
62
- puts "requiring #{x}"
63
- require x
64
- end
65
- end
66
-
67
- MiniTest::Unit.autorun
68
- end
69
-
70
- task :default => :test
71
-
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+ require 'bundler'
4
+ Bundler::GemHelper.install_tasks
5
+
6
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), 'lib')
7
+
8
+ desc "release and build and push new website"
9
+ task :push => [:release, :web]
10
+
11
+ desc "Bumps version number up one and git commits"
12
+ task :bump do
13
+ basefile = "lib/vmail/version.rb"
14
+ file = File.read(basefile)
15
+ oldver = file[/VERSION = '(\d.\d.\d)'/, 1]
16
+ newver_i = oldver.gsub(".", '').to_i + 1
17
+ newver = ("%.3d" % newver_i).split(//).join('.')
18
+ puts oldver
19
+ puts newver
20
+ puts "Bumping version: #{oldver} => #{newver}"
21
+ newfile = file.gsub("VERSION = '#{oldver}'", "VERSION = '#{newver}'")
22
+ File.open(basefile, 'w') {|f| f.write newfile}
23
+ `git commit -am 'Bump'`
24
+ end
25
+
26
+
27
+ desc "build and push website"
28
+ task :web => :build_webpage do
29
+ puts "Building and pushing website"
30
+ Dir.chdir "../project-webpages" do
31
+ `scp out/vmail.html zoe2@instantwatcher.com:~/danielchoi.com/public/software/`
32
+ `rsync -avz out/images-vmail zoe2@instantwatcher.com:~/danielchoi.com/public/software/`
33
+ `rsync -avz out/stylesheets zoe2@instantwatcher.com:~/danielchoi.com/public/software/`
34
+ `rsync -avz out/lightbox2 zoe2@instantwatcher.com:~/danielchoi.com/public/software/`
35
+ end
36
+ `open http://danielchoi.com/software/vmail.html`
37
+ end
38
+
39
+ desc "build webpage"
40
+ task :build_webpage do
41
+ `cp README.markdown ../project-webpages/src/vmail.README.markdown`
42
+ `cp coverage.markdown ../project-webpages/src/vmail.coverage.markdown`
43
+ Dir.chdir "../project-webpages" do
44
+ puts `ruby gen.rb vmail #{Vmail::VERSION}`
45
+ #`open out/vmail.html`
46
+ end
47
+ end
48
+
49
+
50
+ desc "git push and rake release bumped version"
51
+ task :bumped do
52
+ puts `git push && rake release`
53
+ Rake::Task["web"].execute
54
+ end
55
+
56
+ desc "Run tests"
57
+ task :test do
58
+ $:.unshift File.expand_path("test")
59
+ require 'test_helper'
60
+ Dir.chdir("test") do
61
+ Dir['*_test.rb'].each do |x|
62
+ puts "requiring #{x}"
63
+ require x
64
+ end
65
+ end
66
+
67
+ MiniTest::Unit.autorun
68
+ end
69
+
70
+ task :default => :test
71
+