softcover 1.1.6 → 1.1.7

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: 6e7ce9f41281c15fc962d8293f9a901c1eb35884
4
- data.tar.gz: ff5a37c76b189d32a884b57384fb41b132eba793
3
+ metadata.gz: 5d457ce733f778fdeb848d5f889b1686f11a09ff
4
+ data.tar.gz: b9d1886ffdde15e50488dd72e1b7e71c4a8d4ed1
5
5
  SHA512:
6
- metadata.gz: f20bf7b1e862062896aa29477251a341c37c012a2dff95b5de36fd48cac204a795f090be0b24e4ed0a7dca9e1f11dcdeb9f8402cf3ee3b2de0377e2111102377
7
- data.tar.gz: d5b92a4bb6f396ef5055861e605649b140f21299452b3ab84e6c92692c4ad926cbc87903b153ccd2d967580b1f19c219e60dc9a67b2b016be4eab13cf821a52b
6
+ metadata.gz: b4692af5acbc5ce82defe290f8ce7e54d86505ba0c88db0c7bca3ad09808c38c4a03310e2a236c8362192dc8bce3e87d4065298602ccb732021f3c4d1a5eb112
7
+ data.tar.gz: e1417a3e4130571624a9150968d128a57bd53647f2dabdf8d266e9206cbd9a744e840e2c9d2421141e305841ca9c458a06a7b04da723683d41543a546272bee5
@@ -14,6 +14,7 @@ body #book {
14
14
  font-size: 230%;
15
15
  border-top: 2px solid #333;
16
16
  padding-top: 1em;
17
+ text-align: left;
17
18
  }
18
19
 
19
20
  #book h2 {
@@ -326,6 +327,15 @@ body #book {
326
327
  font-weight: bold;
327
328
  }
328
329
 
330
+ #book ul.footnotes li {
331
+ line-height: 1.4;
332
+ margin-bottom: 1em;
333
+ }
334
+
335
+ #book ul.footnotes li p {
336
+ line-height: 1.4;
337
+ }
338
+
329
339
  #book a.arrow {
330
340
  text-decoration: none;
331
341
  }
@@ -1,5 +1,4 @@
1
1
  module Softcover
2
-
3
2
  module EpubUtils
4
3
 
5
4
  # Returns the name of the cover file.
@@ -17,8 +16,13 @@ module Softcover
17
16
  return false
18
17
  end
19
18
 
20
- def cover?
21
- cover_img
19
+ # Returns true when producing a cover.
20
+ # We include a cover when not producing an Amazon-specific book
21
+ # as long as there's a cover image. (When uploading a book to
22
+ # Amazon KDP, the cover gets uploaded separately, so the MOBI file itself
23
+ # should have not have a cover.)
24
+ def cover?(options={})
25
+ !options[:amazon] && cover_img
22
26
  end
23
27
 
24
28
  def cover_img_path
@@ -141,7 +145,7 @@ module Softcover
141
145
  write_nav
142
146
  copy_image_files
143
147
  write_html(options)
144
- write_contents
148
+ write_contents(options)
145
149
  create_style_files(options)
146
150
  make_epub(options)
147
151
  move_epub
@@ -194,8 +198,8 @@ module Softcover
194
198
 
195
199
  # Writes the content.opf file.
196
200
  # This is required by the EPUB standard.
197
- def write_contents
198
- File.write(path('epub/OEBPS/content.opf'), content_opf)
201
+ def write_contents(options={})
202
+ File.write(path('epub/OEBPS/content.opf'), content_opf(options))
199
203
  end
200
204
 
201
205
  # Returns the chapters to write.
@@ -211,7 +215,7 @@ module Softcover
211
215
  mkdir images_dir
212
216
  mkdir texmath_dir
213
217
 
214
- File.write(path('epub/OEBPS/cover.html'), cover_page) if cover?
218
+ File.write(path('epub/OEBPS/cover.html'), cover_page) if cover?(options)
215
219
 
216
220
  pngs = []
217
221
  chapters.each_with_index do |chapter, i|
@@ -464,7 +468,7 @@ module Softcover
464
468
  end
465
469
 
466
470
  # Returns the content configuration file.
467
- def content_opf
471
+ def content_opf(options={})
468
472
  man_ch = chapters.map do |chapter|
469
473
  %(<item id="#{chapter.slug}" href="#{chapter.fragment_name}" media-type="application/xhtml+xml"/>)
470
474
  end
@@ -486,7 +490,7 @@ module Softcover
486
490
  %(<item id="#{id}" href="#{href}" media-type="image/#{ext}"/>)
487
491
  end
488
492
  content_opf_template(manifest.title, manifest.copyright,
489
- manifest.author, manifest.uuid, cover_id,
493
+ manifest.author, manifest.uuid, cover_id(options),
490
494
  toc_ch, man_ch, images)
491
495
  end
492
496
 
@@ -506,8 +510,8 @@ module Softcover
506
510
  )
507
511
  end
508
512
 
509
- def cover_id
510
- cover? ? "img-#{cover_img.sub('.', '-')}" : nil
513
+ def cover_id(options)
514
+ cover?(options) ? "img-#{cover_img.sub('.', '-')}" : nil
511
515
  end
512
516
 
513
517
  # Returns the Table of Contents for the spine.
@@ -24,7 +24,7 @@ module Softcover
24
24
  # Returns the command for making a MOBI, based on the options.
25
25
  def mobi_command(filename, options={})
26
26
  silent = options[:silent] || Softcover.test?
27
- if options[:kindlegen]
27
+ if options[:kindlegen] || options[:amazon]
28
28
  cmd = "#{kindlegen} ebooks/#{filename}.epub"
29
29
  else
30
30
  cmd = "#{calibre} ebooks/#{filename}.epub ebooks/#{filename}.mobi" +
@@ -3,6 +3,10 @@ module Softcover
3
3
  class Preview < Builder
4
4
 
5
5
  def build!
6
+ if article?
7
+ $stderr.puts "Previews not supported for articles"
8
+ exit(1)
9
+ end
6
10
  # Recall that MOBI generation makes an EPUB as a side-effect.
7
11
  Softcover::Builders::Mobi.new.build!(preview: true)
8
12
  Softcover::Builders::Pdf.new.build!(preview: true)
data/lib/softcover/cli.rb CHANGED
@@ -48,6 +48,8 @@ module Softcover
48
48
  method_option :kindlegen, aliases: '-k',
49
49
  desc: "Use KindleGen to build the MOBI",
50
50
  type: :boolean
51
+ method_option :amazon, aliases: '-a',
52
+ desc: "Build for Amazon KDP", type: :boolean
51
53
  end
52
54
  method_option :quiet, aliases: '-q',
53
55
  desc: "Quiet output", type: :boolean
@@ -5,7 +5,7 @@ module Softcover
5
5
  extend self
6
6
 
7
7
  # Deploy a book by building and publishing it.
8
- # The deploy steps can be customized using `.poly-publish`
8
+ # The deploy steps can be customized using `.softcover-publish`
9
9
  # in the book project's home directory.
10
10
  def deploy!
11
11
  if File.exist?('.softcover-deploy') && !custom_commands.empty?
@@ -17,8 +17,12 @@ module Softcover
17
17
 
18
18
  # Returns the default commands.
19
19
  def default_commands
20
- commands(['softcover build:all', 'softcover build:preview',
21
- 'softcover publish'])
20
+ if article?
21
+ commands(['softcover build:all', 'softcover publish'])
22
+ else
23
+ commands(['softcover build:all', 'softcover build:preview',
24
+ 'softcover publish'])
25
+ end
22
26
  end
23
27
 
24
28
  # Returns custom commands (if any).
@@ -1,3 +1,3 @@
1
1
  module Softcover
2
- VERSION = "1.1.6"
2
+ VERSION = "1.1.7"
3
3
  end
data/softcover.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |gem|
18
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
19
  gem.require_paths = ["lib"]
20
20
 
21
- gem.add_dependency 'polytexnic', '~> 1.1.3'
21
+ gem.add_dependency 'polytexnic', '~> 1.1.6'
22
22
  gem.add_dependency 'msgpack', '~> 0.4.2'
23
23
  gem.add_dependency 'nokogiri', '~> 1.6.0'
24
24
  gem.add_dependency 'thor', '~> 0.18.1'
@@ -291,4 +291,9 @@ describe "article validation" do
291
291
  output = `softcover epub:validate`
292
292
  expect(output).to match(/No errors or warnings/)
293
293
  end
294
+
295
+ it "should description" do
296
+ commands = Softcover::Commands::Deployment.default_commands
297
+ expect(commands).not_to include('preview')
298
+ end
294
299
  end
@@ -46,6 +46,15 @@ describe Softcover::Builders::Mobi do
46
46
  end
47
47
  end
48
48
 
49
+ context "amazon" do
50
+ let(:command) do
51
+ @builder.mobi_command(@builder.mobi_filename, amazon: true)
52
+ end
53
+ it "should use Amazon.com's kindlegen" do
54
+ expect(command).to include 'kindlegen'
55
+ end
56
+ end
57
+
49
58
  context "preview" do
50
59
  let(:filename) do
51
60
  @builder.mobi_filename(preview: true)
data/spec/cli_spec.rb CHANGED
@@ -33,6 +33,20 @@ describe Softcover::CLI do
33
33
  it { should include 'f, [--find-overfull]' }
34
34
  end
35
35
 
36
+ context "softcover build:epub options" do
37
+ subject { `softcover help build:epub` }
38
+ it { should include '-q, [--quiet]' }
39
+ it { should include '-s, [--silent]' }
40
+ end
41
+
42
+ context "softcover build:mobi options" do
43
+ subject { `softcover help build:mobi` }
44
+ it { should include '-q, [--quiet]' }
45
+ it { should include '-s, [--silent]' }
46
+ it { should include '-k, [--kindlegen]' }
47
+ it { should include '-a, [--amazon]' }
48
+ end
49
+
36
50
  context "softcover new options" do
37
51
  subject { `softcover help new` }
38
52
  it { should include '-p, [--polytex]' }
@@ -3,6 +3,7 @@ require 'spec_helper'
3
3
  describe Softcover::Commands::Deployment do
4
4
 
5
5
  describe "default commands" do
6
+ before { Softcover::Commands::Deployment.stub(:article?).and_return(false) }
6
7
  subject { Softcover::Commands::Deployment.default_commands }
7
8
 
8
9
  it { should match /softcover build:all/ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: softcover
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.6
4
+ version: 1.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Hartl
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-06-25 00:00:00.000000000 Z
12
+ date: 2015-07-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: polytexnic
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: 1.1.3
20
+ version: 1.1.6
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: 1.1.3
27
+ version: 1.1.6
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: msgpack
30
30
  requirement: !ruby/object:Gem::Requirement