review 3.2.0 → 4.0.0
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 +4 -4
- data/.rubocop.yml +26 -4
- data/.travis.yml +1 -1
- data/NEWS.ja.md +97 -1
- data/NEWS.md +97 -1
- data/bin/review-catalog-converter +1 -1
- data/bin/review-check +5 -5
- data/bin/review-checkdep +1 -1
- data/bin/review-compile +5 -5
- data/bin/review-idgxmlmaker +16 -0
- data/bin/review-index +7 -7
- data/bin/review-preproc +9 -9
- data/bin/review-validate +2 -2
- data/bin/review-vol +5 -5
- data/doc/config.yml.sample +14 -6
- data/doc/config.yml.sample-simple +1 -1
- data/doc/format.ja.md +15 -5
- data/doc/format.md +30 -18
- data/doc/pdfmaker.ja.md +1 -1
- data/doc/pdfmaker.md +1 -1
- data/lib/review/book.rb +1 -1
- data/lib/review/book/base.rb +23 -63
- data/lib/review/book/chapter.rb +18 -3
- data/lib/review/book/compilable.rb +5 -0
- data/lib/review/book/index.rb +26 -65
- data/lib/review/book/index/item.rb +40 -0
- data/lib/review/book/part.rb +22 -2
- data/lib/review/builder.rb +60 -40
- data/lib/review/catalog.rb +12 -15
- data/lib/review/compiler.rb +68 -36
- data/lib/review/configure.rb +10 -7
- data/lib/review/epubmaker.rb +5 -2
- data/lib/review/htmlbuilder.rb +24 -71
- data/lib/review/htmlutils.rb +2 -3
- data/lib/review/i18n.rb +2 -2
- data/lib/review/idgxmlbuilder.rb +101 -55
- data/lib/review/idgxmlmaker.rb +184 -0
- data/lib/review/init-web/finish.html +10 -0
- data/lib/review/init-web/index.html +190 -0
- data/lib/review/init-web/review-layout-design.js +691 -0
- data/lib/review/init.rb +110 -26
- data/lib/review/latexbuilder.rb +76 -54
- data/lib/review/lineinput.rb +1 -1
- data/lib/review/logger.rb +4 -8
- data/lib/review/makerhelper.rb +6 -4
- data/lib/review/markdownbuilder.rb +25 -38
- data/lib/review/md2inaobuilder.rb +3 -5
- data/lib/review/pdfmaker.rb +15 -15
- data/lib/review/plaintextbuilder.rb +67 -76
- data/lib/review/preprocessor.rb +13 -13
- data/lib/review/rstbuilder.rb +31 -31
- data/lib/review/textmaker.rb +13 -3
- data/lib/review/textutils.rb +77 -2
- data/lib/review/tocparser.rb +17 -17
- data/lib/review/tocprinter.rb +8 -8
- data/lib/review/topbuilder.rb +76 -57
- data/lib/review/update.rb +16 -16
- data/lib/review/version.rb +1 -1
- data/lib/review/webmaker.rb +2 -2
- data/lib/review/yamlloader.rb +3 -0
- data/review.gemspec +4 -3
- data/samples/sample-book/README.md +7 -2
- data/samples/sample-book/src/.gitignore +153 -0
- data/samples/sample-book/src/config-jlreq.yml +6 -0
- data/samples/sample-book/src/lib/tasks/review.rake +20 -9
- data/samples/sample-book/src/lib/tasks/z01_copy_sty.rake +14 -8
- data/samples/syntax-book/ch03.re +3 -6
- data/samples/syntax-book/config-jlreq.yml +5 -0
- data/samples/syntax-book/lib/tasks/review.rake +7 -7
- data/samples/syntax-book/lib/tasks/z01_copy_sty.rake +14 -8
- data/templates/latex/config.erb +6 -0
- data/templates/latex/layout.tex.erb +1 -0
- data/templates/latex/review-jlreq/review-base.sty +93 -31
- data/templates/latex/review-jlreq/review-jlreq.cls +6 -0
- data/templates/latex/review-jlreq/review-style.sty +3 -0
- data/templates/latex/review-jsbook/README.md +39 -0
- data/templates/latex/review-jsbook/review-base.sty +65 -10
- data/templates/latex/review-jsbook/review-jsbook.cls +4 -0
- data/templates/latex/review-jsbook/review-style.sty +4 -1
- data/test/assets/test_template.tex +11 -3
- data/test/assets/test_template_backmatter.tex +11 -3
- data/test/test_book.rb +65 -19
- data/test/test_catalog.rb +18 -42
- data/test/test_catalog_converter_cmd.rb +1 -1
- data/test/test_epubmaker_cmd.rb +2 -2
- data/test/test_helper.rb +1 -1
- data/test/test_htmlbuilder.rb +144 -55
- data/test/test_i18n.rb +25 -25
- data/test/test_idgxmlbuilder.rb +60 -18
- data/test/test_image_finder.rb +6 -6
- data/test/test_latexbuilder.rb +128 -24
- data/test/test_latexbuilder_v2.rb +23 -23
- data/test/test_logger.rb +14 -1
- data/test/test_makerhelper.rb +3 -3
- data/test/test_markdownbuilder.rb +45 -4
- data/test/test_md2inaobuilder.rb +12 -2
- data/test/test_pdfmaker.rb +1 -1
- data/test/test_pdfmaker_cmd.rb +1 -1
- data/test/test_plaintextbuilder.rb +31 -6
- data/test/test_rstbuilder.rb +33 -4
- data/test/test_textutils.rb +109 -2
- data/test/test_topbuilder.rb +35 -7
- data/test/test_update.rb +17 -8
- data/test/test_yamlloader.rb +13 -0
- metadata +26 -2
data/test/test_topbuilder.rb
CHANGED
|
@@ -177,11 +177,19 @@ EOS
|
|
|
177
177
|
def test_paragraph
|
|
178
178
|
actual = compile_block("foo\nbar\n")
|
|
179
179
|
assert_equal %Q(foobar\n), actual
|
|
180
|
+
|
|
181
|
+
@book.config['join_lines_by_lang'] = true
|
|
182
|
+
actual = compile_block("foo\nbar\n")
|
|
183
|
+
assert_equal %Q(foo bar\n), actual
|
|
180
184
|
end
|
|
181
185
|
|
|
182
186
|
def test_tabbed_paragraph
|
|
183
187
|
actual = compile_block("\tfoo\nbar\n")
|
|
184
188
|
assert_equal %Q(\tfoobar\n), actual
|
|
189
|
+
|
|
190
|
+
@book.config['join_lines_by_lang'] = true
|
|
191
|
+
actual = compile_block("\tfoo\nbar\n")
|
|
192
|
+
assert_equal %Q(\tfoo bar\n), actual
|
|
185
193
|
end
|
|
186
194
|
|
|
187
195
|
def test_flushright
|
|
@@ -192,6 +200,17 @@ foobar
|
|
|
192
200
|
buz
|
|
193
201
|
◆→終了:右寄せ←◆
|
|
194
202
|
|
|
203
|
+
EOS
|
|
204
|
+
assert_equal expected, actual
|
|
205
|
+
|
|
206
|
+
@book.config['join_lines_by_lang'] = true
|
|
207
|
+
actual = compile_block("//flushright{\nfoo\nbar\n\nbuz\n//}\n")
|
|
208
|
+
expected = <<-EOS
|
|
209
|
+
◆→開始:右寄せ←◆
|
|
210
|
+
foo bar
|
|
211
|
+
buz
|
|
212
|
+
◆→終了:右寄せ←◆
|
|
213
|
+
|
|
195
214
|
EOS
|
|
196
215
|
assert_equal expected, actual
|
|
197
216
|
end
|
|
@@ -207,6 +226,15 @@ EOS
|
|
|
207
226
|
◆→DTP連絡:次の1行インデントなし←◆
|
|
208
227
|
foobar
|
|
209
228
|
foo2bar2
|
|
229
|
+
EOS
|
|
230
|
+
assert_equal expected, actual
|
|
231
|
+
|
|
232
|
+
@book.config['join_lines_by_lang'] = true
|
|
233
|
+
actual = compile_block("//noindent\nfoo\nbar\n\nfoo2\nbar2\n")
|
|
234
|
+
expected = <<-EOS
|
|
235
|
+
◆→DTP連絡:次の1行インデントなし←◆
|
|
236
|
+
foo bar
|
|
237
|
+
foo2 bar2
|
|
210
238
|
EOS
|
|
211
239
|
assert_equal expected, actual
|
|
212
240
|
end
|
|
@@ -226,7 +254,7 @@ EOS
|
|
|
226
254
|
|
|
227
255
|
def test_list
|
|
228
256
|
def @chapter.list(_id)
|
|
229
|
-
Book::
|
|
257
|
+
Book::Index::Item.new('test', 1)
|
|
230
258
|
end
|
|
231
259
|
actual = compile_block("//list[samplelist][this is @<b>{test}<&>_]{\nfoo\nbar\n//}\n")
|
|
232
260
|
expected = <<-EOS
|
|
@@ -243,7 +271,7 @@ EOS
|
|
|
243
271
|
|
|
244
272
|
def test_listnum
|
|
245
273
|
def @chapter.list(_id)
|
|
246
|
-
Book::
|
|
274
|
+
Book::Index::Item.new('test', 1)
|
|
247
275
|
end
|
|
248
276
|
actual = compile_block("//listnum[test][this is @<b>{test}<&>_]{\nfoo\nbar\n//}\n")
|
|
249
277
|
expected = <<-EOS
|
|
@@ -373,7 +401,7 @@ EOS
|
|
|
373
401
|
|
|
374
402
|
def test_bib
|
|
375
403
|
def @chapter.bibpaper(_id)
|
|
376
|
-
Book::
|
|
404
|
+
Book::Index::Item.new('samplebib', 1, 'sample bib')
|
|
377
405
|
end
|
|
378
406
|
|
|
379
407
|
assert_equal '[1]', compile_inline('@<bib>{samplebib}')
|
|
@@ -413,7 +441,7 @@ EOS
|
|
|
413
441
|
|
|
414
442
|
def test_inline_table
|
|
415
443
|
def @chapter.table(_id)
|
|
416
|
-
Book::
|
|
444
|
+
Book::Index::Item.new('sampletable', 1)
|
|
417
445
|
end
|
|
418
446
|
actual = compile_block("@<table>{sampletest}\n")
|
|
419
447
|
assert_equal "表1.1\n", actual
|
|
@@ -562,7 +590,7 @@ EOS
|
|
|
562
590
|
|
|
563
591
|
def test_image
|
|
564
592
|
def @chapter.image(_id)
|
|
565
|
-
item = Book::
|
|
593
|
+
item = Book::Index::Item.new('sampleimg', 1)
|
|
566
594
|
item.instance_eval { @path = './images/chap1-sampleimg.png' }
|
|
567
595
|
item
|
|
568
596
|
end
|
|
@@ -581,7 +609,7 @@ EOS
|
|
|
581
609
|
|
|
582
610
|
def test_image_with_metric
|
|
583
611
|
def @chapter.image(_id)
|
|
584
|
-
item = Book::
|
|
612
|
+
item = Book::Index::Item.new('sampleimg', 1)
|
|
585
613
|
item.instance_eval { @path = './images/chap1-sampleimg.png' }
|
|
586
614
|
item
|
|
587
615
|
end
|
|
@@ -624,7 +652,7 @@ EOB
|
|
|
624
652
|
@builder.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
|
625
653
|
actual = compile_block('@<w>{F} @<w>{B} @<wb>{B} @<w>{N}')
|
|
626
654
|
assert_equal %Q(foo bar"\\<>_@<b>{BAZ} ★bar"\\<>_@<b>{BAZ}☆ [missing word: N]\n), actual
|
|
627
|
-
assert_match(/WARN
|
|
655
|
+
assert_match(/WARN --: :1: word not bound: N/, io.string)
|
|
628
656
|
end
|
|
629
657
|
end
|
|
630
658
|
|
data/test/test_update.rb
CHANGED
|
@@ -14,7 +14,7 @@ class UpdateTest < Test::Unit::TestCase
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def teardown
|
|
17
|
-
FileUtils.rm_rf
|
|
17
|
+
FileUtils.rm_rf(@tmpdir)
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def test_broken_yml
|
|
@@ -96,19 +96,28 @@ EOT
|
|
|
96
96
|
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
|
97
97
|
@u.parse_ymls(@tmpdir)
|
|
98
98
|
@u.update_version
|
|
99
|
-
assert_match(/Update 'review_version' to '
|
|
100
|
-
assert_equal 'review_version:
|
|
99
|
+
assert_match(/Update 'review_version' to '4.0'/, io.string)
|
|
100
|
+
assert_equal 'review_version: 4.0', File.read(File.join(@tmpdir, 'config.yml')).match(/review_version:.*$/).to_s
|
|
101
|
+
|
|
102
|
+
File.write(File.join(@tmpdir, 'config.yml'), "review_version: 3.0\n")
|
|
103
|
+
|
|
104
|
+
io = StringIO.new
|
|
105
|
+
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
|
106
|
+
@u.parse_ymls(@tmpdir)
|
|
107
|
+
@u.update_version
|
|
108
|
+
assert_match(/Update 'review_version' to '4.0'/, io.string)
|
|
109
|
+
assert_equal 'review_version: 4.0', File.read(File.join(@tmpdir, 'config.yml')).match(/review_version:.*$/).to_s
|
|
101
110
|
end
|
|
102
111
|
|
|
103
112
|
def test_update_version_current
|
|
104
|
-
File.write(File.join(@tmpdir, 'config.yml'), "review_version:
|
|
113
|
+
File.write(File.join(@tmpdir, 'config.yml'), "review_version: 4.0\n")
|
|
105
114
|
|
|
106
115
|
io = StringIO.new
|
|
107
116
|
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
|
108
117
|
@u.parse_ymls(@tmpdir)
|
|
109
118
|
@u.update_version
|
|
110
119
|
assert_equal '', io.string
|
|
111
|
-
assert_equal 'review_version:
|
|
120
|
+
assert_equal 'review_version: 4.0', File.read(File.join(@tmpdir, 'config.yml')).match(/review_version:.*$/).to_s
|
|
112
121
|
end
|
|
113
122
|
|
|
114
123
|
def test_update_version_newer
|
|
@@ -118,7 +127,7 @@ EOT
|
|
|
118
127
|
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
|
119
128
|
@u.parse_ymls(@tmpdir)
|
|
120
129
|
@u.update_version
|
|
121
|
-
assert_match(/Update 'review_version' to '
|
|
130
|
+
assert_match(/Update 'review_version' to '4.0'/, io.string)
|
|
122
131
|
assert_equal 'review_version: 99.0', File.read(File.join(@tmpdir, 'config.yml')).match(/review_version:.*$/).to_s
|
|
123
132
|
end
|
|
124
133
|
|
|
@@ -143,7 +152,7 @@ EOT
|
|
|
143
152
|
|
|
144
153
|
def test_update_rakefile_different
|
|
145
154
|
File.write(File.join(@tmpdir, 'Rakefile'), '')
|
|
146
|
-
FileUtils.mkdir_p
|
|
155
|
+
FileUtils.mkdir_p(File.join(@tmpdir, 'lib/tasks'))
|
|
147
156
|
File.write(File.join(@tmpdir, 'lib/tasks/review.rake'), '')
|
|
148
157
|
io = StringIO.new
|
|
149
158
|
@u.instance_eval{ @logger = ReVIEW::Logger.new(io) }
|
|
@@ -389,7 +398,7 @@ EOT
|
|
|
389
398
|
assert_match(/has options/, io.string)
|
|
390
399
|
cont = <<EOT
|
|
391
400
|
texcommand: "/Program Files/up-latex"
|
|
392
|
-
texoptions: "-interaction=nonstopmode -file-line-error --shell-escape -v"
|
|
401
|
+
texoptions: "-interaction=nonstopmode -file-line-error -halt-on-error --shell-escape -v"
|
|
393
402
|
EOT
|
|
394
403
|
assert_equal cont, File.read(File.join(@tmpdir, 'config.yml'))
|
|
395
404
|
end
|
data/test/test_yamlloader.rb
CHANGED
|
@@ -184,4 +184,17 @@ EOB
|
|
|
184
184
|
yaml)
|
|
185
185
|
end
|
|
186
186
|
end
|
|
187
|
+
|
|
188
|
+
def test_empty_file
|
|
189
|
+
Dir.mktmpdir do |dir|
|
|
190
|
+
yaml_file = File.join(dir, 'test.yml')
|
|
191
|
+
File.open(yaml_file, 'w') do |f|
|
|
192
|
+
f.write <<EOB
|
|
193
|
+
#
|
|
194
|
+
EOB
|
|
195
|
+
end
|
|
196
|
+
e = assert_raise(RuntimeError) { @loader.load_file(yaml_file) }
|
|
197
|
+
assert_match('test.yml is malformed.', e.message)
|
|
198
|
+
end
|
|
199
|
+
end
|
|
187
200
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: review
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 4.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- kmuto
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2019-
|
|
12
|
+
date: 2019-10-29 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: image_size
|
|
@@ -137,6 +137,20 @@ dependencies:
|
|
|
137
137
|
- - ">="
|
|
138
138
|
- !ruby/object:Gem::Version
|
|
139
139
|
version: '0'
|
|
140
|
+
- !ruby/object:Gem::Dependency
|
|
141
|
+
name: unicode-eaw
|
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
|
143
|
+
requirements:
|
|
144
|
+
- - ">="
|
|
145
|
+
- !ruby/object:Gem::Version
|
|
146
|
+
version: '0'
|
|
147
|
+
type: :development
|
|
148
|
+
prerelease: false
|
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
150
|
+
requirements:
|
|
151
|
+
- - ">="
|
|
152
|
+
- !ruby/object:Gem::Version
|
|
153
|
+
version: '0'
|
|
140
154
|
description: Re:VIEW is a digital publishing system for books and ebooks. It supports
|
|
141
155
|
InDesign, EPUB and LaTeX.
|
|
142
156
|
email: kmuto@debian.org
|
|
@@ -148,6 +162,7 @@ executables:
|
|
|
148
162
|
- review-compile
|
|
149
163
|
- review-epub2html
|
|
150
164
|
- review-epubmaker
|
|
165
|
+
- review-idgxmlmaker
|
|
151
166
|
- review-index
|
|
152
167
|
- review-init
|
|
153
168
|
- review-pdfmaker
|
|
@@ -179,6 +194,7 @@ files:
|
|
|
179
194
|
- bin/review-compile
|
|
180
195
|
- bin/review-epub2html
|
|
181
196
|
- bin/review-epubmaker
|
|
197
|
+
- bin/review-idgxmlmaker
|
|
182
198
|
- bin/review-index
|
|
183
199
|
- bin/review-init
|
|
184
200
|
- bin/review-pdfmaker
|
|
@@ -240,6 +256,7 @@ files:
|
|
|
240
256
|
- lib/review/book/compilable.rb
|
|
241
257
|
- lib/review/book/image_finder.rb
|
|
242
258
|
- lib/review/book/index.rb
|
|
259
|
+
- lib/review/book/index/item.rb
|
|
243
260
|
- lib/review/book/page_metric.rb
|
|
244
261
|
- lib/review/book/part.rb
|
|
245
262
|
- lib/review/book/volume.rb
|
|
@@ -263,6 +280,10 @@ files:
|
|
|
263
280
|
- lib/review/i18n.rb
|
|
264
281
|
- lib/review/i18n.yml
|
|
265
282
|
- lib/review/idgxmlbuilder.rb
|
|
283
|
+
- lib/review/idgxmlmaker.rb
|
|
284
|
+
- lib/review/init-web/finish.html
|
|
285
|
+
- lib/review/init-web/index.html
|
|
286
|
+
- lib/review/init-web/review-layout-design.js
|
|
266
287
|
- lib/review/init.rb
|
|
267
288
|
- lib/review/latexbuilder.rb
|
|
268
289
|
- lib/review/latexindex.rb
|
|
@@ -293,12 +314,14 @@ files:
|
|
|
293
314
|
- review.gemspec
|
|
294
315
|
- samples/LICENSE
|
|
295
316
|
- samples/sample-book/README.md
|
|
317
|
+
- samples/sample-book/src/.gitignore
|
|
296
318
|
- samples/sample-book/src/Rakefile
|
|
297
319
|
- samples/sample-book/src/_cover.html
|
|
298
320
|
- samples/sample-book/src/catalog.yml
|
|
299
321
|
- samples/sample-book/src/ch01.re
|
|
300
322
|
- samples/sample-book/src/ch02.re
|
|
301
323
|
- samples/sample-book/src/config-epub2.yml
|
|
324
|
+
- samples/sample-book/src/config-jlreq.yml
|
|
302
325
|
- samples/sample-book/src/config.yml
|
|
303
326
|
- samples/sample-book/src/images/ch01-imgsample.jpg
|
|
304
327
|
- samples/sample-book/src/images/cover-a5.ai
|
|
@@ -319,6 +342,7 @@ files:
|
|
|
319
342
|
- samples/syntax-book/ch01.re
|
|
320
343
|
- samples/syntax-book/ch02.re
|
|
321
344
|
- samples/syntax-book/ch03.re
|
|
345
|
+
- samples/syntax-book/config-jlreq.yml
|
|
322
346
|
- samples/syntax-book/config.yml
|
|
323
347
|
- samples/syntax-book/images/ball.png
|
|
324
348
|
- samples/syntax-book/images/cover-b5.ai
|