softcover 0.7.4 → 0.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bb3a8ac867feab04d85e376c1c07f1860b88cfc8
4
- data.tar.gz: 544d163967fad019b93260917f56624b32514993
3
+ metadata.gz: 642f6e9fa8e34595d1d5811f2d843b072b78db25
4
+ data.tar.gz: 6d62ef63616c5fc96aaae8510a7460a2ab9f758c
5
5
  SHA512:
6
- metadata.gz: 9a92960c2fa9fdbcd50c4ae68ab7b9454a7c0660dda62312f8d31e1c3096cd350085bc409dc17b5e92ee955238bd62bf2f3a177d7bf468ceaa97ea0ab9f908fa
7
- data.tar.gz: 2cde2515a0144fc39b3995bda93e151db02b4641ae52705183adb8244724fffc9905cb4a64c98c6ac9f4956e45f8f906cb7fefe9147d35af99749a38964ec7b1
6
+ metadata.gz: ce330e42045af1b357e2816dcacb521905b6b698113eb482e5cbbb81464f258c12e29e605c76e2d0ebf9350aa330968db11522055d8ec30c88a6a1caefb4657f
7
+ data.tar.gz: dd2401d92cff7c84c7468c0ce7801adc001ede05815dd43fbfc0835572a3b738531a7a7bcefa196cf753a7b64e5408d1584857d6bbc4987163d0434e782e9d92
File without changes
@@ -246,7 +246,7 @@ class Softcover::BookManifest < OpenStruct
246
246
  def source_files
247
247
  self.class.find_book_root!
248
248
  md_tex = /.*(?:\.md|\.tex)/
249
- File.readlines(TXT_PATH).select { |path| path =~ md_tex }.map(&:strip)
249
+ book_txt_lines.select { |path| path =~ md_tex }.map(&:strip)
250
250
  end
251
251
 
252
252
  def basenames
@@ -24,20 +24,6 @@ module Softcover
24
24
  if options[:debug]
25
25
  execute "#{xelatex} #{book_filename}"
26
26
  return # only gets called in test env
27
- elsif options[:'find-overfull']
28
- tmp_name = book_filename.sub('.tex', '.tmp.tex')
29
- # The way we do things, code listings show up as "Overfull", but
30
- # they're actually fine, so filter them out.
31
- filter_out_listings = "grep -v 3.22281pt"
32
- # Because each chapter typically lives in a separate file, it's
33
- # hard to correlate Overfull line numbers with lines in the source,
34
- # so we use grep's -A flag to provide some context instead. Authors
35
- # can then use their text editors' search function to find the
36
- # corresponding place in the text.
37
- show_context = 'grep -A 3 "Overfull \hbox"'
38
- cmd = "xelatex #{tmp_name} | #{filter_out_listings} | #{show_context}"
39
- silence_stream(STDERR) { execute cmd }
40
- return
41
27
  end
42
28
 
43
29
  polytex_filenames = manifest.pdf_chapter_filenames << book_filename
@@ -56,6 +42,22 @@ module Softcover
56
42
  write_pygments_file(:latex)
57
43
  copy_polytexnic_sty
58
44
 
45
+ if options[:'find-overfull']
46
+ tmp_name = book_filename.sub('.tex', '.tmp.tex')
47
+ # The way we do things, code listings show up as "Overfull", but
48
+ # they're actually fine, so filter them out.
49
+ filter_out_listings = "grep -v 3.22281pt"
50
+ # Because each chapter typically lives in a separate file, it's
51
+ # hard to correlate Overfull line numbers with lines in the source,
52
+ # so we use grep's -A flag to provide some context instead. Authors
53
+ # can then use their text editors' search function to find the
54
+ # corresponding place in the text.
55
+ show_context = 'grep -A 3 "Overfull \\\\\\\\hbox"'
56
+ cmd = "xelatex #{tmp_name} | #{filter_out_listings} | #{show_context}"
57
+ silence_stream(STDERR) { execute cmd }
58
+ return
59
+ end
60
+
59
61
  tmp_filename = Softcover::Utils.tmpify(manifest, book_filename)
60
62
  build_pdf = "#{xelatex} #{tmp_filename}"
61
63
  # Run the command twice (to guarantee up-to-date cross-references)
@@ -12,7 +12,7 @@ module Softcover
12
12
 
13
13
  sanitize_options = {
14
14
  elements: %w{div span p a ul ol li h1 h2 h3 h4
15
- pre em sup table tbody thead tr td img code},
15
+ pre em sup table tbody thead tr td img code strong},
16
16
  remove_contents: %w{script},
17
17
  attributes: {
18
18
  'div' => %w{id class data-tralics-id data-number data-chapter},
@@ -28,7 +28,8 @@ module Softcover
28
28
  'h4' => %w{id class},
29
29
  'img' => %w{id class src alt},
30
30
  'em' => %w{id class},
31
- 'code' => %w{id class}
31
+ 'code' => %w{id class},
32
+ 'strong' => %w{id class}
32
33
  },
33
34
  protocols: {
34
35
  'a' => {'href' => [:relative, 'http', 'https', 'mailto']},
@@ -1,7 +1,7 @@
1
1
  # A chapter
2
2
  \label{cha:a_chapter}
3
3
 
4
- This is the first paragraph of the Softcover Markdown template. It shows how to write a document in Markdown, a lightweight markup language, augmented with the [kramdown](http://kramdown.rubyforge.org/) converter and some custom extensions, including support for embedded \PolyTeX, a subset of the powerful \LaTeX\ typesetting system. For more information, see [*The Softcover Book*](http://manual.softcover.io/) (**link not live yet**). To learn how to easily publish (and optionally sell) documents produced with Softcover, visit [Softcover.io](http://softcover.io/). Softcover is currently in private beta; go to [Softcover.io](http://softcover.io/) to get an invitation.
4
+ This is the first paragraph of the Softcover Markdown template. It shows how to write a document in Markdown, a lightweight markup language, augmented with the [kramdown](http://kramdown.rubyforge.org/) converter and some custom extensions, including support for embedded \PolyTeX, a subset of the powerful \LaTeX\ typesetting system. For more information, see [*The Softcover Book*](http://manual.softcover.io/book). To learn how to easily publish (and optionally sell) documents produced with Softcover, visit [Softcover.io](http://softcover.io/). Softcover is currently in private beta; go to [Softcover.io](http://softcover.io/) to get an invitation.
5
5
 
6
6
  This is the *second* paragraph, showing how to emphasize text.[^sample-footnote] You can also make text **bold** or _emphasize a second way_.
7
7
 
@@ -115,7 +115,7 @@ Commands:
115
115
  softcover server # Run local server
116
116
  ```
117
117
 
118
- For additional help on a given command, run `softcover help <command>`:
118
+ \noindent You can run `softcover help <command>` to get additional help on a given command:
119
119
 
120
120
  ```console
121
121
  $ softcover help build
@@ -1,7 +1,7 @@
1
1
  \chapter{A chapter}
2
2
  \label{cha:a_chapter}
3
3
 
4
- This is the first paragraph of the Softcover template. It shows how to write a document in \PolyTeX, a subset of the \LaTeX\ typesetting language optimized for ebooks. For more information, see \href{http://manual.softcover.org/book}{\emph{The Softcover Book}} and the \href{http://example.com}{\PolyTeX\ source of the book} (\textbf{links not live yet}). To learn how to easily publish (and optionally sell) documents produced with Softcover, visit \href{http://softcover.io/}{Softcover.io}. Softcover is currently in private beta; go to \href{http://softcover.io/}{Softcover.io} to get an invitation.
4
+ This is the first paragraph of the Softcover template. It shows how to write a document in \PolyTeX, a subset of the \LaTeX\ typesetting language optimized for ebooks. For more information, see \href{http://manual.softcover.org/book}{\emph{The Softcover Book}} and the \href{http://example.com}{\PolyTeX\ source of the book}. To learn how to easily publish (and optionally sell) documents produced with Softcover, visit \href{http://softcover.io/}{Softcover.io}. Softcover is currently in private beta; go to \href{http://softcover.io/}{Softcover.io} to get an invitation.
5
5
 
6
6
  This is the \emph{second} paragraph, showing how to emphasize text.\footnote{This is a footnote. It is numbered automatically.} You can also make text \textbf{bold} or \textit{italicized} (which looks the same as emphasized text).
7
7
 
@@ -165,7 +165,8 @@ Commands:
165
165
  softcover server # Run local server
166
166
  \end{code}
167
167
 
168
- For additional help on a given command, run \kode{softcoverhelp <command>}:
168
+ \noindent You can run \kode{softcover help <command>} to get additional help on a given command:
169
+
169
170
  %= lang:console
170
171
  \begin{code}
171
172
  $ softcoverhelp build
@@ -1,7 +1,7 @@
1
1
  /* Styles specific to EPUB books */
2
2
 
3
3
  body {
4
- width: 34.5em;
4
+ width: auto;
5
5
  margin-left: 0.5em;
6
6
  }
7
7
 
@@ -335,7 +335,6 @@ body #book {
335
335
  #book .aside {
336
336
  border: 1px solid #999;
337
337
  padding: 0.5em;
338
- padding-right: 1.5em;
339
338
  background: #eee;
340
339
  width: 100%;
341
340
  }
@@ -74,22 +74,25 @@ module Softcover::Utils
74
74
  "#{manifest.filename}.tex"
75
75
  end
76
76
 
77
- # Returns the lines of Book.txt as an array.
77
+ # Returns the lines of Book.txt as an array, removing any commented-out lines.
78
78
  def book_txt_lines
79
+ comment = /^\s*#.*$/
80
+ raw_lines.reject { |line| line.match(comment) }
81
+ end
82
+
83
+ # Returns all the lines in Book.txt.
84
+ def raw_lines
79
85
  File.readlines(Softcover::BookManifest::TXT_PATH)
80
86
  end
81
87
 
82
88
  # Returns the content for the master LaTeX file.
83
89
  def master_content(manifest)
84
- comment = /^\s*#.*$/
85
90
  front_or_mainmatter = /(.*):\s*$/
86
91
  source_file = /(.*)(?:\.md|\.tex)\s*$/
87
92
 
88
93
  tex_file = [master_latex_header(manifest)]
89
94
  book_txt_lines.each do |line|
90
- if line.match(comment) # commented-out line
91
- next
92
- elsif line.match(source_file)
95
+ if line.match(source_file)
93
96
  tex_file << "\\include{#{manifest.polytex_dir}/#{$1}}"
94
97
  elsif line.match(front_or_mainmatter) # frontmatter or mainmatter
95
98
  tex_file << "\\#{$1}"
@@ -1,3 +1,3 @@
1
1
  module Softcover
2
- VERSION = "0.7.4"
2
+ VERSION = "0.7.5"
3
3
  end
@@ -49,7 +49,6 @@ describe Softcover::BookManifest do
49
49
  end
50
50
  end
51
51
 
52
-
53
52
  context "with mixed Markdown & PolyTeX files" do
54
53
  before do
55
54
  manifest.stub(:source_files).and_return(['foo.md', 'bar.tex'])
@@ -139,12 +139,12 @@ describe Softcover::Builders::Html do
139
139
  end
140
140
 
141
141
  describe "commented-out lines of Book.txt" do
142
- let(:lines) { ['chapters/foo.md', '# chapters/bar.md'] }
142
+ let(:lines) { ['foo.md', '# bar.md'] }
143
143
  let(:content) { builder.master_content(builder.manifest) }
144
144
  before { builder.stub(:book_txt_lines).and_return(lines) }
145
145
  it "should be ignored" do
146
- expect(content).to include 'chapters/foo'
147
- expect(content).not_to include 'chapters/bar'
146
+ expect(content).to include 'generated_polytex/foo'
147
+ expect(content).not_to include 'generated_polytex/bar'
148
148
  end
149
149
  end
150
150
  end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe Softcover::Utils do
4
+ context "book_txt_lines" do
5
+ before do
6
+ Softcover::Utils.stub(:raw_lines).and_return(['foo.md', '# bar.tex'])
7
+ end
8
+ subject { Softcover::Utils.book_txt_lines }
9
+ it { should include 'foo.md' }
10
+ it { should_not include 'bar.tex' }
11
+ end
12
+ end
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: 0.7.4
4
+ version: 0.7.5
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: 2013-12-05 00:00:00.000000000 Z
12
+ date: 2013-12-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: polytexnic
@@ -373,6 +373,7 @@ files:
373
373
  - .pull_requests/1385862948
374
374
  - .pull_requests/1386099285
375
375
  - .pull_requests/1386115582
376
+ - .pull_requests/1386448492
376
377
  - .rspec
377
378
  - Gemfile
378
379
  - LICENSE.txt
@@ -1007,6 +1008,7 @@ files:
1007
1008
  - spec/sanitizer_spec.rb
1008
1009
  - spec/spec_helper.rb
1009
1010
  - spec/support/exist_matcher.rb
1011
+ - spec/utils_spec.rb
1010
1012
  - spec/webmock_helpers.rb
1011
1013
  - tasks/run_specs.rake
1012
1014
  homepage: http://manual.softcover.io/
@@ -1056,4 +1058,5 @@ test_files:
1056
1058
  - spec/sanitizer_spec.rb
1057
1059
  - spec/spec_helper.rb
1058
1060
  - spec/support/exist_matcher.rb
1061
+ - spec/utils_spec.rb
1059
1062
  - spec/webmock_helpers.rb