softcover 0.7.4 → 0.7.5

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: 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