review 4.1.0 → 4.2.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/.github/workflows/ruby.yml +1 -1
- data/.rubocop.yml +4 -1
- data/NEWS.ja.md +29 -0
- data/NEWS.md +29 -0
- data/bin/review-index +2 -89
- data/bin/review-vol +4 -78
- data/doc/config.yml.sample +18 -5
- data/doc/config.yml.sample-simple +1 -1
- data/doc/pdfmaker.ja.md +42 -0
- data/doc/pdfmaker.md +41 -0
- data/doc/quickstart.ja.md +8 -5
- data/doc/quickstart.md +7 -4
- data/lib/review/book/base.rb +2 -4
- data/lib/review/book/compilable.rb +1 -5
- data/lib/review/book/page_metric.rb +7 -7
- data/lib/review/book/part.rb +6 -3
- data/lib/review/book/volume.rb +3 -4
- data/lib/review/builder.rb +23 -10
- data/lib/review/compiler.rb +9 -9
- data/lib/review/configure.rb +6 -0
- data/lib/review/epubmaker.rb +1 -1
- data/lib/review/htmlbuilder.rb +56 -16
- data/lib/review/idgxmlbuilder.rb +63 -22
- data/lib/review/latexbuilder.rb +70 -19
- data/lib/review/makerhelper.rb +18 -1
- data/lib/review/pdfmaker.rb +8 -1
- data/lib/review/plaintextbuilder.rb +41 -11
- data/lib/review/textmaker.rb +1 -1
- data/lib/review/textutils.rb +2 -3
- data/lib/review/tocprinter.rb +231 -102
- data/lib/review/topbuilder.rb +47 -13
- data/lib/review/version.rb +1 -1
- data/lib/review/volumeprinter.rb +99 -0
- data/lib/review/webmaker.rb +1 -1
- data/lib/review/webtocprinter.rb +38 -35
- data/review.gemspec +1 -1
- data/samples/sample-book/src/config.yml +1 -1
- data/templates/web/html/layout-html5.html.erb +2 -2
- data/test/test_book.rb +1 -1
- data/test/test_book_part.rb +3 -3
- data/test/test_helper.rb +4 -1
- data/test/test_htmlbuilder.rb +179 -0
- data/test/test_idgxmlbuilder.rb +143 -0
- data/test/test_latexbuilder.rb +223 -0
- data/test/test_pdfmaker.rb +17 -0
- data/test/test_plaintextbuilder.rb +99 -0
- data/test/test_topbuilder.rb +116 -2
- data/test/test_webtocprinter.rb +66 -34
- metadata +3 -5
- data/lib/review/tocparser.rb +0 -275
- data/test/test_tocparser.rb +0 -25
data/test/test_pdfmaker.rb
CHANGED
|
@@ -149,6 +149,23 @@ class PDFMakerTest < Test::Unit::TestCase
|
|
|
149
149
|
end
|
|
150
150
|
end
|
|
151
151
|
|
|
152
|
+
def test_template_content_with_localconfig
|
|
153
|
+
@config['mycustom'] = { 'value' => '#_TEST_' }
|
|
154
|
+
Dir.mktmpdir do |dir|
|
|
155
|
+
Dir.chdir(dir) do
|
|
156
|
+
Dir.mkdir('layouts')
|
|
157
|
+
File.write(File.join('layouts', 'config-local.tex.erb'), %q(\def\customvalue{<%= escape(@config['mycustom']['value']) %>}) + "\n")
|
|
158
|
+
@maker.basedir = Dir.pwd
|
|
159
|
+
@maker.erb_config
|
|
160
|
+
tmpl = @maker.template_content
|
|
161
|
+
expect = File.read(File.join(assets_dir, 'test_template.tex'))
|
|
162
|
+
expect.gsub!(/\\def\\review@reviewversion{[^\}]+}/, "\\def\\review@reviewversion{#{ReVIEW::VERSION}}")
|
|
163
|
+
expect.sub!("\\makeatother\n", '\&' + "%% BEGIN: config-local.tex.erb\n\\def\\customvalue{\\#\\textunderscore{}TEST\\textunderscore{}}\n%% END: config-local.tex.erb\n")
|
|
164
|
+
assert_equal(expect, tmpl)
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
|
|
152
169
|
def test_gettemplate_with_backmatter
|
|
153
170
|
@config.merge!(
|
|
154
171
|
'backcover' => 'backcover.tex',
|
|
@@ -249,6 +249,17 @@ EOS
|
|
|
249
249
|
foo
|
|
250
250
|
bar
|
|
251
251
|
|
|
252
|
+
EOS
|
|
253
|
+
assert_equal expected, actual
|
|
254
|
+
|
|
255
|
+
@config['caption_position']['list'] = 'bottom'
|
|
256
|
+
actual = compile_block("//list[samplelist][this is @<b>{test}<&>_]{\nfoo\nbar\n//}\n")
|
|
257
|
+
expected = <<-EOS
|
|
258
|
+
foo
|
|
259
|
+
bar
|
|
260
|
+
|
|
261
|
+
リスト1.1 this is test<&>_
|
|
262
|
+
|
|
252
263
|
EOS
|
|
253
264
|
assert_equal expected, actual
|
|
254
265
|
end
|
|
@@ -264,6 +275,17 @@ EOS
|
|
|
264
275
|
1: foo
|
|
265
276
|
2: bar
|
|
266
277
|
|
|
278
|
+
EOS
|
|
279
|
+
assert_equal expected, actual
|
|
280
|
+
|
|
281
|
+
@config['caption_position']['list'] = 'bottom'
|
|
282
|
+
actual = compile_block("//listnum[test][this is @<b>{test}<&>_]{\nfoo\nbar\n//}\n")
|
|
283
|
+
expected = <<-EOS
|
|
284
|
+
1: foo
|
|
285
|
+
2: bar
|
|
286
|
+
|
|
287
|
+
リスト1.1 this is test<&>_
|
|
288
|
+
|
|
267
289
|
EOS
|
|
268
290
|
assert_equal expected, actual
|
|
269
291
|
end
|
|
@@ -277,6 +299,18 @@ bar
|
|
|
277
299
|
|
|
278
300
|
buz
|
|
279
301
|
|
|
302
|
+
EOS
|
|
303
|
+
assert_equal expected, actual
|
|
304
|
+
|
|
305
|
+
@config['caption_position']['list'] = 'bottom'
|
|
306
|
+
actual = compile_block("//source[foo/bar/test.rb]{\nfoo\nbar\n\nbuz\n//}\n")
|
|
307
|
+
expected = <<-EOS
|
|
308
|
+
foo
|
|
309
|
+
bar
|
|
310
|
+
|
|
311
|
+
buz
|
|
312
|
+
foo/bar/test.rb
|
|
313
|
+
|
|
280
314
|
EOS
|
|
281
315
|
assert_equal expected, actual
|
|
282
316
|
end
|
|
@@ -308,6 +342,16 @@ FOO
|
|
|
308
342
|
foo
|
|
309
343
|
bar
|
|
310
344
|
|
|
345
|
+
EOS
|
|
346
|
+
assert_equal expected, actual
|
|
347
|
+
|
|
348
|
+
@config['caption_position']['list'] = 'bottom'
|
|
349
|
+
actual = compile_block("//box[FOO]{\nfoo\nbar\n//}\n")
|
|
350
|
+
expected = <<-EOS
|
|
351
|
+
foo
|
|
352
|
+
bar
|
|
353
|
+
FOO
|
|
354
|
+
|
|
311
355
|
EOS
|
|
312
356
|
assert_equal expected, actual
|
|
313
357
|
end
|
|
@@ -327,6 +371,16 @@ cap1
|
|
|
327
371
|
lineA
|
|
328
372
|
lineB
|
|
329
373
|
|
|
374
|
+
EOS
|
|
375
|
+
assert_equal expected, actual
|
|
376
|
+
|
|
377
|
+
@config['caption_position']['list'] = 'bottom'
|
|
378
|
+
actual = compile_block("//cmd[cap1]{\nlineA\nlineB\n//}\n")
|
|
379
|
+
expected = <<-EOS
|
|
380
|
+
lineA
|
|
381
|
+
lineB
|
|
382
|
+
cap1
|
|
383
|
+
|
|
330
384
|
EOS
|
|
331
385
|
assert_equal expected, actual
|
|
332
386
|
end
|
|
@@ -348,6 +402,16 @@ cap1
|
|
|
348
402
|
lineA
|
|
349
403
|
lineB
|
|
350
404
|
|
|
405
|
+
EOS
|
|
406
|
+
assert_equal expected, actual
|
|
407
|
+
|
|
408
|
+
@config['caption_position']['list'] = 'bottom'
|
|
409
|
+
actual = compile_block("//emlist[cap1]{\nlineA\nlineB\n//}\n")
|
|
410
|
+
expected = <<-EOS
|
|
411
|
+
lineA
|
|
412
|
+
lineB
|
|
413
|
+
cap1
|
|
414
|
+
|
|
351
415
|
EOS
|
|
352
416
|
assert_equal expected, actual
|
|
353
417
|
end
|
|
@@ -359,6 +423,16 @@ this is test<&>_
|
|
|
359
423
|
1: foo
|
|
360
424
|
2: bar
|
|
361
425
|
|
|
426
|
+
EOS
|
|
427
|
+
assert_equal expected, actual
|
|
428
|
+
|
|
429
|
+
@config['caption_position']['list'] = 'bottom'
|
|
430
|
+
actual = compile_block("//emlistnum[this is @<b>{test}<&>_]{\nfoo\nbar\n//}\n")
|
|
431
|
+
expected = <<-EOS
|
|
432
|
+
1: foo
|
|
433
|
+
2: bar
|
|
434
|
+
this is test<&>_
|
|
435
|
+
|
|
362
436
|
EOS
|
|
363
437
|
assert_equal expected, actual
|
|
364
438
|
end
|
|
@@ -387,6 +461,16 @@ EOS
|
|
|
387
461
|
aaa\tbbb
|
|
388
462
|
ccc\tddd<>&
|
|
389
463
|
|
|
464
|
+
EOS
|
|
465
|
+
assert_equal expected, actual
|
|
466
|
+
|
|
467
|
+
@config['caption_position']['table'] = 'bottom'
|
|
468
|
+
actual = compile_block("//table[foo][FOO]{\naaa\tbbb\n------------\nccc\tddd<>&\n//}\n")
|
|
469
|
+
expected = <<-EOS
|
|
470
|
+
aaa\tbbb
|
|
471
|
+
ccc\tddd<>&
|
|
472
|
+
|
|
473
|
+
表1.1 FOO
|
|
390
474
|
EOS
|
|
391
475
|
assert_equal expected, actual
|
|
392
476
|
end
|
|
@@ -521,6 +605,10 @@ EOS
|
|
|
521
605
|
|
|
522
606
|
actual = compile_block("//image[sampleimg][sample photo]{\nfoo\n//}\n")
|
|
523
607
|
assert_equal %Q(図1.1 sample photo\n\n), actual
|
|
608
|
+
|
|
609
|
+
@config['caption_position']['image'] = 'top'
|
|
610
|
+
actual = compile_block("//image[sampleimg][sample photo]{\nfoo\n//}\n")
|
|
611
|
+
assert_equal %Q(図1.1 sample photo\n\n), actual
|
|
524
612
|
end
|
|
525
613
|
|
|
526
614
|
def test_image_with_metric
|
|
@@ -649,6 +737,17 @@ EOS
|
|
|
649
737
|
式1.1 The Equivalence of Mass and Energy
|
|
650
738
|
e=mc^2
|
|
651
739
|
|
|
740
|
+
EOS
|
|
741
|
+
actual = compile_block(src)
|
|
742
|
+
assert_equal expected, actual
|
|
743
|
+
|
|
744
|
+
@config['caption_position']['equation'] = 'bottom'
|
|
745
|
+
expected = <<-EOS
|
|
746
|
+
式1.1
|
|
747
|
+
|
|
748
|
+
e=mc^2
|
|
749
|
+
式1.1 The Equivalence of Mass and Energy
|
|
750
|
+
|
|
652
751
|
EOS
|
|
653
752
|
actual = compile_block(src)
|
|
654
753
|
assert_equal expected, actual
|
data/test/test_topbuilder.rb
CHANGED
|
@@ -295,6 +295,19 @@ EOS
|
|
|
295
295
|
2: bar
|
|
296
296
|
◆→終了:リスト←◆
|
|
297
297
|
|
|
298
|
+
EOS
|
|
299
|
+
assert_equal expected, actual
|
|
300
|
+
|
|
301
|
+
@config['caption_position']['list'] = 'bottom'
|
|
302
|
+
actual = compile_block("//listnum[test][this is @<b>{test}<&>_]{\nfoo\nbar\n//}\n")
|
|
303
|
+
expected = <<-EOS
|
|
304
|
+
◆→開始:リスト←◆
|
|
305
|
+
1: foo
|
|
306
|
+
2: bar
|
|
307
|
+
|
|
308
|
+
リスト1.1 this is ★test☆<&>_
|
|
309
|
+
◆→終了:リスト←◆
|
|
310
|
+
|
|
298
311
|
EOS
|
|
299
312
|
assert_equal expected, actual
|
|
300
313
|
end
|
|
@@ -310,6 +323,20 @@ bar
|
|
|
310
323
|
buz
|
|
311
324
|
◆→終了:ソースコードリスト←◆
|
|
312
325
|
|
|
326
|
+
EOS
|
|
327
|
+
assert_equal expected, actual
|
|
328
|
+
|
|
329
|
+
@config['caption_position']['list'] = 'bottom'
|
|
330
|
+
actual = compile_block("//source[foo/bar/test.rb]{\nfoo\nbar\n\nbuz\n//}\n")
|
|
331
|
+
expected = <<-EOS
|
|
332
|
+
◆→開始:ソースコードリスト←◆
|
|
333
|
+
foo
|
|
334
|
+
bar
|
|
335
|
+
|
|
336
|
+
buz
|
|
337
|
+
■foo/bar/test.rb
|
|
338
|
+
◆→終了:ソースコードリスト←◆
|
|
339
|
+
|
|
313
340
|
EOS
|
|
314
341
|
assert_equal expected, actual
|
|
315
342
|
end
|
|
@@ -347,6 +374,18 @@ foo
|
|
|
347
374
|
bar
|
|
348
375
|
◆→終了:書式←◆
|
|
349
376
|
|
|
377
|
+
EOS
|
|
378
|
+
assert_equal expected, actual
|
|
379
|
+
|
|
380
|
+
@config['caption_position']['list'] = 'bottom'
|
|
381
|
+
actual = compile_block("//box[FOO]{\nfoo\nbar\n//}\n")
|
|
382
|
+
expected = <<-EOS
|
|
383
|
+
◆→開始:書式←◆
|
|
384
|
+
foo
|
|
385
|
+
bar
|
|
386
|
+
■FOO
|
|
387
|
+
◆→終了:書式←◆
|
|
388
|
+
|
|
350
389
|
EOS
|
|
351
390
|
assert_equal expected, actual
|
|
352
391
|
end
|
|
@@ -370,6 +409,18 @@ lineA
|
|
|
370
409
|
lineB
|
|
371
410
|
◆→終了:コマンド←◆
|
|
372
411
|
|
|
412
|
+
EOS
|
|
413
|
+
assert_equal expected, actual
|
|
414
|
+
|
|
415
|
+
@config['caption_position']['list'] = 'bottom'
|
|
416
|
+
actual = compile_block("//cmd[cap1]{\nlineA\nlineB\n//}\n")
|
|
417
|
+
expected = <<-EOS
|
|
418
|
+
◆→開始:コマンド←◆
|
|
419
|
+
lineA
|
|
420
|
+
lineB
|
|
421
|
+
■cap1
|
|
422
|
+
◆→終了:コマンド←◆
|
|
423
|
+
|
|
373
424
|
EOS
|
|
374
425
|
assert_equal expected, actual
|
|
375
426
|
end
|
|
@@ -395,6 +446,18 @@ lineA
|
|
|
395
446
|
lineB
|
|
396
447
|
◆→終了:インラインリスト←◆
|
|
397
448
|
|
|
449
|
+
EOS
|
|
450
|
+
assert_equal expected, actual
|
|
451
|
+
|
|
452
|
+
@config['caption_position']['list'] = 'bottom'
|
|
453
|
+
actual = compile_block("//emlist[cap1]{\nlineA\nlineB\n//}\n")
|
|
454
|
+
expected = <<-EOS
|
|
455
|
+
◆→開始:インラインリスト←◆
|
|
456
|
+
lineA
|
|
457
|
+
lineB
|
|
458
|
+
■cap1
|
|
459
|
+
◆→終了:インラインリスト←◆
|
|
460
|
+
|
|
398
461
|
EOS
|
|
399
462
|
assert_equal expected, actual
|
|
400
463
|
end
|
|
@@ -408,6 +471,18 @@ EOS
|
|
|
408
471
|
2: bar
|
|
409
472
|
◆→終了:インラインリスト←◆
|
|
410
473
|
|
|
474
|
+
EOS
|
|
475
|
+
assert_equal expected, actual
|
|
476
|
+
|
|
477
|
+
@config['caption_position']['list'] = 'bottom'
|
|
478
|
+
actual = compile_block("//emlistnum[this is @<b>{test}<&>_]{\nfoo\nbar\n//}\n")
|
|
479
|
+
expected = <<-EOS
|
|
480
|
+
◆→開始:インラインリスト←◆
|
|
481
|
+
1: foo
|
|
482
|
+
2: bar
|
|
483
|
+
■this is ★test☆<&>_
|
|
484
|
+
◆→終了:インラインリスト←◆
|
|
485
|
+
|
|
411
486
|
EOS
|
|
412
487
|
assert_equal expected, actual
|
|
413
488
|
end
|
|
@@ -440,6 +515,19 @@ EOS
|
|
|
440
515
|
ccc\tddd<>&
|
|
441
516
|
◆→終了:表←◆
|
|
442
517
|
|
|
518
|
+
EOS
|
|
519
|
+
assert_equal expected, actual
|
|
520
|
+
|
|
521
|
+
@config['caption_position']['table'] = 'bottom'
|
|
522
|
+
actual = compile_block("//table[foo][FOO]{\naaa\tbbb\n------------\nccc\tddd<>&\n//}\n")
|
|
523
|
+
expected = <<-EOS
|
|
524
|
+
◆→開始:表←◆
|
|
525
|
+
★aaa☆\t★bbb☆
|
|
526
|
+
ccc\tddd<>&
|
|
527
|
+
|
|
528
|
+
表1.1 FOO
|
|
529
|
+
◆→終了:表←◆
|
|
530
|
+
|
|
443
531
|
EOS
|
|
444
532
|
assert_equal expected, actual
|
|
445
533
|
end
|
|
@@ -657,6 +745,18 @@ EOS
|
|
|
657
745
|
actual = compile_block("//image[sampleimg][sample photo]{\nfoo\n//}\n")
|
|
658
746
|
expected = <<-EOS
|
|
659
747
|
◆→開始:図←◆
|
|
748
|
+
◆→./images/chap1-sampleimg.png←◆
|
|
749
|
+
|
|
750
|
+
図1.1 sample photo
|
|
751
|
+
◆→終了:図←◆
|
|
752
|
+
|
|
753
|
+
EOS
|
|
754
|
+
assert_equal expected, actual
|
|
755
|
+
|
|
756
|
+
@config['caption_position']['image'] = 'top'
|
|
757
|
+
actual = compile_block("//image[sampleimg][sample photo]{\nfoo\n//}\n")
|
|
758
|
+
expected = <<-EOS
|
|
759
|
+
◆→開始:図←◆
|
|
660
760
|
図1.1 sample photo
|
|
661
761
|
|
|
662
762
|
◆→./images/chap1-sampleimg.png←◆
|
|
@@ -676,9 +776,9 @@ EOS
|
|
|
676
776
|
actual = compile_block("//image[sampleimg][sample photo][scale=1.2]{\nfoo\n//}\n")
|
|
677
777
|
expected = <<-EOS
|
|
678
778
|
◆→開始:図←◆
|
|
679
|
-
図1.1 sample photo
|
|
680
|
-
|
|
681
779
|
◆→./images/chap1-sampleimg.png scale=1.2←◆
|
|
780
|
+
|
|
781
|
+
図1.1 sample photo
|
|
682
782
|
◆→終了:図←◆
|
|
683
783
|
|
|
684
784
|
EOS
|
|
@@ -829,6 +929,20 @@ EOS
|
|
|
829
929
|
e=mc^2
|
|
830
930
|
◆→終了:TeX式←◆
|
|
831
931
|
|
|
932
|
+
EOS
|
|
933
|
+
actual = compile_block(src)
|
|
934
|
+
assert_equal expected, actual
|
|
935
|
+
|
|
936
|
+
@config['caption_position']['equation'] = 'bottom'
|
|
937
|
+
|
|
938
|
+
expected = <<-EOS
|
|
939
|
+
式1.1
|
|
940
|
+
|
|
941
|
+
◆→開始:TeX式←◆
|
|
942
|
+
e=mc^2
|
|
943
|
+
式1.1 The Equivalence of Mass ▲and☆ Energy
|
|
944
|
+
◆→終了:TeX式←◆
|
|
945
|
+
|
|
832
946
|
EOS
|
|
833
947
|
actual = compile_block(src)
|
|
834
948
|
assert_equal expected, actual
|
data/test/test_webtocprinter.rb
CHANGED
|
@@ -35,8 +35,8 @@ EOB
|
|
|
35
35
|
expect = <<-EOB
|
|
36
36
|
<ul class="book-toc">
|
|
37
37
|
<li><a href="index.html">TOP</a></li>
|
|
38
|
-
<li><a href="ch1.html"
|
|
39
|
-
<li><a href="ch2.html"
|
|
38
|
+
<li><a href="ch1.html">第1章 ch. 1</a></li>
|
|
39
|
+
<li><a href="ch2.html">第2章 ch. 2</a></li>
|
|
40
40
|
</ul>
|
|
41
41
|
EOB
|
|
42
42
|
assert_equal expect, str
|
|
@@ -58,16 +58,12 @@ EOB
|
|
|
58
58
|
expect = <<-EOB
|
|
59
59
|
<ul class="book-toc">
|
|
60
60
|
<li><a href="index.html">TOP</a></li>
|
|
61
|
-
<li
|
|
62
|
-
<ul>
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
</li>
|
|
66
|
-
|
|
67
|
-
<ul>
|
|
68
|
-
<li><a href="ch2.html">2 ch. 2</a></li>
|
|
69
|
-
</ul>
|
|
70
|
-
</li>
|
|
61
|
+
<li>第I部 part1
|
|
62
|
+
<ul><li><a href="ch1.html">第1章 ch. 1</a></li>
|
|
63
|
+
</ul></li>
|
|
64
|
+
<li>第II部 part2
|
|
65
|
+
<ul><li><a href="ch2.html">第2章 ch. 2</a></li>
|
|
66
|
+
</ul></li>
|
|
71
67
|
</ul>
|
|
72
68
|
EOB
|
|
73
69
|
assert_equal expect, str
|
|
@@ -91,16 +87,12 @@ EOB
|
|
|
91
87
|
expect = <<-EOB
|
|
92
88
|
<ul class="book-toc">
|
|
93
89
|
<li><a href="index.html">TOP</a></li>
|
|
94
|
-
<li><a href="p1.html"
|
|
95
|
-
<ul>
|
|
96
|
-
|
|
97
|
-
</
|
|
98
|
-
</li>
|
|
99
|
-
|
|
100
|
-
<ul>
|
|
101
|
-
<li><a href="ch2.html">2 ch. 2</a></li>
|
|
102
|
-
</ul>
|
|
103
|
-
</li>
|
|
90
|
+
<li><a href="p1.html">第I部 This is PART1</a>
|
|
91
|
+
<ul><li><a href="ch1.html">第1章 ch. 1</a></li>
|
|
92
|
+
</ul></li>
|
|
93
|
+
<li><a href="p2.html">第II部 This is PART2</a>
|
|
94
|
+
<ul><li><a href="ch2.html">第2章 ch. 2</a></li>
|
|
95
|
+
</ul></li>
|
|
104
96
|
</ul>
|
|
105
97
|
EOB
|
|
106
98
|
assert_equal expect, str
|
|
@@ -141,21 +133,61 @@ EOB
|
|
|
141
133
|
<li><a href="index.html">TOP</a></li>
|
|
142
134
|
<li><a href="pre1.html">PRE1</a></li>
|
|
143
135
|
<li><a href="pre2.html">PRE2</a></li>
|
|
144
|
-
<li><a href="part1.html"
|
|
145
|
-
<ul>
|
|
146
|
-
|
|
147
|
-
</
|
|
148
|
-
</li>
|
|
149
|
-
|
|
150
|
-
<
|
|
151
|
-
<li><a href="
|
|
152
|
-
</ul>
|
|
153
|
-
</li>
|
|
154
|
-
<li><a href="app1.html">APP1</a></li>
|
|
155
|
-
<li><a href="app2.html">APP2</a></li>
|
|
136
|
+
<li><a href="part1.html">第I部 PART1</a>
|
|
137
|
+
<ul><li><a href="ch1.html">第1章 ch. 1</a></li>
|
|
138
|
+
</ul></li>
|
|
139
|
+
<li><a href="part2.html">第II部 PART2</a>
|
|
140
|
+
<ul><li><a href="ch2.html">第2章 ch. 2</a></li>
|
|
141
|
+
</ul></li>
|
|
142
|
+
<li><a href="app1.html">付録A APP1</a></li>
|
|
143
|
+
<li><a href="app2.html">付録B APP2</a></li>
|
|
156
144
|
<li><a href="post1.html">POST1</a></li>
|
|
157
145
|
<li><a href="post2.html">POST2</a></li>
|
|
158
146
|
</ul>
|
|
147
|
+
EOB
|
|
148
|
+
assert_equal expect, str
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
def test_webtocprinter_nochapter
|
|
153
|
+
catalog_yml = <<-EOB
|
|
154
|
+
CHAPS:
|
|
155
|
+
EOB
|
|
156
|
+
mktmpbookdir 'catalog.yml' => catalog_yml do |_dir, book, _files|
|
|
157
|
+
str = WEBTOCPrinter.book_to_string(book)
|
|
158
|
+
expect = <<-EOB
|
|
159
|
+
<ul class="book-toc">
|
|
160
|
+
<li><a href="index.html">TOP</a></li>
|
|
161
|
+
</ul>
|
|
162
|
+
EOB
|
|
163
|
+
assert_equal expect, str
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
def test_webtocprinter_noheadline
|
|
168
|
+
catalog_yml = <<-EOB
|
|
169
|
+
CHAPS:
|
|
170
|
+
- ch1.re
|
|
171
|
+
- ch2.re
|
|
172
|
+
- ch3.re
|
|
173
|
+
- ch4.re
|
|
174
|
+
EOB
|
|
175
|
+
mktmpbookdir 'catalog.yml' => catalog_yml,
|
|
176
|
+
'ch1.re' => "A\n",
|
|
177
|
+
'ch2.re' => "B\n\n= C\n== D\n",
|
|
178
|
+
'ch3.re' => "//emlist{\nLIST\n//}\n",
|
|
179
|
+
'ch4.re' => "==[column] E\n\n= F" do |_dir, book, _files|
|
|
180
|
+
str = WEBTOCPrinter.book_to_string(book)
|
|
181
|
+
expect = <<-EOB
|
|
182
|
+
<ul class="book-toc">
|
|
183
|
+
<li><a href="index.html">TOP</a></li>
|
|
184
|
+
<li><a href="ch1.html">-</a></li>
|
|
185
|
+
<li><a href="ch2.html">-</a></li>
|
|
186
|
+
<li><a href="ch2.html">第2章 C</a></li>
|
|
187
|
+
<li><a href="ch3.html">-</a></li>
|
|
188
|
+
<li><a href="ch4.html">-</a></li>
|
|
189
|
+
<li><a href="ch4.html">第4章 F</a></li>
|
|
190
|
+
</ul>
|
|
159
191
|
EOB
|
|
160
192
|
assert_equal expect, str
|
|
161
193
|
end
|